{"version":3,"file":"static/js/main.328d48ba.js","mappings":"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AAUhrD,EAAAA,GAAYxJ,KAGnEkue,EAAiB91a,MAAQ,YAAAA,OACvB41a,EAAqBC,EAAsBz5a,EAAAA,EAAAA,GACtChrD,EAAAA,CACH4uD,MAAOxvD,MAAMvD,UAAUyD,OAAOU,EAAQ4uD,MAAOA,GAAOjsC,OAAOkpG,aAGxD64W,EDzBO15a,CAAqC45a,GAAiB55a,IDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,WACA,SCnIU3wD,SAAQ,YAClB6xG,GAAO4oS,GAAc5oS,GAAO4oS,MAAAA,IELT+vF,GAAAA,WAAAA,SAAAA,EAOPlL,EAAgBwD,GAAAA,KACrBxD,MAAQA,EAAAA,KACRwD,YAAcA,EAAAA,KACdE,SAAWL,EAAcrD,GAI9BqC,EAAWG,WAAW1/d,KAAK0ge,YAAc,8BAG3C2H,aAAA,SACElpe,EACA6he,EACAC,EACAC,GAAAA,IAGM3xX,EAAM2xX,EADIE,GAAQphe,KAAKk9d,MAAO8D,EAAkBC,EAAYC,GACvC14d,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,SAAU,iCACV6re,UAAW,UAEb,MACF,IAAK,iBACH8rB,EAAa,CACX33f,SAAU,qCACV6re,UAAW,UAEb,MACF,IAAK,eACH8rB,EAAa,CACX33f,SAAU,gCACV6re,UAAW,OAEb,MACF,IAAK,aACH8rB,EAAa,CACX33f,SAAU,8BACV6re,UAAW,OAEb,MACF,IAAK,aACH8rB,EAAa,CACX33f,SAAU,8BACV6re,UAAW,OAEb,MACF,IAAK,YACH8rB,EAAa,CACX33f,SAAU,6BACV6re,UAAW,OAEb,MACF,IAAK,YACH8rB,EAAa,CACX33f,SAAU,6BACV6re,UAAW,OAEb,MACF,IAAK,YACH8rB,EAAa,CACX33f,SAAU,6BACV6re,UAAW,OAEb,MACF,IAAK,qBACH8rB,EAAa,CACX33f,SAAU,sCACV6re,UAAW,aACX+rB,cAAe,iBAEjB,MACF,IAAK,aACHD,EAAa,CACX33f,SAAU,8BACV6re,UAAW,OAEb,MACF,IAAK,gBACH8rB,EAAa,CACX33f,SAAU,8BACV6re,UAAW,MACX+rB,cAAe,aAEjB,MACF,IAAK,YACHD,EAAa,CACX33f,SAAU,6BACV6re,UAAW,OAEb,MACF,IAAK,YACH8rB,EAAa,CACX33f,SAAU,6BACV6re,UAAW,OAEb,MACF,IAAK,YACH8rB,EAAa,CACX33f,SAAU,6BACV6re,UAAW,OAEb,MACF,IAAK,gBACH8rB,EAAa,CACX33f,SAAU,iCACV6re,UAAW,cAEb,MACF,IAAK,gBACH8rB,EAAa,CACX33f,SAAU,iCACV6re,UAAW,cAEb,MACF,IAAK,gBACH8rB,EAAa,CACX33f,SAAU,8BACV6re,UAAW,WAEb,MACF,IAAK,iBACH8rB,EAAa,CACX33f,SAAU,kCACV6re,UAAW,aAEb,MACF,IAAK,YACH8rB,EAAa,CACX33f,SAAU,6BACV6re,UAAW,OAEb,MACF,IAAK,YACH8rB,EAAa,CACX33f,SAAU,6BACV6re,UAAW,OAEb,MAEF,QACMorB,GAAYluf,IAAIkzV,KAClB07J,EAAa,CACX33f,SAAUg3f,GAAar+f,QAAQ,WAAYsjW,GAC3C4vI,UAAW,QAGX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","sources":["../node_modules/@aws-amplify/storage/node_modules/axios/index.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/adapters/xhr.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/axios.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/cancel/Cancel.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/cancel/CancelToken.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/cancel/isCancel.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/Axios.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/InterceptorManager.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/buildFullPath.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/createError.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/dispatchRequest.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/enhanceError.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/mergeConfig.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/settle.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/core/transformData.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/defaults.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/env/data.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/bind.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/buildURL.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/combineURLs.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/cookies.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/spread.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/helpers/validator.js","../node_modules/@aws-amplify/storage/node_modules/axios/lib/utils.js","../node_modules/@aws-crypto/crc32/src/aws_crc32.ts","../node_modules/@aws-crypto/crc32/src/index.ts","../node_modules/@aws-crypto/crc32/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/ie11-detection/src/MsWindow.ts","../node_modules/@aws-crypto/ie11-detection/src/index.ts","../node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/sha256-browser/src/constants.ts","../node_modules/@aws-crypto/sha256-browser/src/crossPlatformSha256.ts","../node_modules/@aws-crypto/sha256-browser/src/ie11Sha256.ts","../node_modules/@aws-crypto/sha256-browser/src/index.ts","../node_modules/@aws-crypto/sha256-browser/src/isEmptyData.ts","../node_modules/@aws-crypto/sha256-browser/src/webCryptoSha256.ts","../node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/index.ts","../node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/supports-web-crypto/src/index.ts","../node_modules/@aws-crypto/supports-web-crypto/src/supportsWebCrypto.ts","../node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/@aws-crypto/util/src/index.ts","../node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/@aws-crypto/util/src/numToUint8.ts","../node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/index.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/bytesToUuid.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/rng-browser.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v1.js","../node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v4.js","../node_modules/@aws-sdk/util-locate-window/dist-es/index.js","../node_modules/@aws-sdk/util-utf8-browser/src/index.ts","../node_modules/@aws-sdk/util-utf8-browser/src/whatwgEncodingApi.ts","../node_modules/@aws-sdk/util-utf8-browser/src/pureJs.ts","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../../../../../../webpack/universalModuleDefinition","../../../../../../webpack/bootstrap","../../../../../../src/index.ts","../aws_amplify_ui/src/Anchor.css","../aws_amplify_ui/src/Button.css","../aws_amplify_ui/src/Form.css","../aws_amplify_ui/src/Hint.css","../aws_amplify_ui/src/Input.css","../aws_amplify_ui/src/Nav.css","../aws_amplify_ui/src/PhotoPicker.css","../aws_amplify_ui/src/Section.css","../aws_amplify_ui/src/SelectInput.css","../aws_amplify_ui/src/Strike.css","../aws_amplify_ui/src/Toast.css","../aws_amplify_ui/src/Totp.css","../aws_amplify_ui/src/XR.css","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/base64-js/index.js","../node_modules/bowser/es5.js","../node_modules/buffer/index.js","../node_modules/lower-case/src/index.ts","../node_modules/no-case/src/index.ts","../node_modules/pascal-case/src/index.ts","../node_modules/camel-case/src/index.ts","../node_modules/upper-case-first/src/index.ts","../node_modules/capital-case/src/index.ts","../node_modules/upper-case/src/index.ts","../node_modules/constant-case/src/index.ts","../node_modules/dot-case/src/index.ts","../node_modules/header-case/src/index.ts","../node_modules/param-case/src/index.ts","../node_modules/path-case/src/index.ts","../node_modules/sentence-case/src/index.ts","../node_modules/snake-case/src/index.ts","../node_modules/classnames/index.js","../node_modules/crypto-js/core.js","../node_modules/crypto-js/enc-base64.js","../node_modules/crypto-js/hmac-sha256.js","../node_modules/crypto-js/hmac.js","../node_modules/crypto-js/lib-typedarrays.js","../node_modules/crypto-js/sha256.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addQuarters/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/date-fns/esm/getISOWeek/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/set/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subQuarters/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/encode-utf8/index.js","../node_modules/events/events.js","../node_modules/exenv/index.js","../node_modules/fast-xml-parser/src/json2xml.js","../node_modules/fast-xml-parser/src/nimndata.js","../node_modules/fast-xml-parser/src/node2json.js","../node_modules/fast-xml-parser/src/node2json_str.js","../node_modules/fast-xml-parser/src/parser.js","../node_modules/fast-xml-parser/src/util.js","../node_modules/fast-xml-parser/src/validator.js","../node_modules/fast-xml-parser/src/xmlNode.js","../node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/isomorphic-unfetch/browser.js","../node_modules/js-cookie/src/js.cookie.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_assignMergeValue.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseMerge.js","../node_modules/lodash/_baseMergeDeep.js","../node_modules/lodash/_basePickBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSet.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseValues.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createAssigner.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/_safeGet.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/constant.js","../node_modules/lodash/deburr.js","../node_modules/lodash/eq.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/includes.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEmpty.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/kebabCase.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/memoize.js","../node_modules/lodash/merge.js","../node_modules/lodash/pickBy.js","../node_modules/lodash/property.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toPlainObject.js","../node_modules/lodash/toString.js","../node_modules/lodash/values.js","../node_modules/lodash/words.js","../node_modules/moment/moment.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qrcode/lib/browser.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/react-data-table-component/src/DataTable/types.ts","../node_modules/react-data-table-component/src/DataTable/util.ts","../node_modules/react-data-table-component/src/DataTable/tableReducer.ts","../node_modules/react-data-table-component/src/DataTable/Table.tsx","../node_modules/react-data-table-component/src/DataTable/TableHead.tsx","../node_modules/react-data-table-component/src/DataTable/TableHeadRow.tsx","../node_modules/react-data-table-component/src/DataTable/media.ts","../node_modules/react-data-table-component/src/DataTable/Cell.ts","../node_modules/react-data-table-component/src/DataTable/TableCell.tsx","../node_modules/react-data-table-component/src/DataTable/Checkbox.tsx","../node_modules/react-data-table-component/src/DataTable/TableCellCheckbox.tsx","../node_modules/react-data-table-component/src/DataTable/ExpanderButton.tsx","../node_modules/react-data-table-component/src/DataTable/TableCellExpander.tsx","../node_modules/react-data-table-component/src/DataTable/ExpanderRow.tsx","../node_modules/react-data-table-component/src/DataTable/constants.ts","../node_modules/react-data-table-component/src/DataTable/TableRow.tsx","../node_modules/react-data-table-component/src/icons/NativeSortIcon.tsx","../node_modules/react-data-table-component/src/DataTable/TableCol.tsx","../node_modules/react-data-table-component/src/DataTable/TableColCheckbox.tsx","../node_modules/react-data-table-component/src/hooks/useRTL.ts","../node_modules/react-data-table-component/src/DataTable/ContextMenu.tsx","../node_modules/react-data-table-component/src/DataTable/TableHeader.tsx","../node_modules/react-data-table-component/node_modules/tslib/tslib.es6.js","../node_modules/react-data-table-component/src/DataTable/TableSubheader.tsx","../node_modules/react-data-table-component/src/DataTable/TableBody.tsx","../node_modules/react-data-table-component/src/DataTable/ResponsiveWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/ProgressWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/TableWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/TableColExpander.tsx","../node_modules/react-data-table-component/src/DataTable/NoDataWrapper.tsx","../node_modules/react-data-table-component/src/icons/Dropdown.tsx","../node_modules/react-data-table-component/src/DataTable/Select.tsx","../node_modules/react-data-table-component/src/DataTable/defaultProps.tsx","../node_modules/react-data-table-component/src/icons/ExpanderCollapsedIcon.tsx","../node_modules/react-data-table-component/src/icons/ExpanderExpandedIcon.tsx","../node_modules/react-data-table-component/src/icons/FirstPage.tsx","../node_modules/react-data-table-component/src/icons/LastPage.tsx","../node_modules/react-data-table-component/src/icons/Right.tsx","../node_modules/react-data-table-component/src/icons/Left.tsx","../node_modules/react-data-table-component/src/DataTable/Pagination.tsx","../node_modules/react-data-table-component/src/hooks/useWindowSize.ts","../node_modules/react-data-table-component/src/hooks/useDidUpdateEffect.ts","../node_modules/react-data-table-component/node_modules/deepmerge/dist/cjs.js","../node_modules/react-data-table-component/src/DataTable/themes.ts","../node_modules/react-data-table-component/src/hooks/useColumns.ts","../node_modules/react-data-table-component/src/DataTable/DataTable.tsx","../node_modules/react-data-table-component/src/DataTable/styles.ts","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/index.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/scichart/Builder/buildAnnotations.js","../node_modules/scichart/Builder/buildAxis.js","../node_modules/scichart/Builder/buildDataSeries.js","../node_modules/scichart/Builder/buildModifiers.js","../node_modules/scichart/Builder/buildSeries.js","../node_modules/scichart/Builder/buildSurface.js","../node_modules/scichart/Builder/chartBuilder.js","../node_modules/scichart/Builder/classFactory.js","../node_modules/scichart/Charting/ChartModifiers/AnnotationHoverModifier.js","../node_modules/scichart/Charting/ChartModifiers/ChartModifierBase.js","../node_modules/scichart/Charting/ChartModifiers/ChartModifierBase2D.js","../node_modules/scichart/Charting/ChartModifiers/CursorModifier.js","../node_modules/scichart/Charting/ChartModifiers/CustomChartModifier2D.js","../node_modules/scichart/Charting/ChartModifiers/DataPointInfo.js","../node_modules/scichart/Charting/ChartModifiers/DataPointSelectionChangedArgs.js","../node_modules/scichart/Charting/ChartModifiers/DataPointSelectionModifier.js","../node_modules/scichart/Charting/ChartModifiers/LegendModifier.js","../node_modules/scichart/Charting/ChartModifiers/ModifierArgsBase.js","../node_modules/scichart/Charting/ChartModifiers/ModifierMouseArgs.js","../node_modules/scichart/Charting/ChartModifiers/MouseWheelZoomModifier.js","../node_modules/scichart/Charting/ChartModifiers/OverviewRangeSelectionModifier.js","../node_modules/scichart/Charting/ChartModifiers/PinchZoomModifier.js","../node_modules/scichart/Charting/ChartModifiers/PointerEventsMediatorModifier.js","../node_modules/scichart/Charting/ChartModifiers/RolloverModifier.js","../node_modules/scichart/Charting/ChartModifiers/RubberBandXyZoomModifier.js","../node_modules/scichart/Charting/ChartModifiers/SeriesSelectionModifier.js","../node_modules/scichart/Charting/ChartModifiers/VerticalSliceModifier.js","../node_modules/scichart/Charting/ChartModifiers/XAxisDragModifier.js","../node_modules/scichart/Charting/ChartModifiers/YAxisDragModifier.js","../node_modules/scichart/Charting/ChartModifiers/ZoomExtentsModifier.js","../node_modules/scichart/Charting/ChartModifiers/ZoomPanModifier.js","../node_modules/scichart/Charting/ChartModifiers/constants.js","../node_modules/scichart/Charting/Drawing/BaseCache.js","../node_modules/scichart/Charting/Drawing/BatchRenderContext.js","../node_modules/scichart/Charting/Drawing/BrushCache.js","../node_modules/scichart/Charting/Drawing/PaletteCache.js","../node_modules/scichart/Charting/Drawing/Pen2DCache.js","../node_modules/scichart/Charting/Drawing/RenderContext2D.js","../node_modules/scichart/Charting/Drawing/RenderSurface.js","../node_modules/scichart/Charting/Drawing/SolidBrushCache.js","../node_modules/scichart/Charting/Drawing/TextureCache.js","../node_modules/scichart/Charting/Drawing/WebGlBrush.js","../node_modules/scichart/Charting/Drawing/WebGlPen.js","../node_modules/scichart/Charting/Drawing/WebGlRenderContext2D.js","../node_modules/scichart/Charting/Drawing/constants.js","../node_modules/scichart/Charting/LayoutManager/AxisLayoutHelpers.js","../node_modules/scichart/Charting/LayoutManager/BaseAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/BaseCenteredAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/BottomAlignedInnerAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/BottomAlignedOuterAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/CentralAxesLayoutManager.js","../node_modules/scichart/Charting/LayoutManager/ChartLayoutState.js","../node_modules/scichart/Charting/LayoutManager/EInnerAxisPlacementCoordinateMode.js","../node_modules/scichart/Charting/LayoutManager/LayoutManager.js","../node_modules/scichart/Charting/LayoutManager/LayoutStrategyAxes.js","../node_modules/scichart/Charting/LayoutManager/LeftAlignedInnerAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/LeftAlignedOuterAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/LeftAlignedOuterVerticallyStackedAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/RightAlignedInnerAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/RightAlignedOuterAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/RightAlignedOuterVerticallyStackedAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/SciChartHorizontalGroup.js","../node_modules/scichart/Charting/LayoutManager/SciChartVerticalGroup.js","../node_modules/scichart/Charting/LayoutManager/SynchronizedLayoutManager.js","../node_modules/scichart/Charting/LayoutManager/TopAlignedInnerAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/TopAlignedOuterAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/TopAlignedOuterHorizontallyStackedAxisLayoutStrategy.js","../node_modules/scichart/Charting/LayoutManager/constants.js","../node_modules/scichart/Charting/Model/BaseDataSeries.js","../node_modules/scichart/Charting/Model/BaseHeatmapDataSeries.js","../node_modules/scichart/Charting/Model/BasePaletteProvider.js","../node_modules/scichart/Charting/Model/ChartData/HeatmapSeriesInfo.js","../node_modules/scichart/Charting/Model/ChartData/HlcSeriesInfo.js","../node_modules/scichart/Charting/Model/ChartData/OhlcSeriesInfo.js","../node_modules/scichart/Charting/Model/ChartData/SeriesInfo.js","../node_modules/scichart/Charting/Model/ChartData/StackedXySeriesInfo.js","../node_modules/scichart/Charting/Model/ChartData/XySeriesInfo.js","../node_modules/scichart/Charting/Model/ChartData/XyySeriesInfo.js","../node_modules/scichart/Charting/Model/ChartData/XyzSeriesInfo.js","../node_modules/scichart/Charting/Model/DataDistributionCalculator/DataDistributionCalculator.js","../node_modules/scichart/Charting/Model/DataPointSelectionPaletteProvider.js","../node_modules/scichart/Charting/Model/DoubleVectorProvider.js","../node_modules/scichart/Charting/Model/Filters/HlcCustomFilter.js","../node_modules/scichart/Charting/Model/Filters/HlcFilterBase.js","../node_modules/scichart/Charting/Model/Filters/HlcScaleOffsetFilter.js","../node_modules/scichart/Charting/Model/Filters/OhlcCustomFilter.js","../node_modules/scichart/Charting/Model/Filters/OhlcFilterBase.js","../node_modules/scichart/Charting/Model/Filters/OhlcScaleOffsetFilter.js","../node_modules/scichart/Charting/Model/Filters/XyCustomFilter.js","../node_modules/scichart/Charting/Model/Filters/XyFilterBase.js","../node_modules/scichart/Charting/Model/Filters/XyLinearTrendFilter.js","../node_modules/scichart/Charting/Model/Filters/XyMovingAverageFilter.js","../node_modules/scichart/Charting/Model/Filters/XyRatioFilter.js","../node_modules/scichart/Charting/Model/Filters/XyScaleOffsetFilter.js","../node_modules/scichart/Charting/Model/Filters/XyyCustomFilter.js","../node_modules/scichart/Charting/Model/Filters/XyyFilterBase.js","../node_modules/scichart/Charting/Model/Filters/XyyScaleOffsetFilter.js","../node_modules/scichart/Charting/Model/Filters/XyzCustomFilter.js","../node_modules/scichart/Charting/Model/Filters/XyzFilterBase.js","../node_modules/scichart/Charting/Model/Filters/XyzScaleOffsetFilter.js","../node_modules/scichart/Charting/Model/HlcDataSeries.js","../node_modules/scichart/Charting/Model/IDataSeries.js","../node_modules/scichart/Charting/Model/IPaletteProvider.js","../node_modules/scichart/Charting/Model/IPointMetadata.js","../node_modules/scichart/Charting/Model/NonUniformHeatmapDataSeries.js","../node_modules/scichart/Charting/Model/OhlcDataSeries.js","../node_modules/scichart/Charting/Model/PaletteFactory.js","../node_modules/scichart/Charting/Model/PointSeries/BasePointSeriesResampled.js","../node_modules/scichart/Charting/Model/PointSeries/BasePointSeriesWrapped.js","../node_modules/scichart/Charting/Model/PointSeries/HlcPointSeriesWrapped.js","../node_modules/scichart/Charting/Model/PointSeries/OhlcPointSeriesResampled.js","../node_modules/scichart/Charting/Model/PointSeries/OhlcPointSeriesWrapped.js","../node_modules/scichart/Charting/Model/PointSeries/XyPointSeriesResampled.js","../node_modules/scichart/Charting/Model/PointSeries/XyPointSeriesWrapped.js","../node_modules/scichart/Charting/Model/PointSeries/XyyPointSeriesResampled.js","../node_modules/scichart/Charting/Model/PointSeries/XyyPointSeriesWrapped.js","../node_modules/scichart/Charting/Model/PointSeries/XyzPointSeriesWrapped.js","../node_modules/scichart/Charting/Model/UniformHeatmapDataSeries.js","../node_modules/scichart/Charting/Model/XyDataSeries.js","../node_modules/scichart/Charting/Model/XyTextDataSeries.js","../node_modules/scichart/Charting/Model/XyyDataSeries.js","../node_modules/scichart/Charting/Model/XyzDataSeries.js","../node_modules/scichart/Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator.js","../node_modules/scichart/Charting/Numerics/CoordinateCalculators/CoordinateCalculatorBase.js","../node_modules/scichart/Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator.js","../node_modules/scichart/Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator.js","../node_modules/scichart/Charting/Numerics/CoordinateCalculators/LogarithmicCoordinateCalculator.js","../node_modules/scichart/Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator.js","../node_modules/scichart/Charting/Numerics/Resamplers/ExtremeResamplerHelper.js","../node_modules/scichart/Charting/Numerics/Resamplers/ResamplingMode.js","../node_modules/scichart/Charting/Numerics/Resamplers/ResamplingParams.js","../node_modules/scichart/Charting/Numerics/TickCoordinateProviders/DefaultTickCoordinatesProvider.js","../node_modules/scichart/Charting/Numerics/TickCoordinateProviders/StaticTickCoordinatesProvider.js","../node_modules/scichart/Charting/Numerics/TickCoordinateProviders/TickCoordinatesProvider.js","../node_modules/scichart/Charting/Numerics/TickProviders/LogarithmicTickProvider.js","../node_modules/scichart/Charting/Numerics/TickProviders/NumericTickProvider.js","../node_modules/scichart/Charting/Numerics/TickProviders/TickProvider.js","../node_modules/scichart/Charting/Services/ChartTitleRenderer.js","../node_modules/scichart/Charting/Services/RenderPassData.js","../node_modules/scichart/Charting/Services/RenderPassDataCollection.js","../node_modules/scichart/Charting/Services/RenderPassInfo.js","../node_modules/scichart/Charting/Services/SciChartRenderer.js","../node_modules/scichart/Charting/Services/TitleRenderer.js","../node_modules/scichart/Charting/Themes/IThemeProvider.js","../node_modules/scichart/Charting/Themes/SciChartJSDarkTheme.js","../node_modules/scichart/Charting/Themes/SciChartJSDarkv2Theme.js","../node_modules/scichart/Charting/Themes/SciChartJSLightTheme.js","../node_modules/scichart/Charting/Themes/SciChartJsNavyTheme.js","../node_modules/scichart/Charting/Visuals/Annotations/AdornerLayer.js","../node_modules/scichart/Charting/Visuals/Annotations/AnnotationBase.js","../node_modules/scichart/Charting/Visuals/Annotations/AnnotationClickEventArgs.js","../node_modules/scichart/Charting/Visuals/Annotations/AnnotationDragDeltaEventArgs.js","../node_modules/scichart/Charting/Visuals/Annotations/AnnotationHoverEventArgs.js","../node_modules/scichart/Charting/Visuals/Annotations/AxisMarkerAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/BoxAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/CustomAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/HorizontalLineAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/IAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/LineAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/NativeTextAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/OverviewCustomResizableAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/RenderContextAnnotationBase.js","../node_modules/scichart/Charting/Visuals/Annotations/RolloverLegendSvgAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/SvgAnnotationBase.js","../node_modules/scichart/Charting/Visuals/Annotations/TextAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/VerticalLineAnnotation.js","../node_modules/scichart/Charting/Visuals/Annotations/annotationHelpers.js","../node_modules/scichart/Charting/Visuals/Annotations/constants.js","../node_modules/scichart/Charting/Visuals/Axis/AxisBase2D.js","../node_modules/scichart/Charting/Visuals/Axis/AxisCore.js","../node_modules/scichart/Charting/Visuals/Axis/AxisLayoutState.js","../node_modules/scichart/Charting/Visuals/Axis/AxisRenderer.js","../node_modules/scichart/Charting/Visuals/Axis/AxisTitleRenderer.js","../node_modules/scichart/Charting/Visuals/Axis/CategoryAxis.js","../node_modules/scichart/Charting/Visuals/Axis/CategoryAxisBase.js","../node_modules/scichart/Charting/Visuals/Axis/DateTimeNumericAxis.js","../node_modules/scichart/Charting/Visuals/Axis/DeltaCalculator/CategoryDeltaCalculator.js","../node_modules/scichart/Charting/Visuals/Axis/DeltaCalculator/DateTimeDeltaCalculator.js","../node_modules/scichart/Charting/Visuals/Axis/DeltaCalculator/DeltaCalculator.js","../node_modules/scichart/Charting/Visuals/Axis/DeltaCalculator/LogarithmicDeltaCalculator.js","../node_modules/scichart/Charting/Visuals/Axis/DeltaCalculator/NumericDeltaCalculator.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/DateLabelProvider.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/LabelCache.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/LabelProvider.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/LogarithmicLabelProvider.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/NumericLabelProvider.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/PieLabelProvider.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider.js","../node_modules/scichart/Charting/Visuals/Axis/LabelProvider/TextLabelProvider.js","../node_modules/scichart/Charting/Visuals/Axis/LogarithmicAxis.js","../node_modules/scichart/Charting/Visuals/Axis/NumericAxis.js","../node_modules/scichart/Charting/Visuals/Axis/VisibleRangeChangedArgs.js","../node_modules/scichart/Charting/Visuals/Axis/constants.js","../node_modules/scichart/Charting/Visuals/Axis/getAxisById.js","../node_modules/scichart/Charting/Visuals/HeatmapLegend.js","../node_modules/scichart/Charting/Visuals/Helpers/NativeObject.js","../node_modules/scichart/Charting/Visuals/Helpers/createNativeRect.js","../node_modules/scichart/Charting/Visuals/Helpers/createPen.js","../node_modules/scichart/Charting/Visuals/Helpers/createSolidBrush.js","../node_modules/scichart/Charting/Visuals/Helpers/drawBorder.js","../node_modules/scichart/Charting/Visuals/Helpers/drawLabel.js","../node_modules/scichart/Charting/Visuals/Legend/ManualLegend.js","../node_modules/scichart/Charting/Visuals/Legend/SciChartLegend.js","../node_modules/scichart/Charting/Visuals/Legend/SciChartLegendBase.js","../node_modules/scichart/Charting/Visuals/Legend/SciChartPieLegend.js","../node_modules/scichart/Charting/Visuals/PointMarkers/BasePointMarker.js","../node_modules/scichart/Charting/Visuals/PointMarkers/Constants.js","../node_modules/scichart/Charting/Visuals/PointMarkers/CrossPointMarker.js","../node_modules/scichart/Charting/Visuals/PointMarkers/EllipsePointMarker.js","../node_modules/scichart/Charting/Visuals/PointMarkers/SpritePointMarker.js","../node_modules/scichart/Charting/Visuals/PointMarkers/SquarePointMarker.js","../node_modules/scichart/Charting/Visuals/PointMarkers/TrianglePointMarker.js","../node_modules/scichart/Charting/Visuals/PointMarkers/XPointMarker.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/BandAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/BandAnimationStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/BaseAnimationStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/BasePointMarkerStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/BubbleAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/CandlestickAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/CandlestickAnimationStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/ColumnAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/ColumnAnimationStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/CustomPointMarkerStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/LineAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/MountainAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/MountainAnimationStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/OhlcAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/OhlcAnimationStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/PointMarkerStyle.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/ScatterAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/SeriesAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/SweepAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/Animations/animationHelpers.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/BaseHeatmapRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/BaseStackedCollection.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/BandSeriesDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/BaseDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/BubbleSeriesDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/ColumnSeriesDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/ContoursDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/DataLabelState.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/HeatMapDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/LineSeriesDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/NonUniformHeatmapDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/StackedCollectionDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/StackedColumnSeriesDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DataLabels/TextDataLabelProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/ErrorSeriesDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/NonUniformHeatmapDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/UniformContoursDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastBandRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastCandlestickRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastErrorBarsRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastImpulseRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastLineRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastMountainRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastOhlcRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/FastTextRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/GlowEffect.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HeatmapColorMap.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/BandSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/BaseHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/ColumnSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/ErrorSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/HitTestInfo.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/ImpulseSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/LineSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/MountainSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/NonUniformHeatmapHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/OhlcSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/ScatterSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/StackedColumnSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/StackedMountainSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/TextSeriesHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/UniformHeatmapHitTestProvider.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/HoveredChangedArgs.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/NonUniformHeatmapRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/RenderDataTransforms/BaseRenderDataTransform.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/RenderDataTransforms/BezierRenderDataTransform.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/RenderDataTransforms/SplineRenderDataTransform.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/RenderDataTransforms/XyySplineRenderDataTransform.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/RolloverModifier/constants.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/SelectionChangedArgs.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/SeriesHoveredArgs.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/SeriesSelectedArgs.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/SeriesVisibleChangedArgs.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/ShaderEffect.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/ShadowEffect.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/SmoothStackedMountainRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/StackedColumnCollection.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/StackedMountainCollection.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.js","../node_modules/scichart/Charting/Visuals/RenderableSeries/constants.js","../node_modules/scichart/Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect.js","../node_modules/scichart/Charting/Visuals/RubberBandSvgRect/constants.js","../node_modules/scichart/Charting/Visuals/SciChartDefaults.js","../node_modules/scichart/Charting/Visuals/SciChartOverview.js","../node_modules/scichart/Charting/Visuals/SciChartPieSurface/PieSegment/PieSegment.js","../node_modules/scichart/Charting/Visuals/SciChartPieSurface/PieSegment/constants.js","../node_modules/scichart/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.js","../node_modules/scichart/Charting/Visuals/SciChartPieSurface/constants.js","../node_modules/scichart/Charting/Visuals/SciChartSurface.js","../node_modules/scichart/Charting/Visuals/SciChartSurfaceBase.js","../node_modules/scichart/Charting/Visuals/TextureManager/CanvasTexture.js","../node_modules/scichart/Charting/Visuals/TextureManager/DpiHelper.js","../node_modules/scichart/Charting/Visuals/TextureManager/TextureManager.js","../node_modules/scichart/Charting/Visuals/UpdateSuspender.js","../node_modules/scichart/Charting/Visuals/copyCanvasUtils.js","../node_modules/scichart/Charting/Visuals/createMaster.js","../node_modules/scichart/Charting/Visuals/createSingle.js","../node_modules/scichart/Charting/Visuals/licenseManager2D.js","../node_modules/scichart/Charting/Visuals/licenseManager2dState.js","../node_modules/scichart/Charting/Visuals/loader.js","../node_modules/scichart/Charting/Visuals/sciChartInitCommon.js","../node_modules/scichart/Charting3D/CameraController.js","../node_modules/scichart/Charting3D/ChartModifiers/ChartModifierBase3D.js","../node_modules/scichart/Charting3D/ChartModifiers/CustomChartModifier3D.js","../node_modules/scichart/Charting3D/ChartModifiers/MouseWheelZoomModifier3D.js","../node_modules/scichart/Charting3D/ChartModifiers/OrbitModifier3D.js","../node_modules/scichart/Charting3D/ChartModifiers/PinchZoomModifier3D.js","../node_modules/scichart/Charting3D/ChartModifiers/ResetCamera3DModifier.js","../node_modules/scichart/Charting3D/ChartModifiers/TooltipModifier3D.js","../node_modules/scichart/Charting3D/Model/DataSeries/BaseDataSeries3D.js","../node_modules/scichart/Charting3D/Model/DataSeries/BaseGridDataSeries3D.js","../node_modules/scichart/Charting3D/Model/DataSeries/UniformGridDataSeries3D.js","../node_modules/scichart/Charting3D/Model/DataSeries/XyzDataSeries3D.js","../node_modules/scichart/Charting3D/Vector3.js","../node_modules/scichart/Charting3D/Visuals/Annotations/TooltipSvgAnnotation3D.js","../node_modules/scichart/Charting3D/Visuals/Axis/AxisBase3D.js","../node_modules/scichart/Charting3D/Visuals/Axis/AxisBase3DLabelStyle.js","../node_modules/scichart/Charting3D/Visuals/Axis/AxisCubeEntity.js","../node_modules/scichart/Charting3D/Visuals/Axis/EAxisSideClipping.js","../node_modules/scichart/Charting3D/Visuals/Axis/ETextAlignment3D.js","../node_modules/scichart/Charting3D/Visuals/Axis/IAxisDescriptor.js","../node_modules/scichart/Charting3D/Visuals/Axis/NumericAxis3D.js","../node_modules/scichart/Charting3D/Visuals/Axis/constants.js","../node_modules/scichart/Charting3D/Visuals/Constants.js","../node_modules/scichart/Charting3D/Visuals/DefaultViewportManager3D.js","../node_modules/scichart/Charting3D/Visuals/GizmoEntity.js","../node_modules/scichart/Charting3D/Visuals/PointMarkers/BaseMeshPointMarker3D.js","../node_modules/scichart/Charting3D/Visuals/PointMarkers/BasePointMarker3D.js","../node_modules/scichart/Charting3D/Visuals/PointMarkers/BaseTexturePointMarker3D.js","../node_modules/scichart/Charting3D/Visuals/PointMarkers/Constants.js","../node_modules/scichart/Charting3D/Visuals/PointMarkers/DefaultPointMarkers.js","../node_modules/scichart/Charting3D/Visuals/Primitives/AxisCubeDescriptor.js","../node_modules/scichart/Charting3D/Visuals/Primitives/BaseSceneEntity3D.js","../node_modules/scichart/Charting3D/Visuals/Primitives/CrosshairLinesSceneEntity.js","../node_modules/scichart/Charting3D/Visuals/Primitives/EntityIdProvider.js","../node_modules/scichart/Charting3D/Visuals/Primitives/PointLine3DSceneEntity.js","../node_modules/scichart/Charting3D/Visuals/Primitives/RenderPassInfo3D.js","../node_modules/scichart/Charting3D/Visuals/Primitives/RenderableSeriesSceneEntity.js","../node_modules/scichart/Charting3D/Visuals/Primitives/RenderableSeriesSceneEntityState.js","../node_modules/scichart/Charting3D/Visuals/Primitives/ScatterPointsSceneEntity.js","../node_modules/scichart/Charting3D/Visuals/Primitives/SceneDescriptor.js","../node_modules/scichart/Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/Constants.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/ESeriesType.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/HitTestInfo3D.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/PointLineRenderableSeries3D.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/ScatterRenderableSeries3D.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/SeriesInfo3D.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/SurfaceMesh/GradientColorPalette.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/SurfaceMesh/MeshColorPalette.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/SurfaceMesh/SolidColorBrushPalette.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/SurfaceMesh/SurfaceMeshRenderableSeries3D.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/SurfaceMeshSeriesInfo3D.js","../node_modules/scichart/Charting3D/Visuals/RenderableSeries/XyzSeriesInfo3D.js","../node_modules/scichart/Charting3D/Visuals/RootSceneEntity.js","../node_modules/scichart/Charting3D/Visuals/SciChart3DRenderer.js","../node_modules/scichart/Charting3D/Visuals/SciChart3DSurface.js","../node_modules/scichart/Charting3D/Visuals/ViewportManager3DBase.js","../node_modules/scichart/Charting3D/Visuals/createMaster3d.js","../node_modules/scichart/Charting3D/Visuals/createSingle3d.js","../node_modules/scichart/Charting3D/Visuals/licenseManager3D.js","../node_modules/scichart/Core/AnimationToken.js","../node_modules/scichart/Core/Animations/AnimationFiniteStateMachine.js","../node_modules/scichart/Core/Animations/Animator.js","../node_modules/scichart/Core/Animations/DoubleAnimator.js","../node_modules/scichart/Core/Animations/EasingFunctions.js","../node_modules/scichart/Core/Animations/GenericAnimation.js","../node_modules/scichart/Core/Animations/NumberRangeAnimator.js","../node_modules/scichart/Core/BuildStamp.js","../node_modules/scichart/Core/DeletableEntity.js","../node_modules/scichart/Core/Deleter.js","../node_modules/scichart/Core/Dictionary.js","../node_modules/scichart/Core/EventHandler.js","../node_modules/scichart/Core/Globals.js","../node_modules/scichart/Core/GradientParams.js","../node_modules/scichart/Core/Guard.js","../node_modules/scichart/Core/List.js","../node_modules/scichart/Core/Mouse/MouseManager.js","../node_modules/scichart/Core/NumberRange.js","../node_modules/scichart/Core/NumberUtil.js","../node_modules/scichart/Core/ObservableArray.js","../node_modules/scichart/Core/ObservableArrayChangedArgs.js","../node_modules/scichart/Core/OneTimePerformanceWarning.js","../node_modules/scichart/Core/Point.js","../node_modules/scichart/Core/PropertyChangedEventArgs.js","../node_modules/scichart/Core/Rect.js","../node_modules/scichart/Core/Telemetry.js","../node_modules/scichart/Core/Thickness.js","../node_modules/scichart/Core/WebGlHelper.js","../node_modules/scichart/Core/storage/localStorageApi.js","../node_modules/scichart/_wasm/scichart2d.js","../node_modules/scichart/_wasm/scichart3d.js","../node_modules/scichart/constants/app.js","../node_modules/scichart/constants/performanceWarnings.js","../node_modules/scichart/index.js","../node_modules/scichart/types/AnchorPoint.js","../node_modules/scichart/types/AnimationType.js","../node_modules/scichart/types/AutoColorMode.js","../node_modules/scichart/types/AutoRange.js","../node_modules/scichart/types/AxisAlignment.js","../node_modules/scichart/types/AxisType.js","../node_modules/scichart/types/BaseType.js","../node_modules/scichart/types/ChartModifierType.js","../node_modules/scichart/types/Color.js","../node_modules/scichart/types/CursorStyle.js","../node_modules/scichart/types/DataFilterType.js","../node_modules/scichart/types/DataLabelProviderType.js","../node_modules/scichart/types/DataLabelSkipMode.js","../node_modules/scichart/types/DataPointWidthMode.js","../node_modules/scichart/types/DefaultRenderLayer.js","../node_modules/scichart/types/DragMode.js","../node_modules/scichart/types/ErrorDirection.js","../node_modules/scichart/types/ErrorMode.js","../node_modules/scichart/types/ExecuteOn.js","../node_modules/scichart/types/HoverMode.js","../node_modules/scichart/types/LabelAlignment.js","../node_modules/scichart/types/LabelPlacement.js","../node_modules/scichart/types/LabelProviderType.js","../node_modules/scichart/types/LayoutMangerType.js","../node_modules/scichart/types/LayoutStrategyType.js","../node_modules/scichart/types/MousePosition.js","../node_modules/scichart/types/NumberArray.js","../node_modules/scichart/types/NumericFormat.js","../node_modules/scichart/types/PaletteProviderType.js","../node_modules/scichart/types/PointMarkerType.js","../node_modules/scichart/types/RenderLayer.js","../node_modules/scichart/types/SceneEntityType.js","../node_modules/scichart/types/SciChartSurfaceType.js","../node_modules/scichart/types/SearchMode.js","../node_modules/scichart/types/SeriesType.js","../node_modules/scichart/types/ShaderEffectType.js","../node_modules/scichart/types/Size.js","../node_modules/scichart/types/SvgClippingMode.js","../node_modules/scichart/types/TLinearColorMap.js","../node_modules/scichart/types/TSciChart.js","../node_modules/scichart/types/TextPosition.js","../node_modules/scichart/types/TextStyle.js","../node_modules/scichart/types/ThemeProviderType.js","../node_modules/scichart/types/WatermarkPosition.js","../node_modules/scichart/types/XyDirection.js","../node_modules/scichart/types/YRangeMode.js","../node_modules/scichart/types/ZoomState.js","../node_modules/scichart/types/licensingClasses.js","../node_modules/scichart/utils/MemoryUsageHelper.js","../node_modules/scichart/utils/array.js","../node_modules/scichart/utils/calcAverage.js","../node_modules/scichart/utils/ccall/appendDoubleVectorFromJsArray.js","../node_modules/scichart/utils/colorUtil.js","../node_modules/scichart/utils/convertColor.js","../node_modules/scichart/utils/convertToPixel.js","../node_modules/scichart/utils/cookie.js","../node_modules/scichart/utils/copyVector.js","../node_modules/scichart/utils/date.js","../node_modules/scichart/utils/debug.js","../node_modules/scichart/utils/font.js","../node_modules/scichart/utils/guid.js","../node_modules/scichart/utils/hasAllProperties.js","../node_modules/scichart/utils/hash.js","../node_modules/scichart/utils/html.js","../node_modules/scichart/utils/imageUtil.js","../node_modules/scichart/utils/includedAxis.js","../node_modules/scichart/utils/isRealNumber.js","../node_modules/scichart/utils/logger.js","../node_modules/scichart/utils/math.js","../node_modules/scichart/utils/memoize.js","../node_modules/scichart/utils/number.js","../node_modules/scichart/utils/parseColor.js","../node_modules/scichart/utils/perfomance.js","../node_modules/scichart/utils/pointUtil.js","../node_modules/scichart/utils/random.js","../node_modules/scichart/utils/randomPricesDataSource.js","../node_modules/scichart/utils/svgString.js","../node_modules/scichart/utils/text.js","../node_modules/scichart/utils/tooltip.js","../node_modules/scichart/utils/translate.js","../node_modules/scichart/utils/tsrExtensions.js","../node_modules/scichart/utils/zeroArray2D.js","../node_modules/shallowequal/index.js","../node_modules/style-dictionary/lib/utils/deepExtend.js","../node_modules/style-dictionary/lib/utils/es6_.js","../node_modules/style-dictionary/lib/utils/flattenProperties.js","../node_modules/style-dictionary/lib/utils/references/createReferenceRegex.js","../node_modules/style-dictionary/lib/utils/references/defaults.js","../node_modules/style-dictionary/lib/utils/references/usesReference.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/styled-components/src/utils/interleave.js","../node_modules/styled-components/src/utils/isPlainObject.js","../node_modules/styled-components/src/utils/empties.js","../node_modules/styled-components/src/utils/isFunction.js","../node_modules/styled-components/src/utils/getComponentName.js","../node_modules/styled-components/src/utils/isStyledComponent.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/utils/error.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Rehydration.js","../node_modules/styled-components/src/utils/nonce.js","../node_modules/styled-components/src/sheet/dom.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/generateAlphabeticName.js","../node_modules/styled-components/src/utils/hash.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/utils/stylis.js","../node_modules/styled-components/src/utils/stylisPluginInsertRule.js","../node_modules/styled-components/src/models/StyleSheetManager.js","../node_modules/styled-components/src/models/Keyframes.js","../node_modules/styled-components/src/utils/hyphenateStyleName.js","../node_modules/styled-components/src/utils/flatten.js","../node_modules/styled-components/src/utils/isStatelessFunction.js","../node_modules/styled-components/src/utils/addUnitIfNeeded.js","../node_modules/styled-components/src/constructors/css.js","../node_modules/styled-components/src/utils/checkDynamicCreation.js","../node_modules/styled-components/src/utils/determineTheme.js","../node_modules/styled-components/src/utils/escape.js","../node_modules/styled-components/src/utils/generateComponentId.js","../node_modules/styled-components/src/utils/isTag.js","../node_modules/styled-components/src/utils/mixinDeep.js","../node_modules/styled-components/src/models/ThemeProvider.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/utils/generateDisplayName.js","../node_modules/styled-components/src/utils/joinStrings.js","../node_modules/styled-components/src/utils/domElements.js","../node_modules/styled-components/src/constructors/styled.js","../node_modules/styled-components/src/constructors/constructWithOptions.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/constructors/createGlobalStyle.js","../node_modules/styled-components/src/constructors/keyframes.js","../node_modules/styled-components/src/models/ServerStyleSheet.js","../node_modules/styled-components/src/hoc/withTheme.js","../node_modules/styled-components/src/hooks/useTheme.js","../node_modules/styled-components/src/secretInternals.js","../node_modules/styled-components/src/base.js","../node_modules/tslib/tslib.es6.js","../node_modules/unfetch/src/index.mjs","../node_modules/universal-cookie/node_modules/cookie/index.js","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/url.js","../node_modules/url/util.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/warning/warning.js","../node_modules/xstate/lib/_virtual/_tslib.js","../node_modules/xstate/lib/actionTypes.js","../node_modules/xstate/lib/actions.js","../node_modules/xstate/lib/constants.js","../node_modules/xstate/lib/environment.js","../node_modules/xstate/lib/types.js","../node_modules/xstate/lib/utils.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","../node_modules/@aws-amplify/core/src/Util/Constants.ts","../node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts","../node_modules/@aws-amplify/auth/src/types/Auth.ts","../node_modules/@aws-amplify/core/src/Amplify.ts","../node_modules/@aws-amplify/core/src/JS.ts","../node_modules/@aws-amplify/core/src/ServiceWorker/ServiceWorker.ts","../node_modules/@aws-amplify/core/src/Hub.ts","../node_modules/@aws-amplify/core/src/StorageHelper/index.ts","../node_modules/@aws-amplify/core/src/Util/Retry.ts","../node_modules/@aws-amplify/core/src/OAuthHelper/GoogleOAuth.ts","../node_modules/@aws-amplify/core/src/OAuthHelper/FacebookOAuth.ts","../node_modules/@aws-amplify/core/src/OAuthHelper/index.ts","../node_modules/@aws-amplify/core/src/Platform/index.ts","../node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity/models/models_0.ts","../node_modules/@aws-sdk/protocol-http/src/httpResponse.ts","../node_modules/@aws-sdk/protocol-http/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/protocol-http/src/httpRequest.ts","../node_modules/@aws-sdk/client-cognito-identity/protocols/Aws_json1_1.ts","../node_modules/@aws-sdk/middleware-serde/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-serde/src/deserializerMiddleware.ts","../node_modules/@aws-sdk/middleware-serde/src/serdePlugin.ts","../node_modules/@aws-sdk/middleware-serde/src/serializerMiddleware.ts","../node_modules/@aws-sdk/middleware-stack/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-stack/src/MiddlewareStack.ts","../node_modules/@aws-sdk/smithy-client/src/client.ts","../node_modules/@aws-sdk/smithy-client/src/command.ts","../node_modules/@aws-sdk/smithy-client/src/extended-encode-uri-component.ts","../node_modules/@aws-sdk/smithy-client/src/get-array-if-single-item.ts","../node_modules/@aws-sdk/smithy-client/src/get-value-from-text-node.ts","../node_modules/@aws-sdk/smithy-client/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/smithy-client/src/lazy-json.ts","../node_modules/@aws-sdk/smithy-client/src/date-utils.ts","../node_modules/@aws-sdk/smithy-client/src/constants.ts","../node_modules/@aws-sdk/client-cognito-identity/commands/GetCredentialsForIdentityCommand.ts","../node_modules/@aws-sdk/property-provider/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/property-provider/src/ProviderError.ts","../node_modules/@aws-sdk/credential-provider-cognito-identity/src/resolveLogins.ts","../node_modules/@aws-sdk/credential-provider-cognito-identity/src/fromCognitoIdentity.ts","../node_modules/@aws-sdk/client-cognito-identity/commands/GetIdCommand.ts","../node_modules/@aws-sdk/credential-provider-cognito-identity/src/IndexedDbStorage.ts","../node_modules/@aws-sdk/credential-provider-cognito-identity/src/InMemoryStorage.ts","../node_modules/@aws-sdk/credential-provider-cognito-identity/src/localStorage.ts","../node_modules/@aws-sdk/credential-provider-cognito-identity/src/fromCognitoIdentityPool.ts","../node_modules/@aws-sdk/fetch-http-handler/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/querystring-builder/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/util-uri-escape/src/escape-uri.ts","../node_modules/@aws-sdk/querystring-builder/src/index.ts","../node_modules/@aws-sdk/util-base64-browser/src/index.ts","../node_modules/@aws-sdk/fetch-http-handler/src/fetch-http-handler.ts","../node_modules/@aws-sdk/fetch-http-handler/src/request-timeout.ts","../node_modules/@aws-sdk/fetch-http-handler/src/stream-collector.ts","../node_modules/@aws-sdk/invalid-dependency/src/invalidProvider.ts","../node_modules/@aws-sdk/middleware-retry/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-retry/src/retryMiddleware.ts","../node_modules/@aws-sdk/service-error-classification/src/constants.ts","../node_modules/@aws-sdk/service-error-classification/src/index.ts","../node_modules/@aws-sdk/middleware-retry/src/delayDecider.ts","../node_modules/@aws-sdk/middleware-retry/src/constants.ts","../node_modules/@aws-sdk/middleware-retry/src/retryDecider.ts","../node_modules/@aws-sdk/middleware-retry/src/defaultStrategy.ts","../node_modules/@aws-sdk/middleware-retry/src/defaultRetryQuota.ts","../node_modules/@aws-sdk/middleware-retry/src/configurations.ts","../node_modules/@aws-sdk/util-body-length-browser/src/index.ts","../node_modules/@aws-sdk/util-user-agent-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/util-user-agent-browser/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-utf8-browser/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity/endpoints.ts","../node_modules/@aws-sdk/querystring-parser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/url-parser/src/index.ts","../node_modules/@aws-sdk/querystring-parser/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity/runtimeConfig.shared.ts","../node_modules/@aws-sdk/client-cognito-identity/runtimeConfig.browser.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-utf8-browser/src/whatwgEncodingApi.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-utf8-browser/src/pureJs.ts","../node_modules/@aws-sdk/config-resolver/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/config-resolver/src/EndpointsConfig.ts","../node_modules/@aws-sdk/config-resolver/src/RegionConfig.ts","../node_modules/@aws-sdk/middleware-content-length/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-content-length/src/index.ts","../node_modules/@aws-sdk/middleware-host-header/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-host-header/src/index.ts","../node_modules/@aws-sdk/middleware-logger/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-logger/src/loggerMiddleware.ts","../node_modules/@aws-sdk/middleware-signing/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/signature-v4/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/util-hex-encoding/src/index.ts","../node_modules/@aws-sdk/signature-v4/src/constants.ts","../node_modules/@aws-sdk/signature-v4/src/credentialDerivation.ts","../node_modules/@aws-sdk/signature-v4/src/getCanonicalHeaders.ts","../node_modules/@aws-sdk/signature-v4/src/getPayloadHash.ts","../node_modules/@aws-sdk/is-array-buffer/src/index.ts","../node_modules/@aws-sdk/signature-v4/src/cloneRequest.ts","../node_modules/@aws-sdk/signature-v4/src/prepareRequest.ts","../node_modules/@aws-sdk/signature-v4/src/utilDate.ts","../node_modules/@aws-sdk/signature-v4/src/SignatureV4.ts","../node_modules/@aws-sdk/signature-v4/src/moveHeadersToQuery.ts","../node_modules/@aws-sdk/signature-v4/src/hasHeader.ts","../node_modules/@aws-sdk/signature-v4/src/getCanonicalQuery.ts","../node_modules/@aws-sdk/middleware-signing/src/configurations.ts","../node_modules/@aws-sdk/middleware-signing/src/middleware.ts","../node_modules/@aws-sdk/middleware-user-agent/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-user-agent/src/configurations.ts","../node_modules/@aws-sdk/middleware-user-agent/src/constants.ts","../node_modules/@aws-sdk/middleware-user-agent/src/user-agent-middleware.ts","../node_modules/@aws-sdk/client-cognito-identity/CognitoIdentityClient.ts","../node_modules/@aws-amplify/core/src/Credentials.ts","../node_modules/@aws-amplify/core/src/Parser.ts","../node_modules/universal-cookie/es6/utils.js","../node_modules/universal-cookie/es6/Cookies.js","../node_modules/universal-cookie/es6/index.js","../node_modules/@aws-amplify/core/src/UniversalStorage/index.ts","../node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","../node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.web.js","../node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","../node_modules/amazon-cognito-identity-js/es/BigInteger.js","../node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","../node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","../node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","../node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","../node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","../node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","../node_modules/amazon-cognito-identity-js/es/DateHelper.js","../node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","../node_modules/amazon-cognito-identity-js/es/StorageHelper.js","../node_modules/amazon-cognito-identity-js/es/CognitoUser.js","../node_modules/amazon-cognito-identity-js/es/Platform/index.js","../node_modules/amazon-cognito-identity-js/es/UserAgent.js","../node_modules/amazon-cognito-identity-js/es/Client.js","../node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","../node_modules/@aws-amplify/auth/src/common/AuthErrorStrings.ts","../node_modules/amazon-cognito-identity-js/es/CookieStorage.js","../node_modules/@aws-amplify/auth/src/OAuth/urlOpener.ts","../node_modules/@aws-amplify/auth/src/OAuth/OAuth.ts","../node_modules/@aws-amplify/core/src/Util/StringUtils.ts","../node_modules/@aws-amplify/auth/src/OAuth/oauthStorage.ts","../node_modules/@aws-amplify/auth/src/Errors.ts","../node_modules/@aws-amplify/auth/src/Auth.ts","../node_modules/@aws-amplify/auth/src/urlListener.ts","../node_modules/@aws-amplify/cache/src/Utils/CacheUtils.ts","../node_modules/@aws-sdk/client-s3/models/models_0.ts","../node_modules/@aws-amplify/cache/src/StorageCache.ts","../node_modules/@aws-amplify/cache/src/BrowserStorageCache.ts","../node_modules/@aws-amplify/cache/src/index.ts","../node_modules/@aws-sdk/xml-builder/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/xml-builder/src/XmlNode.ts","../node_modules/@aws-sdk/xml-builder/src/escape-attribute.ts","../node_modules/@aws-sdk/xml-builder/src/XmlText.ts","../node_modules/@aws-sdk/xml-builder/src/escape-element.ts","../node_modules/@aws-sdk/client-s3/protocols/Aws_restXml.ts","../node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/util-arn-parser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/util-arn-parser/src/index.ts","../node_modules/@aws-sdk/middleware-bucket-endpoint/src/bucketHostnameUtils.ts","../node_modules/@aws-sdk/middleware-bucket-endpoint/src/bucketHostname.ts","../node_modules/@aws-sdk/middleware-bucket-endpoint/src/bucketEndpointMiddleware.ts","../node_modules/@aws-sdk/middleware-sdk-s3/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-sdk-s3/src/validate-bucket-name.ts","../node_modules/@aws-sdk/middleware-sdk-s3/src/use-regional-endpoint.ts","../node_modules/@aws-sdk/middleware-sdk-s3/src/throw-200-exceptions.ts","../node_modules/@aws-sdk/middleware-ssec/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-ssec/src/index.ts","../node_modules/@aws-sdk/client-s3/commands/CopyObjectCommand.ts","../node_modules/@aws-sdk/client-s3/commands/GetObjectCommand.ts","../node_modules/@aws-sdk/client-s3/commands/DeleteObjectCommand.ts","../node_modules/@aws-sdk/client-s3/commands/ListObjectsV2Command.ts","../node_modules/@aws-sdk/util-format-url/src/index.ts","../node_modules/@aws-sdk/util-create-request/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/util-create-request/src/index.ts","../node_modules/@aws-sdk/s3-request-presigner/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/s3-request-presigner/src/constants.ts","../node_modules/@aws-amplify/storage/src/common/StorageErrorStrings.ts","../node_modules/@aws-sdk/s3-request-presigner/src/presigner.ts","../node_modules/@aws-amplify/storage/src/providers/axios-http-handler.ts","../node_modules/@aws-amplify/storage/src/common/StorageConstants.ts","../node_modules/@aws-amplify/storage/src/common/StorageUtils.ts","../node_modules/@aws-sdk/eventstream-marshaller/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/eventstream-marshaller/src/Int64.ts","../node_modules/@aws-sdk/eventstream-marshaller/src/HeaderMarshaller.ts","../node_modules/@aws-sdk/eventstream-marshaller/src/EventStreamMarshaller.ts","../node_modules/@aws-sdk/eventstream-marshaller/src/splitMessage.ts","../node_modules/@aws-sdk/eventstream-serde-universal/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/eventstream-serde-universal/src/EventStreamMarshaller.ts","../node_modules/@aws-sdk/eventstream-serde-universal/src/getChunkedStream.ts","../node_modules/@aws-sdk/eventstream-serde-universal/src/getUnmarshalledStream.ts","../node_modules/@aws-sdk/eventstream-serde-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/eventstream-serde-browser/src/utils.ts","../node_modules/@aws-sdk/eventstream-serde-browser/src/EventStreamMarshaller.ts","../node_modules/@aws-sdk/hash-blob-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/chunked-blob-reader/src/index.ts","../node_modules/@aws-sdk/md5-js/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/md5-js/node_modules/@aws-sdk/util-utf8-browser/src/index.ts","../node_modules/@aws-sdk/md5-js/node_modules/@aws-sdk/util-utf8-browser/src/whatwgEncodingApi.ts","../node_modules/@aws-sdk/md5-js/node_modules/@aws-sdk/util-utf8-browser/src/pureJs.ts","../node_modules/@aws-sdk/md5-js/src/constants.ts","../node_modules/@aws-sdk/md5-js/src/index.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-utf8-browser/src/index.ts","../node_modules/@aws-sdk/client-s3/endpoints.ts","../node_modules/@aws-sdk/client-s3/runtimeConfig.shared.ts","../node_modules/@aws-sdk/client-s3/runtimeConfig.browser.ts","../node_modules/@aws-sdk/eventstream-serde-browser/src/provider.ts","../node_modules/@aws-sdk/hash-blob-browser/src/index.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-utf8-browser/src/whatwgEncodingApi.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-utf8-browser/src/pureJs.ts","../node_modules/@aws-sdk/eventstream-serde-config-resolver/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-expect-continue/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/middleware-expect-continue/src/index.ts","../node_modules/@aws-sdk/client-s3/models/models_1.ts","../node_modules/@aws-sdk/client-s3/S3Client.ts","../node_modules/@aws-sdk/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.ts","../node_modules/@aws-sdk/middleware-bucket-endpoint/src/configurations.ts","../node_modules/@aws-amplify/storage/src/common/S3ClientUtils.ts","../node_modules/@aws-sdk/client-s3/commands/PutObjectCommand.ts","../node_modules/@aws-sdk/client-s3/commands/CreateMultipartUploadCommand.ts","../node_modules/@aws-sdk/client-s3/commands/UploadPartCommand.ts","../node_modules/@aws-amplify/storage/src/providers/AWSS3UploadTask.ts","../node_modules/@aws-sdk/client-s3/commands/CompleteMultipartUploadCommand.ts","../node_modules/@aws-sdk/client-s3/commands/AbortMultipartUploadCommand.ts","../node_modules/@aws-sdk/client-s3/commands/ListPartsCommand.ts","../node_modules/@aws-amplify/storage/src/providers/AWSS3ProviderManagedUpload.ts","../node_modules/@aws-amplify/storage/src/providers/AWSS3Provider.ts","../node_modules/@aws-amplify/storage/src/Storage.ts","../node_modules/@aws-amplify/storage/src/index.ts","../node_modules/aws-amplify/src/index.ts","AWSConfig.tsx","../node_modules/@aws-amplify/ui/dist/esm/node_modules/tslib/tslib.es6.js","../node_modules/@aws-amplify/ui/dist/esm/theme/defaultTheme.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/index.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/index.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/alert.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/authenticator.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/badge.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/button.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/card.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/checkbox.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/checkboxField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/collection.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/copy.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/countryCodeSelect.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/divider.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/expander.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/field.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/fieldControl.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/fieldGroup.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/fieldMessages.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/flex.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/heading.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/icon.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/image.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/link.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/loader.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/menu.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/pagination.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/passwordField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/phoneNumberField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/placeholder.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/radio.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/radioGroup.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/rating.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/searchField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/select.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/selectField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/sliderField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/stepperField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/switchField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/table.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/tabs.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/text.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/textAreaField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/textField.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/toggleButton.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/toggleButtonGroup.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/borderWidths.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/colors.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/fonts.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/fontSizes.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/fontWeights.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/lineHeights.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/opacities.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/outlineOffsets.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/outlineWidths.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/radii.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/shadows.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/space.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/time.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/transforms.js","../node_modules/@aws-amplify/ui/dist/esm/theme/breakpoints.js","../node_modules/@aws-amplify/ui/dist/esm/theme/utils.js","../node_modules/@aws-amplify/ui/dist/esm/theme/createTheme.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/ThemeProvider/AmplifyContext.js","../node_modules/@aws-amplify/ui-react/dist/esm/hooks/useTheme.js","../node_modules/@aws-amplify/ui-react/dist/esm/node_modules/tslib/tslib.es6.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/types/style.js","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/types/designToken.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/types.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/constants.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/utils.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/responsive/useBreakpoint.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/responsive/getMediaQueries.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/styleUtils.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/responsive/utils.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/View/View.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Image/Image.js","../node_modules/xstate/es/_virtual/_tslib.js","../node_modules/xstate/es/types.js","../node_modules/xstate/es/actionTypes.js","../node_modules/xstate/es/utils.js","../node_modules/xstate/es/constants.js","../node_modules/xstate/es/actions.js","../node_modules/xstate/es/index.js","../node_modules/xstate/es/stateUtils.js","../node_modules/xstate/es/State.js","../node_modules/xstate/es/serviceScope.js","../node_modules/xstate/es/Actor.js","../node_modules/xstate/es/invokeUtils.js","../node_modules/xstate/es/StateNode.js","../node_modules/xstate/es/Machine.js","../node_modules/xstate/es/scheduler.js","../node_modules/xstate/es/registry.js","../node_modules/xstate/es/devTools.js","../node_modules/xstate/es/behaviors.js","../node_modules/xstate/es/interpreter.js","../node_modules/@aws-amplify/ui/dist/esm/types/authenticator/user.js","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actions.js","../node_modules/@aws-amplify/ui/dist/esm/validators/index.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/country-dial-codes.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/constants.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/utils.js","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/defaultServices.js","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/signOut.js","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/index.js","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/signIn.js","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/signUp.js","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/resetPassword.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/actor.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/facade.js","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/@xstate/react/es/useConstant.js","../node_modules/@xstate/react/es/useInterpret.js","../node_modules/@xstate/react/es/useActor.js","../node_modules/@xstate/react/es/useSelector.js","../node_modules/@xstate/react/es/utils.js","../node_modules/@aws-amplify/ui-react/dist/esm/helpers/utils.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/hooks/useAuthenticator/index.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/hooks/useCustomComponents/index.js","../node_modules/@aws-amplify/core/src/I18n/I18n.ts","../node_modules/@aws-amplify/core/src/I18n/index.ts","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/index.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/de.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/en.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/es.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/fr.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/it.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/ja.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/kr.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/nl.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/pl.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/pt.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/zh.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/sv.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/id.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/tr.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/ru.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/defaultTexts.js","../node_modules/@aws-amplify/ui/dist/esm/i18n/translations.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Flex/Flex.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Loader/Loader.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Button/Button.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Heading/Heading.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Text/Text.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/hooks/useFormHandlers/useFormHandlers.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconCheckCircle.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconError.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconInfo.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconWarning.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Alert/AlertIcon.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconClose.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Alert/Alert.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/RemoteErrorMessage.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/context.js","../node_modules/@aws-amplify/ui/dist/esm/types/authenticator/attributes.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/form.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/formFields/defaults.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/formFields/formFields.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/formFields/util.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/VisuallyHidden/VisuallyHidden.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconVisibilityOff.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconVisibility.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/PasswordField/ShowPasswordButton.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Field/FieldDescription.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Field/FieldErrorMessage.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/FieldGroup/FieldGroup.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Input/Input.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Label/Label.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/TextField/utils.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/TextArea/TextArea.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/utils/useLayoutEffect.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/utils/useStableId.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/TextField/TextField.js","../node_modules/@aws-amplify/ui-react/dist/esm/hooks/useDeprecationWarning.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/PasswordField/PasswordField.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconExpandMore.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Select/Select.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/SelectField/SelectField.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/PhoneNumberField/CountryCodeSelect.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/PhoneNumberField/PhoneNumberField.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/ValidationErrors.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/FormField.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/FormFields.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/RouteContainer/RouteContainer.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ConfirmSignUp/ConfirmSignUp.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ForceNewPassword/ForceNewPassword.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/ConfirmSignInFooter.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/SetupTOTP/SetupTOTP.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-id/node_modules/@radix-ui/react-use-layout-effect/dist/packages/react/use-layout-effect/src/useLayoutEffect.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-id/dist/packages/react/id/src/id.tsx","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref/dist/packages/react/use-callback-ref/src/useCallbackRef.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-use-controllable-state/dist/packages/react/use-controllable-state/src/useControllableState.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/packages/react/compose-refs/src/composeRefs.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/packages/react/slot/src/Slot.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-primitive/dist/packages/react/primitive/src/Primitive.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-context/dist/packages/react/context/src/createContext.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-compose-refs/dist/packages/react/compose-refs/src/composeRefs.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/packages/react/slot/src/Slot.tsx","../node_modules/@radix-ui/primitive/dist/packages/core/primitive/src/primitive.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-roving-focus/dist/packages/react/roving-focus/src/RovingFocusGroup.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-collection/dist/packages/react/collection/src/Collection.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-use-callback-ref/dist/packages/react/use-callback-ref/src/useCallbackRef.tsx","../node_modules/@aws-amplify/ui-react/node_modules/@radix-ui/react-tabs/dist/packages/react/tabs/src/Tabs.tsx","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Tabs/Tabs.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Divider/Divider.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/Icon.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/FederatedSignIn/FederatedSignInButtons/FederatedSignInButton.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/FederatedSignIn/FederatedSignIn.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/SignIn/SignIn.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/SignUp/SignUp.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/SignInSignUpTabs.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/TwoButtonSubmitFooter.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/VerifyUser/ConfirmVerifyUser.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/RadioGroupField/context.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Radio/Radio.js","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/RadioGroupField/RadioGroupField.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/VerifyUser/VerifyUser.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ConfirmSignIn/ConfirmSignIn.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ResetPassword/ConfirmResetPassword.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ResetPassword/ResetPassword.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/utils.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/Router/Router.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/hooks/useCustomComponents/defaultComponents.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/Authenticator.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/mobx/src/errors.ts","../node_modules/mobx/src/utils/global.ts","../node_modules/mobx/src/utils/utils.ts","../node_modules/mobx/src/api/decorators.ts","../node_modules/mobx/src/types/overrideannotation.ts","../node_modules/mobx/src/core/atom.ts","../node_modules/mobx/src/api/become-observed.ts","../node_modules/mobx/src/utils/comparer.ts","../node_modules/mobx/src/types/modifiers.ts","../node_modules/mobx/src/types/actionannotation.ts","../node_modules/mobx/src/types/flowannotation.ts","../node_modules/mobx/src/types/computedannotation.ts","../node_modules/mobx/src/types/observableannotation.ts","../node_modules/mobx/src/types/autoannotation.ts","../node_modules/mobx/src/api/observable.ts","../node_modules/mobx/src/types/dynamicobject.ts","../node_modules/mobx/src/api/computed.ts","../node_modules/mobx/src/core/action.ts","../node_modules/mobx/src/types/observablevalue.ts","../node_modules/mobx/src/core/computedvalue.ts","../node_modules/mobx/src/core/derivation.ts","../node_modules/mobx/src/core/observable.ts","../node_modules/mobx/src/core/globalstate.ts","../node_modules/mobx/src/core/reaction.ts","../node_modules/mobx/src/api/trace.ts","../node_modules/mobx/src/api/action.ts","../node_modules/mobx/src/api/autorun.ts","../node_modules/mobx/src/api/configure.ts","../node_modules/mobx/src/api/extendobservable.ts","../node_modules/mobx/src/api/extras.ts","../node_modules/mobx/src/api/flow.ts","../node_modules/mobx/src/api/isobservable.ts","../node_modules/mobx/src/api/transaction.ts","../node_modules/mobx/src/types/intercept-utils.ts","../node_modules/mobx/src/types/listen-utils.ts","../node_modules/mobx/src/api/makeObservable.ts","../node_modules/mobx/src/types/observablearray.ts","../node_modules/mobx/src/core/spy.ts","../node_modules/mobx/src/types/observablemap.ts","../node_modules/mobx/src/types/observableset.ts","../node_modules/mobx/src/types/observableobject.ts","../node_modules/mobx/src/types/legacyobservablearray.ts","../node_modules/mobx/src/types/type-utils.ts","../node_modules/mobx/src/utils/eq.ts","../node_modules/mobx/src/utils/iterable.ts","../node_modules/mobx/src/mobx.ts","HTTPClient.tsx","types/TemperatureType.tsx","stores/DryStore.tsx","stores/GatewayStore.tsx","stores/SensorStore.tsx","stores/SpaceStore.tsx","stores/StrainStore.tsx","stores/UIStore.tsx","stores/AccountStore.tsx","stores/UserStore.tsx","stores/RootStore.tsx","StoreProvider.tsx","../node_modules/mobx-react-lite/src/utils/assertEnvironment.ts","../node_modules/mobx-react-lite/src/utils/observerBatching.ts","../node_modules/mobx-react-lite/src/utils/printDebugValue.ts","../node_modules/mobx-react-lite/src/utils/FinalizationRegistryWrapper.ts","../node_modules/mobx-react-lite/src/utils/reactionCleanupTrackingCommon.ts","../node_modules/mobx-react-lite/src/utils/reactionCleanupTracking.ts","../node_modules/mobx-react-lite/src/utils/createReactionCleanupTrackingUsingFinalizationRegister.ts","../node_modules/mobx-react-lite/src/utils/createTimerBasedReactionCleanupTracking.ts","../node_modules/mobx-react-lite/src/staticRendering.ts","../node_modules/mobx-react-lite/src/useObserver.ts","../node_modules/mobx-react-lite/src/observer.ts","../node_modules/mobx-react-lite/src/index.ts","../node_modules/mobx-react/src/utils/utils.ts","../node_modules/mobx-react/src/observerClass.ts","../node_modules/mobx-react/src/observer.tsx","../node_modules/mobx-react/src/index.ts","Loading.tsx","DataLoadingComponent.tsx","MainContentView.tsx","DateTime.tsx","reports/ReportSelector.tsx","reports/ReportsView.tsx","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/react-select/dist/useStateManager-68425271.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/react-select.esm.js","../node_modules/react-icons/lib/esm/iconContext.js","../node_modules/react-icons/lib/esm/iconBase.js","../node_modules/react-icons/md/index.esm.js","BackButton.tsx","Button.tsx","DeleteWithConfirmation.tsx","EndDryWithConfirmation.tsx","Utils.ts","PlainTextEditor.tsx","DatetimePicker.tsx","FormValidators.ts","ErrorText.tsx","dries/CreateNoteButton.tsx","dries/CustomNoteAnnotation.ts","dries/DryChart.tsx","Edit.tsx","StatBox.tsx","CancelButton.tsx","dries/SensorChart.tsx","NotFound.tsx","dries/UpdateNoteButton.tsx","dries/DryNoteView.tsx","screenSizeHook.ts","dries/IndividualTimeseriesStatsChart.tsx","../node_modules/react-tabs/esm/helpers/elementTypes.js","../node_modules/react-tabs/esm/helpers/childrenDeepMap.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/react-tabs/esm/helpers/count.js","../node_modules/react-tabs/esm/components/UncontrolledTabs.js","../node_modules/react-tabs/esm/components/Tabs.js","../node_modules/react-tabs/esm/components/TabList.js","../node_modules/react-tabs/esm/components/Tab.js","../node_modules/react-tabs/esm/components/TabPanel.js","dries/Dry.tsx","dries/DryContainer.tsx","Search.ts","AddNewTile.tsx","home/DryTile.tsx","home/HomeView.tsx","sensors/Sensor.tsx","TitleEditor.tsx","sensors/SensorPack.tsx","sensors/OrderSensorsView.tsx","StringEditor.tsx","Toggle.tsx","account/AccountView.tsx","home/SpaceTile.tsx","home/StrainTile.tsx","home/SensorPackTile.tsx","home/GatewayTile.tsx","settings/SettingsView.tsx","spaces/Space.tsx","strains/IdealDryChart.tsx","QuestionMarkPopup.tsx","strains/Strain.tsx","../node_modules/react-slider/dist/es/prod/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-slider/dist/es/prod/components/ReactSlider/ReactSlider.js","../node_modules/react-slider/dist/es/prod/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","Slider.tsx","NumberEditor.tsx","dries/UpdateDry.tsx","dries/UpdateDryView.tsx","spaces/UpdateSpace.tsx","spaces/UpdateSpaceView.tsx","dries/DryMoistureChart.tsx","strains/UpdateStrain.tsx","strains/UpdateStrainView.tsx","attributions/Attributions.tsx","gateways/Gateway.tsx","users/UsersView.tsx","UserFieldEditor.tsx","users/UpdateUser.tsx","users/UpdateUserView.tsx","RoutesComponent.tsx","AccountImage.tsx","AccountDisplay.tsx","TopBar.tsx","Footer.tsx","ErrorPage.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.26.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32 } from \"./index\";\n\nexport class AwsCrc32 implements Hash {\n private readonly crc32 = new Crc32();\n\n update(toHash: SourceData) {\n if (isEmptyData(toHash)) return;\n\n this.crc32.update(convertToBuffer(toHash));\n }\n\n async digest(): Promise {\n return numToUint8(this.crc32.digest());\n }\n}\n","import {uint32ArrayFrom} from \"@aws-crypto/util\";\n\nexport function crc32(data: Uint8Array): number {\n return new Crc32().update(data).digest();\n}\n\nexport class Crc32 {\n private checksum = 0xffffffff;\n\n update(data: Uint8Array): this {\n for (const byte of data) {\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n\n return this;\n }\n\n digest(): number {\n return (this.checksum ^ 0xffffffff) >>> 0;\n }\n}\n\n// prettier-ignore\nconst a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nconst lookupTable: Uint32Array = uint32ArrayFrom(a_lookUpTable)\nexport { AwsCrc32 } from \"./aws_crc32\";\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { MsSubtleCrypto } from \"./MsSubtleCrypto\";\n\ntype SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst msSubtleCryptoMethods: Array = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\n/**\n * The value accessible as `window.msCrypto` in Internet Explorer 11.\n */\nexport interface MsCrypto {\n getRandomValues: (toFill: Uint8Array) => void;\n subtle: MsSubtleCrypto;\n}\n\n/**\n * The `window` object in Internet Explorer 11. This interface does not\n * exhaustively document the prefixed features of `window` in IE11.\n */\nexport interface MsWindow extends Window {\n MSInputMethodContext: any;\n msCrypto: MsCrypto;\n}\n\nfunction quacksLikeAnMsWindow(window: Window): window is MsWindow {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nexport function isMsWindow(window: Window): window is MsWindow {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n const { getRandomValues, subtle } = window.msCrypto;\n return msSubtleCryptoMethods\n .map(methodName => subtle[methodName])\n .concat(getRandomValues)\n .every(method => typeof method === \"function\");\n }\n\n return false;\n}\n","export * from \"./CryptoOperation\";\nexport * from \"./Key\";\nexport * from \"./KeyOperation\";\nexport * from \"./MsSubtleCrypto\";\nexport * from \"./MsWindow\";\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const SHA_256_HASH: { name: \"SHA-256\" } = { name: \"SHA-256\" };\n\nexport const SHA_256_HMAC_ALGO: { name: \"HMAC\"; hash: { name: \"SHA-256\" } } = {\n name: \"HMAC\",\n hash: SHA_256_HASH\n};\n\nexport const EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n","import { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nimport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { isMsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private readonly hash: Hash;\n\n constructor(secret?: SourceData) {\n if (supportsWebCrypto(locateWindow())) {\n this.hash = new WebCryptoSha256(secret);\n } else if (isMsWindow(locateWindow())) {\n this.hash = new Ie11Sha256(secret);\n } else {\n this.hash = new JsSha256(secret);\n }\n }\n\n update(data: SourceData, encoding?: \"utf8\" | \"ascii\" | \"latin1\"): void {\n this.hash.update(data, encoding);\n }\n\n digest(): Promise {\n return this.hash.digest();\n }\n}\n","import { isEmptyData } from \"./isEmptyData\";\nimport { SHA_256_HMAC_ALGO } from \"./constants\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { CryptoOperation, Key, MsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private operation: Promise;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(keyData =>\n (locateWindow() as MsWindow).msCrypto.subtle.sign(\n SHA_256_HMAC_ALGO,\n keyData\n )\n );\n this.operation.catch(() => {});\n } else {\n this.operation = Promise.resolve(\n (locateWindow() as MsWindow).msCrypto.subtle.digest(\"SHA-256\")\n );\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash)) {\n return;\n }\n\n this.operation = this.operation.then(operation => {\n operation.onerror = () => {\n this.operation = Promise.reject(\n new Error(\"Error encountered updating hash\")\n );\n };\n operation.process(toArrayBufferView(toHash));\n\n return operation;\n });\n this.operation.catch(() => {});\n }\n\n digest(): Promise {\n return this.operation.then(\n operation =>\n new Promise((resolve, reject) => {\n operation.onerror = () => {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = () => {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.finish();\n })\n );\n }\n}\n\nfunction getKeyPromise(secret: SourceData): Promise {\n return new Promise((resolve, reject) => {\n const keyOperation = (locateWindow() as MsWindow).msCrypto.subtle.importKey(\n \"raw\",\n toArrayBufferView(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n );\n\n keyOperation.oncomplete = () => {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = () => {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\n\nfunction toArrayBufferView(data: SourceData): Uint8Array {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","export * from \"./crossPlatformSha256\";\nexport { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nexport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\n","import { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","import { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport {\n EMPTY_DATA_SHA_256,\n SHA_256_HASH,\n SHA_256_HMAC_ALGO,\n} from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private readonly key: Promise | undefined;\n private toHash: Uint8Array = new Uint8Array(0);\n\n constructor(secret?: SourceData) {\n if (secret !== void 0) {\n this.key = new Promise((resolve, reject) => {\n locateWindow()\n .crypto.subtle.importKey(\n \"raw\",\n convertToBuffer(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n )\n .then(resolve, reject);\n });\n this.key.catch(() => {});\n }\n }\n\n update(data: SourceData): void {\n if (isEmptyData(data)) {\n return;\n }\n\n const update = convertToBuffer(data);\n const typedArray = new Uint8Array(\n this.toHash.byteLength + update.byteLength\n );\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n }\n\n digest(): Promise {\n if (this.key) {\n return this.key.then((key) =>\n locateWindow()\n .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, this.toHash)\n .then((data) => new Uint8Array(data))\n );\n }\n\n if (isEmptyData(this.toHash)) {\n return Promise.resolve(EMPTY_DATA_SHA_256);\n }\n\n return Promise.resolve()\n .then(() =>\n locateWindow().crypto.subtle.digest(SHA_256_HASH, this.toHash)\n )\n .then((data) => Promise.resolve(new Uint8Array(data)));\n }\n}\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export * from \"./supportsWebCrypto\";\n","type SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst subtleCryptoMethods: Array = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\nexport function supportsWebCrypto(window: Window): boolean {\n if (\n supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\"\n ) {\n const { subtle } = window.crypto;\n\n return supportsSubtleCrypto(subtle);\n }\n\n return false;\n}\n\nexport function supportsSecureRandom(window: Window): boolean {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n const { getRandomValues } = window.crypto;\n\n return typeof getRandomValues === \"function\";\n }\n\n return false;\n}\n\nexport function supportsSubtleCrypto(subtle: SubtleCrypto) {\n return (\n subtle &&\n subtleCryptoMethods.every(\n methodName => typeof subtle[methodName] === \"function\"\n )\n );\n}\n\nexport async function supportsZeroByteGCM(subtle: SubtleCrypto) {\n if (!supportsSubtleCrypto(subtle)) return false;\n try {\n const key = await subtle.generateKey(\n { name: \"AES-GCM\", length: 128 },\n false,\n [\"encrypt\"]\n );\n const zeroByteAuthTag = await subtle.encrypt(\n {\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n },\n key,\n new Uint8Array(0)\n );\n return zeroByteAuthTag.byteLength === 16;\n } catch {\n return false;\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","var fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\n\ndeclare const TextDecoder: Function | undefined;\ndeclare const TextEncoder: Function | undefined;\n\nexport const fromUtf8 = (input: string): Uint8Array =>\n typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n\nexport const toUtf8 = (input: Uint8Array): string =>\n typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","/**\n * A declaration of the global TextEncoder and TextDecoder constructors.\n *\n * @see https://encoding.spec.whatwg.org/\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Encoding {\n interface TextDecoderOptions {\n fatal?: boolean;\n ignoreBOM?: boolean;\n }\n\n interface TextDecodeOptions {\n stream?: boolean;\n }\n\n interface TextDecoder {\n readonly encoding: string;\n readonly fatal: boolean;\n readonly ignoreBOM: boolean;\n decode(input?: ArrayBuffer | ArrayBufferView, options?: TextDecodeOptions): string;\n }\n\n export interface TextDecoderConstructor {\n new (label?: string, options?: TextDecoderOptions): TextDecoder;\n }\n\n interface TextEncoder {\n readonly encoding: \"utf-8\";\n encode(input?: string): Uint8Array;\n }\n\n export interface TextEncoderConstructor {\n new (): TextEncoder;\n }\n}\n\ndeclare const TextDecoder: Encoding.TextDecoderConstructor;\n\ndeclare const TextEncoder: Encoding.TextEncoderConstructor;\n\nexport function fromUtf8(input: string): Uint8Array {\n return new TextEncoder().encode(input);\n}\n\nexport function toUtf8(input: Uint8Array): string {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport const fromUtf8 = (input: string): Uint8Array => {\n const bytes: Array = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n } else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n } else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push(\n (surrogatePair >> 18) | 0b11110000,\n ((surrogatePair >> 12) & 0b111111) | 0b10000000,\n ((surrogatePair >> 6) & 0b111111) | 0b10000000,\n (surrogatePair & 0b111111) | 0b10000000\n );\n } else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n\n return Uint8Array.from(bytes);\n};\n\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport const toUtf8 = (input: Uint8Array): string => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n } else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n } else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n } else {\n decoded += String.fromCharCode(\n ((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111)\n );\n }\n }\n\n return decoded;\n};\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"aws_amplify_ui\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"aws_amplify_ui\"] = factory();\n\telse\n\t\troot[\"aws_amplify_ui\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/*\n * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport * from './Anchor.css';\nexport * from './Button.css';\nexport * from './Form.css';\nexport * from './Hint.css';\nexport * from './Input.css';\nexport * from './Nav.css';\nexport * from './PhotoPicker.css';\nexport * from './Section.css';\nexport * from './SelectInput.css';\nexport * from './Strike.css';\nexport * from './Toast.css';\nexport * from './Totp.css';\nexport * from './XR.css';\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"a\":\"Anchor__a___1_Iz8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"Button__button___vS7Mv\",\"signInButton\":\"Button__signInButton___3bUH-\",\"googleSignInButton\":\"Button__googleSignInButton___1YiCu\",\"signInButtonIcon\":\"Button__signInButtonIcon___ihN75\",\"auth0SignInButton\":\"Button__auth0SignInButton___znnCj\",\"facebookSignInButton\":\"Button__facebookSignInButton___34Txh\",\"amazonSignInButton\":\"Button__amazonSignInButton___2EMtl\",\"oAuthSignInButton\":\"Button__oAuthSignInButton___3UGOl\",\"signInButtonContent\":\"Button__signInButtonContent___xqTXJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formContainer\":\"Form__formContainer___1GA3x\",\"formSection\":\"Form__formSection___1PPvW\",\"formField\":\"Form__formField___38Ikl\",\"formRow\":\"Form__formRow___2mwRs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"hint\":\"Hint__hint___2XngB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"Input__input___3e_bf\",\"inputLabel\":\"Input__inputLabel___3VF0S\",\"label\":\"Input__label___23sO8\",\"radio\":\"Input__radio___2hllK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navBar\":\"Nav__navBar___xtCFA\",\"navRight\":\"Nav__navRight___1QG2J\",\"nav\":\"Nav__nav___2Dx2Y\",\"navItem\":\"Nav__navItem___1LtFQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"photoPickerButton\":\"PhotoPicker__photoPickerButton___2XdVn\",\"photoPlaceholder\":\"PhotoPicker__photoPlaceholder___2JXO4\",\"photoPlaceholderIcon\":\"PhotoPicker__photoPlaceholderIcon___3Et71\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Section__container___3YYTG\",\"actionRow\":\"Section__actionRow___2LWSU\",\"sectionHeader\":\"Section__sectionHeader___2djyg\",\"sectionHeaderHint\":\"Section__sectionHeaderHint___3Wxdc\",\"sectionBody\":\"Section__sectionBody___ihqqd\",\"sectionHeaderContent\":\"Section__sectionHeaderContent___1UCqa\",\"sectionFooter\":\"Section__sectionFooter___1T54C\",\"sectionFooterPrimaryContent\":\"Section__sectionFooterPrimaryContent___2r9ZX\",\"sectionFooterSecondaryContent\":\"Section__sectionFooterSecondaryContent___Nj41Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectInput\":\"SelectInput__selectInput___3efO4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"strike\":\"Strike__strike___1XV1b\",\"strikeContent\":\"Strike__strikeContent___10gLb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"toast\":\"Toast__toast___XXr3v\",\"toastClose\":\"Toast__toastClose___18lU4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"totpQrcode\":\"Totp__totpQrcode___1crLx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sumerianSceneContainer\":\"XR__sumerianSceneContainer___3nVMt\",\"sumerianScene\":\"XR__sumerianScene___2Tt7-\",\"loadingOverlay\":\"XR__loadingOverlay___IbqcI\",\"loadingContainer\":\"XR__loadingContainer___2Itxb\",\"loadingLogo\":\"XR__loadingLogo___Ub7xQ\",\"loadingSceneName\":\"XR__loadingSceneName___3__ne\",\"loadingBar\":\"XR__loadingBar___2vcke\",\"loadingBarFill\":\"XR__loadingBarFill___3M-D9\",\"sceneErrorText\":\"XR__sceneErrorText___2y0tp\",\"sceneBar\":\"XR__sceneBar___2ShrP\",\"sceneName\":\"XR__sceneName___1ApHr\",\"sceneActions\":\"XR__sceneActions___7plGs\",\"actionButton\":\"XR__actionButton___2poIM\",\"tooltip\":\"XR__tooltip___UYyhn\",\"actionIcon\":\"XR__actionIcon___2qnd2\",\"autoShowTooltip\":\"XR__autoShowTooltip___V1QH7\"};","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/**\n * Locale character mapping rules.\n */\ninterface Locale {\n regexp: RegExp;\n map: Record;\n}\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nconst SUPPORTED_LOCALE: Record = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str: string, locale: string) {\n const lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang) return lowerCase(str.replace(lang.regexp, (m) => lang.map[m]));\n return lowerCase(str);\n}\n\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str: string) {\n return str.toLowerCase();\n}\n","import { lowerCase } from \"lower-case\";\n\nexport interface Options {\n splitRegexp?: RegExp | RegExp[];\n stripRegexp?: RegExp | RegExp[];\n delimiter?: string;\n transform?: (part: string, index: number, parts: string[]) => string;\n}\n\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nconst DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n\n// Remove all non-word characters.\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input: string, options: Options = {}) {\n const {\n splitRegexp = DEFAULT_SPLIT_REGEXP,\n stripRegexp = DEFAULT_STRIP_REGEXP,\n transform = lowerCase,\n delimiter = \" \",\n } = options;\n\n let result = replace(\n replace(input, splitRegexp, \"$1\\0$2\"),\n stripRegexp,\n \"\\0\"\n );\n let start = 0;\n let end = result.length;\n\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\") start++;\n while (result.charAt(end - 1) === \"\\0\") end--;\n\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input: string, re: RegExp | RegExp[], value: string) {\n if (re instanceof RegExp) return input.replace(re, value);\n return re.reduce((input, re) => input.replace(re, value), input);\n}\n","import { noCase, Options } from \"no-case\";\n\nexport { Options };\n\nexport function pascalCaseTransform(input: string, index: number) {\n const firstChar = input.charAt(0);\n const lowerChars = input.substr(1).toLowerCase();\n if (index > 0 && firstChar >= \"0\" && firstChar <= \"9\") {\n return `_${firstChar}${lowerChars}`;\n }\n return `${firstChar.toUpperCase()}${lowerChars}`;\n}\n\nexport function pascalCaseTransformMerge(input: string) {\n return input.charAt(0).toUpperCase() + input.slice(1).toLowerCase();\n}\n\nexport function pascalCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \"\",\n transform: pascalCaseTransform,\n ...options,\n });\n}\n","import {\n pascalCase,\n pascalCaseTransform,\n pascalCaseTransformMerge,\n Options,\n} from \"pascal-case\";\n\nexport { Options };\n\nexport function camelCaseTransform(input: string, index: number) {\n if (index === 0) return input.toLowerCase();\n return pascalCaseTransform(input, index);\n}\n\nexport function camelCaseTransformMerge(input: string, index: number) {\n if (index === 0) return input.toLowerCase();\n return pascalCaseTransformMerge(input);\n}\n\nexport function camelCase(input: string, options: Options = {}) {\n return pascalCase(input, {\n transform: camelCaseTransform,\n ...options,\n });\n}\n","/**\n * Upper case the first character of an input string.\n */\nexport function upperCaseFirst(input: string) {\n return input.charAt(0).toUpperCase() + input.substr(1);\n}\n","import { noCase, Options } from \"no-case\";\nimport { upperCaseFirst } from \"upper-case-first\";\n\nexport { Options };\n\nexport function capitalCaseTransform(input: string) {\n return upperCaseFirst(input.toLowerCase());\n}\n\nexport function capitalCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \" \",\n transform: capitalCaseTransform,\n ...options,\n });\n}\n","/**\n * Locale character mapping rules.\n */\ninterface Locale {\n regexp: RegExp;\n map: Record;\n}\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nconst SUPPORTED_LOCALE: Record = {\n tr: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n az: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n lt: {\n regexp: /[\\u0069\\u006A\\u012F]\\u0307|\\u0069\\u0307[\\u0300\\u0301\\u0303]/g,\n map: {\n i̇: \"\\u0049\",\n j̇: \"\\u004A\",\n į̇: \"\\u012E\",\n i̇̀: \"\\u00CC\",\n i̇́: \"\\u00CD\",\n i̇̃: \"\\u0128\",\n },\n },\n};\n\n/**\n * Localized upper case.\n */\nexport function localeUpperCase(str: string, locale: string) {\n const lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang) return upperCase(str.replace(lang.regexp, (m) => lang.map[m]));\n return upperCase(str);\n}\n\n/**\n * Upper case as a function.\n */\nexport function upperCase(str: string) {\n return str.toUpperCase();\n}\n","import { noCase, Options } from \"no-case\";\nimport { upperCase } from \"upper-case\";\n\nexport { Options };\n\nexport function constantCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \"_\",\n transform: upperCase,\n ...options,\n });\n}\n","import { noCase, Options } from \"no-case\";\n\nexport { Options };\n\nexport function dotCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \".\",\n ...options,\n });\n}\n","import { capitalCase, Options } from \"capital-case\";\n\nexport { Options };\n\nexport function headerCase(input: string, options: Options = {}) {\n return capitalCase(input, {\n delimiter: \"-\",\n ...options,\n });\n}\n","import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function paramCase(input: string, options: Options = {}) {\n return dotCase(input, {\n delimiter: \"-\",\n ...options,\n });\n}\n","import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function pathCase(input: string, options: Options = {}) {\n return dotCase(input, {\n delimiter: \"/\",\n ...options,\n });\n}\n","import { noCase, Options } from \"no-case\";\nimport { upperCaseFirst } from \"upper-case-first\";\n\nexport { Options };\n\nexport function sentenceCaseTransform(input: string, index: number) {\n const result = input.toLowerCase();\n if (index === 0) return upperCaseFirst(result);\n return result;\n}\n\nexport function sentenceCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \" \",\n transform: sentenceCaseTransform,\n ...options,\n });\n}\n","import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function snakeCase(input: string, options: Options = {}) {\n return dotCase(input, {\n delimiter: \"_\",\n ...options,\n });\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.HmacSHA256;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nexport default function addQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var months = amount * 3;\n return addMonths(dirtyDate, months);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n return time >= startTime && time <= endTime;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n if (_typeof(values) !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n var date = toDate(dirtyDate);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n date.setFullYear(year);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addQuarters from \"../addQuarters/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subQuarters\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * const result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nexport default function subQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addQuarters(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n//parse Empty Node as self closing node\nconst buildOptions = require('./util').buildOptions;\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n format: false,\n indentBy: ' ',\n supressEmptyNode: false,\n tagValueProcessor: function(a) {\n return a;\n },\n attrValueProcessor: function(a) {\n return a;\n },\n};\n\nconst props = [\n 'attributeNamePrefix',\n 'attrNodeName',\n 'textNodeName',\n 'ignoreAttributes',\n 'cdataTagName',\n 'cdataPositionChar',\n 'format',\n 'indentBy',\n 'supressEmptyNode',\n 'tagValueProcessor',\n 'attrValueProcessor',\n];\n\nfunction Parser(options) {\n this.options = buildOptions(options, defaultOptions, props);\n if (this.options.ignoreAttributes || this.options.attrNodeName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n if (this.options.cdataTagName) {\n this.isCDATA = isCDATA;\n } else {\n this.isCDATA = function(/*a*/) {\n return false;\n };\n }\n this.replaceCDATAstr = replaceCDATAstr;\n this.replaceCDATAarr = replaceCDATAarr;\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n\n if (this.options.supressEmptyNode) {\n this.buildTextNode = buildEmptyTextNode;\n this.buildObjNode = buildEmptyObjNode;\n } else {\n this.buildTextNode = buildTextValNode;\n this.buildObjNode = buildObjectNode;\n }\n\n this.buildTextValNode = buildTextValNode;\n this.buildObjectNode = buildObjectNode;\n}\n\nParser.prototype.parse = function(jObj) {\n return this.j2x(jObj, 0).val;\n};\n\nParser.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n const keys = Object.keys(jObj);\n const len = keys.length;\n for (let i = 0; i < len; i++) {\n const key = keys[i];\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += ' ' + attr + '=\"' + this.options.attrValueProcessor('' + jObj[key]) + '\"';\n } else if (this.isCDATA(key)) {\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAstr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAstr('', jObj[key]);\n }\n } else {\n //tag value\n if (key === this.options.textNodeName) {\n if (jObj[this.options.cdataTagName]) {\n //value will added while processing cdata\n } else {\n val += this.options.tagValueProcessor('' + jObj[key]);\n }\n } else {\n val += this.buildTextNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n if (this.isCDATA(key)) {\n val += this.indentate(level);\n if (jObj[this.options.textNodeName]) {\n val += this.replaceCDATAarr(jObj[this.options.textNodeName], jObj[key]);\n } else {\n val += this.replaceCDATAarr('', jObj[key]);\n }\n } else {\n //nested nodes\n const arrLen = jObj[key].length;\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n const result = this.j2x(item, level + 1);\n val += this.buildObjNode(result.val, key, result.attrStr, level);\n } else {\n val += this.buildTextNode(item, key, '', level);\n }\n }\n }\n } else {\n //nested node\n if (this.options.attrNodeName && key === this.options.attrNodeName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += ' ' + Ks[j] + '=\"' + this.options.attrValueProcessor('' + jObj[key][Ks[j]]) + '\"';\n }\n } else {\n const result = this.j2x(jObj[key], level + 1);\n val += this.buildObjNode(result.val, key, result.attrStr, level);\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nfunction replaceCDATAstr(str, cdata) {\n str = this.options.tagValueProcessor('' + str);\n if (this.options.cdataPositionChar === '' || str === '') {\n return str + '');\n }\n return str + this.newLine;\n }\n}\n\nfunction buildObjectNode(val, key, attrStr, level) {\n if (attrStr && !val.includes('<')) {\n return (\n this.indentate(level) +\n '<' +\n key +\n attrStr +\n '>' +\n val +\n //+ this.newLine\n // + this.indentate(level)\n '' +\n this.options.tagValueProcessor(val) +\n ' 1) {\n jObj[tagName] = [];\n for (let tag in node.child[tagName]) {\n if (node.child[tagName].hasOwnProperty(tag)) {\n jObj[tagName].push(convertToJson(node.child[tagName][tag], options, tagName));\n }\n }\n } else {\n const result = convertToJson(node.child[tagName][0], options, tagName);\n const asArray = (options.arrayMode === true && typeof result === 'object') || util.isTagNameInArrayMode(tagName, options.arrayMode, parentTagName);\n jObj[tagName] = asArray ? [result] : result;\n }\n }\n\n //add value\n return jObj;\n};\n\nexports.convertToJson = convertToJson;\n","'use strict';\n\nconst util = require('./util');\nconst buildOptions = require('./util').buildOptions;\nconst x2j = require('./xmlstr2xmlnode');\n\n//TODO: do it later\nconst convertToJsonString = function(node, options) {\n options = buildOptions(options, x2j.defaultOptions, x2j.props);\n\n options.indentBy = options.indentBy || '';\n return _cToJsonStr(node, options, 0);\n};\n\nconst _cToJsonStr = function(node, options, level) {\n let jObj = '{';\n\n //traver through all the children\n const keys = Object.keys(node.child);\n\n for (let index = 0; index < keys.length; index++) {\n var tagname = keys[index];\n if (node.child[tagname] && node.child[tagname].length > 1) {\n jObj += '\"' + tagname + '\" : [ ';\n for (var tag in node.child[tagname]) {\n jObj += _cToJsonStr(node.child[tagname][tag], options) + ' , ';\n }\n jObj = jObj.substr(0, jObj.length - 1) + ' ] '; //remove extra comma in last\n } else {\n jObj += '\"' + tagname + '\" : ' + _cToJsonStr(node.child[tagname][0], options) + ' ,';\n }\n }\n util.merge(jObj, node.attrsMap);\n //add attrsMap as new children\n if (util.isEmptyObject(jObj)) {\n return util.isExist(node.val) ? node.val : '';\n } else {\n if (util.isExist(node.val)) {\n if (!(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {\n jObj += '\"' + options.textNodeName + '\" : ' + stringval(node.val);\n }\n }\n }\n //add value\n if (jObj[jObj.length - 1] === ',') {\n jObj = jObj.substr(0, jObj.length - 2);\n }\n return jObj + '}';\n};\n\nfunction stringval(v) {\n if (v === true || v === false || !isNaN(v)) {\n return v;\n } else {\n return '\"' + v + '\"';\n }\n}\n\nfunction indentate(options, level) {\n return options.indentBy.repeat(level);\n}\n\nexports.convertToJsonString = convertToJsonString;\n","'use strict';\n\nconst nodeToJson = require('./node2json');\nconst xmlToNodeobj = require('./xmlstr2xmlnode');\nconst x2xmlnode = require('./xmlstr2xmlnode');\nconst buildOptions = require('./util').buildOptions;\nconst validator = require('./validator');\n\nexports.parse = function(xmlData, options, validationOption) {\n if( validationOption){\n if(validationOption === true) validationOption = {}\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( result.err.msg)\n }\n }\n options = buildOptions(options, x2xmlnode.defaultOptions, x2xmlnode.props);\n const traversableObj = xmlToNodeobj.getTraversalObj(xmlData, options)\n //print(traversableObj, \" \");\n return nodeToJson.convertToJson(traversableObj, options);\n};\nexports.convertTonimn = require('./nimndata').convert2nimn;\nexports.getTraversalObj = xmlToNodeobj.getTraversalObj;\nexports.convertToJson = nodeToJson.convertToJson;\nexports.convertToJsonString = require('./node2json_str').convertToJsonString;\nexports.validate = validator.validate;\nexports.j2xParser = require('./json2xml');\nexports.parseToNimn = function(xmlData, schema, options) {\n return exports.convertTonimn(exports.getTraversalObj(xmlData, options), schema, options);\n};\n\n\nfunction print(xmlNode, indentation){\n if(xmlNode){\n console.log(indentation + \"{\")\n console.log(indentation + \" \\\"tagName\\\": \\\"\" + xmlNode.tagname + \"\\\", \");\n if(xmlNode.parent){\n console.log(indentation + \" \\\"parent\\\": \\\"\" + xmlNode.parent.tagname + \"\\\", \");\n }\n console.log(indentation + \" \\\"val\\\": \\\"\" + xmlNode.val + \"\\\", \");\n console.log(indentation + \" \\\"attrs\\\": \" + JSON.stringify(xmlNode.attrsMap,null,4) + \", \");\n\n if(xmlNode.child){\n console.log(indentation + \"\\\"child\\\": {\")\n const indentation2 = indentation + indentation;\n Object.keys(xmlNode.child).forEach( function(key) {\n const node = xmlNode.child[key];\n\n if(Array.isArray(node)){\n console.log(indentation + \"\\\"\"+key+\"\\\" :[\")\n node.forEach( function(item,index) {\n //console.log(indentation + \" \\\"\"+index+\"\\\" : [\")\n print(item, indentation2);\n })\n console.log(indentation + \"],\") \n }else{\n console.log(indentation + \" \\\"\"+key+\"\\\" : {\")\n print(node, indentation2);\n console.log(indentation + \"},\") \n }\n });\n console.log(indentation + \"},\")\n }\n console.log(indentation + \"},\")\n }\n}\n","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.buildOptions = function(options, defaultOptions, props) {\n var newOptions = {};\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (let i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n return newOptions;\n};\n\n/**\n * Check if a tag name should be treated as array\n *\n * @param tagName the node tagname\n * @param arrayMode the array mode option\n * @param parentTagName the parent tag name\n * @returns {boolean} true if node should be parsed as array\n */\nexports.isTagNameInArrayMode = function (tagName, arrayMode, parentTagName) {\n if (arrayMode === false) {\n return false;\n } else if (arrayMode instanceof RegExp) {\n return arrayMode.test(tagName);\n } else if (typeof arrayMode === 'function') {\n return !!arrayMode(tagName, parentTagName);\n }\n\n return arrayMode === \"strict\";\n}\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n};\n\nconst props = ['allowBooleanAttributes'];\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = util.buildOptions(options, defaultOptions, props);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n\n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"There is an unnecessary space between tag name and backward slash ' 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, i));\n } else {\n const otg = tags.pop();\n if (tagName !== otg) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+otg+\"' is expected inplace of '\"+tagName+\"'.\", getLineNumberForPosition(xmlData, i));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else {\n tags.push(tagName);\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if (xmlData[i] === ' ' || xmlData[i] === '\\t' || xmlData[i] === '\\n' || xmlData[i] === '\\r') {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n } else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+JSON.stringify(tags, null, 4).replace(/\\r?\\n/g, '')+\"' found.\", 1);\n }\n\n return true;\n};\n\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n var start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n var tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nvar doubleQuote = '\"';\nvar singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n continue;\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(attrStr, matches[i][0]))\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(attrStr, matches[i][0]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(attrStr, matches[i][0]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(attrStr, matches[i][0]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n var lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return lines.length;\n}\n\n//this function returns the position of the last character of match within attrStr\nfunction getPositionFromMatch(attrStr, match) {\n return attrStr.indexOf(match) + match.length;\n}\n","'use strict';\n\nmodule.exports = function(tagname, parent, val) {\n this.tagname = tagname;\n this.parent = parent;\n this.child = {}; //child tags\n this.attrsMap = {}; //attributes map\n this.val = val; //text only\n this.addChild = function(child) {\n if (Array.isArray(this.child[child.tagname])) {\n //already presents\n this.child[child.tagname].push(child);\n } else {\n this.child[child.tagname] = [child];\n }\n };\n};\n","'use strict';\n\nconst util = require('./util');\nconst buildOptions = require('./util').buildOptions;\nconst xmlNode = require('./xmlNode');\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n ignoreNameSpace: false,\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseNodeValue: true,\n parseAttributeValue: false,\n arrayMode: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n tagValueProcessor: function(a, tagName) {\n return a;\n },\n attrValueProcessor: function(a, attrName) {\n return a;\n },\n stopNodes: []\n //decodeStrict: false,\n};\n\nexports.defaultOptions = defaultOptions;\n\nconst props = [\n 'attributeNamePrefix',\n 'attrNodeName',\n 'textNodeName',\n 'ignoreAttributes',\n 'ignoreNameSpace',\n 'allowBooleanAttributes',\n 'parseNodeValue',\n 'parseAttributeValue',\n 'arrayMode',\n 'trimValues',\n 'cdataTagName',\n 'cdataPositionChar',\n 'tagValueProcessor',\n 'attrValueProcessor',\n 'parseTrueNumberOnly',\n 'stopNodes'\n];\nexports.props = props;\n\n/**\n * Trim -> valueProcessor -> parse value\n * @param {string} tagName\n * @param {string} val\n * @param {object} options\n */\nfunction processTagValue(tagName, val, options) {\n if (val) {\n if (options.trimValues) {\n val = val.trim();\n }\n val = options.tagValueProcessor(val, tagName);\n val = parseValue(val, options.parseNodeValue, options.parseTrueNumberOnly);\n }\n\n return val;\n}\n\nfunction resolveNameSpace(tagname, options) {\n if (options.ignoreNameSpace) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\nfunction parseValue(val, shouldParse, parseTrueNumberOnly) {\n if (shouldParse && typeof val === 'string') {\n let parsed;\n if (val.trim() === '' || isNaN(val)) {\n parsed = val === 'true' ? true : val === 'false' ? false : val;\n } else {\n if (val.indexOf('0x') !== -1) {\n //support hexa decimal\n parsed = Number.parseInt(val, 16);\n } else if (val.indexOf('.') !== -1) {\n parsed = Number.parseFloat(val);\n val = val.replace(/\\.?0+$/, \"\");\n } else {\n parsed = Number.parseInt(val, 10);\n }\n if (parseTrueNumberOnly) {\n parsed = String(parsed) === val ? parsed : val;\n }\n }\n return parsed;\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])(.*?)\\\\3)?', 'g');\n\nfunction buildAttributesMap(attrStr, options) {\n if (!options.ignoreAttributes && typeof attrStr === 'string') {\n attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = resolveNameSpace(matches[i][1], options);\n if (attrName.length) {\n if (matches[i][4] !== undefined) {\n if (options.trimValues) {\n matches[i][4] = matches[i][4].trim();\n }\n matches[i][4] = options.attrValueProcessor(matches[i][4], attrName);\n attrs[options.attributeNamePrefix + attrName] = parseValue(\n matches[i][4],\n options.parseAttributeValue,\n options.parseTrueNumberOnly\n );\n } else if (options.allowBooleanAttributes) {\n attrs[options.attributeNamePrefix + attrName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (options.attrNodeName) {\n const attrCollection = {};\n attrCollection[options.attrNodeName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n}\n\nconst getTraversalObj = function(xmlData, options) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n options = buildOptions(options, defaultOptions, props);\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n\n//function match(xmlData){\n for(let i=0; i< xmlData.length; i++){\n const ch = xmlData[i];\n if(ch === '<'){\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(options.ignoreNameSpace){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n /* if (currentNode.parent) {\n currentNode.parent.val = util.getValue(currentNode.parent.val) + '' + processTagValue2(tagName, textData , options);\n } */\n if(currentNode){\n if(currentNode.val){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(tagName, textData , options);\n }else{\n currentNode.val = processTagValue(tagName, textData , options);\n }\n }\n\n if (options.stopNodes.length && options.stopNodes.includes(currentNode.tagname)) {\n currentNode.child = []\n if (currentNode.attrsMap == undefined) { currentNode.attrsMap = {}}\n currentNode.val = xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1)\n }\n currentNode = currentNode.parent;\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n i = findClosingIndex(xmlData, \"?>\", i, \"Pi Tag is not closed.\")\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n i = findClosingIndex(xmlData, \"-->\", i, \"Comment is not closed.\")\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"DOCTYPE is not closed.\")\n const tagExp = xmlData.substring(i, closeIndex);\n if(tagExp.indexOf(\"[\") >= 0){\n i = xmlData.indexOf(\"]>\", i) + 1;\n }else{\n i = closeIndex;\n }\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n //considerations\n //1. CDATA will always have parent node\n //2. A tag with CDATA is not a leaf node so it's value would be string type.\n if(textData){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData , options);\n textData = \"\";\n }\n\n if (options.cdataTagName) {\n //add cdata node\n const childNode = new xmlNode(options.cdataTagName, currentNode, tagExp);\n currentNode.addChild(childNode);\n //for backtracking\n currentNode.val = util.getValue(currentNode.val) + options.cdataPositionChar;\n //add rest value to parent node\n if (tagExp) {\n childNode.val = tagExp;\n }\n } else {\n currentNode.val = (currentNode.val || '') + (tagExp || '');\n }\n\n i = closeIndex + 2;\n }else {//Opening tag\n const result = closingIndexForOpeningTag(xmlData, i+1)\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.indexOf(\" \");\n let tagName = tagExp;\n let shouldBuildAttributesMap = true;\n if(separatorIndex !== -1){\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(options.ignoreNameSpace){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n shouldBuildAttributesMap = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n //save text to parent node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue( currentNode.tagname, textData, options);\n }\n }\n\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){//selfClosing tag\n\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n\n const childNode = new xmlNode(tagName, currentNode, '');\n if(tagName !== tagExp){\n childNode.attrsMap = buildAttributesMap(tagExp, options);\n }\n currentNode.addChild(childNode);\n }else{//opening tag\n\n const childNode = new xmlNode( tagName, currentNode );\n if (options.stopNodes.length && options.stopNodes.includes(childNode.tagname)) {\n childNode.startIndex=closeIndex;\n }\n if(tagName !== tagExp && shouldBuildAttributesMap){\n childNode.attrsMap = buildAttributesMap(tagExp, options);\n }\n currentNode.addChild(childNode);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj;\n}\n\nfunction closingIndexForOpeningTag(data, i){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < data.length; index++) {\n let ch = data[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === '>') {\n return {\n data: tagExp,\n index: index\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nexports.getTraversalObj = getTraversalObj;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nmodule.exports = kebabCase;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = new Uint8Array(encodeUtf8(data))\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","import { Alignment, Direction, Media } from './constants';\nimport { CSSObject } from 'styled-components';\n\nexport enum SortOrder {\n\tASC = 'asc',\n\tDESC = 'desc',\n}\n\nexport type Primitive = string | number | boolean | bigint;\nexport type ColumnSortFunction = (a: T, b: T) => number;\nexport type ExpandRowToggled = (expanded: boolean, row: T) => void;\nexport type Format = (row: T, rowIndex: number) => React.ReactNode;\nexport type RowState = ((row: T) => boolean) | null;\nexport type Selector = (row: T, rowIndex?: number) => Primitive;\nexport type SortFunction = (rows: T[], field: Selector, sortDirection: SortOrder) => T[];\nexport type TableRow = Record;\nexport type ComponentProps = Record;\nexport type ExpanderComponentProps = { data: T };\nexport type ExpandableRowsComponent = React.ComponentType>;\nexport type PaginationChangePage = (page: number, totalRows: number) => void;\nexport type PaginationChangeRowsPerPage = (currentRowsPerPage: number, currentPage: number) => void;\nexport type PaginationComponentProps = {\n\trowsPerPage: number;\n\trowCount: number;\n\tcurrentPage: number;\n\tonChangePage: PaginationChangePage;\n\tonChangeRowsPerPage: PaginationChangeRowsPerPage;\n};\nexport type PaginationComponent = React.ComponentType;\n\nexport type TableProps = {\n\tactions?: React.ReactNode | React.ReactNode[];\n\tclassName?: string;\n\tclearSelectedRows?: boolean;\n\tcolumns: TableColumn[];\n\tconditionalRowStyles?: ConditionalStyles[];\n\tcontextActions?: React.ReactNode | React.ReactNode[];\n\tcontextComponent?: React.ReactNode;\n\tcontextMessage?: ContextMessage;\n\tcustomStyles?: TableStyles;\n\tdata: T[];\n\tdefaultSortAsc?: boolean;\n\tdefaultSortFieldId?: string | number | null | undefined;\n\tdense?: boolean;\n\tdirection?: Direction;\n\tdisabled?: boolean;\n\texpandableIcon?: ExpandableIcon;\n\texpandableInheritConditionalStyles?: boolean;\n\texpandableRowDisabled?: RowState;\n\texpandableRowExpanded?: RowState;\n\texpandableRows?: boolean;\n\texpandableRowsComponent?: ExpandableRowsComponent;\n\texpandableRowsComponentProps?: ComponentProps;\n\texpandableRowsHideExpander?: boolean;\n\texpandOnRowClicked?: boolean;\n\texpandOnRowDoubleClicked?: boolean;\n\tfixedHeader?: boolean;\n\tfixedHeaderScrollHeight?: string;\n\thighlightOnHover?: boolean;\n\tkeyField?: string;\n\tnoContextMenu?: boolean;\n\tnoDataComponent?: React.ReactNode;\n\tnoHeader?: boolean;\n\tnoTableHead?: boolean;\n\tonChangePage?: PaginationChangePage;\n\tonChangeRowsPerPage?: PaginationChangeRowsPerPage;\n\tonRowClicked?: (row: T, e: React.MouseEvent) => void;\n\tonRowDoubleClicked?: (row: T, e: React.MouseEvent) => void;\n\tonRowMouseEnter?: (row: T, e: React.MouseEvent) => void;\n\tonRowMouseLeave?: (row: T, e: React.MouseEvent) => void;\n\tonRowExpandToggled?: ExpandRowToggled;\n\tonSelectedRowsChange?: (selected: { allSelected: boolean; selectedCount: number; selectedRows: T[] }) => void;\n\tonSort?: (selectedColumn: TableColumn, sortDirection: SortOrder, sortedRows: T[]) => void;\n\tonColumnOrderChange?: (nextOrder: TableColumn[]) => void;\n\tpagination?: boolean;\n\tpaginationComponent?: PaginationComponent;\n\tpaginationComponentOptions?: PaginationOptions;\n\tpaginationDefaultPage?: number;\n\tpaginationIconFirstPage?: React.ReactNode;\n\tpaginationIconLastPage?: React.ReactNode;\n\tpaginationIconNext?: React.ReactNode;\n\tpaginationIconPrevious?: React.ReactNode;\n\tpaginationPerPage?: number;\n\tpaginationResetDefaultPage?: boolean;\n\tpaginationRowsPerPageOptions?: number[];\n\tpaginationServer?: boolean;\n\tpaginationServerOptions?: PaginationServerOptions;\n\tpaginationTotalRows?: number;\n\tpersistTableHead?: boolean;\n\tpointerOnHover?: boolean;\n\tprogressComponent?: React.ReactNode;\n\tprogressPending?: boolean;\n\tresponsive?: boolean;\n\tselectableRowDisabled?: RowState;\n\tselectableRows?: boolean;\n\tselectableRowsComponent?: 'input' | React.ReactNode;\n\tselectableRowsComponentProps?: ComponentProps;\n\tselectableRowSelected?: RowState;\n\tselectableRowsHighlight?: boolean;\n\tselectableRowsNoSelectAll?: boolean;\n\tselectableRowsVisibleOnly?: boolean;\n\tselectableRowsSingle?: boolean;\n\tsortFunction?: SortFunction | null;\n\tsortIcon?: React.ReactNode;\n\tsortServer?: boolean;\n\tstriped?: boolean;\n\tstyle?: CSSObject;\n\tsubHeader?: React.ReactNode | React.ReactNode[];\n\tsubHeaderAlign?: Alignment;\n\tsubHeaderComponent?: React.ReactNode | React.ReactNode[];\n\tsubHeaderWrap?: boolean;\n\ttheme?: Themes;\n\t/**\n\t * Shows and displays a header with a title\n\t * */\n\ttitle?: string | React.ReactNode;\n};\n\nexport type TableColumnBase = {\n\tallowOverflow?: boolean;\n\tbutton?: boolean;\n\tcenter?: boolean;\n\tcompact?: boolean;\n\treorder?: boolean;\n\tgrow?: number;\n\thide?: number | ((value: number) => CSSObject) | Media;\n\tid?: string | number;\n\tignoreRowClick?: boolean;\n\tmaxWidth?: string;\n\tminWidth?: string;\n\tname?: string | number | React.ReactNode;\n\tomit?: boolean;\n\tright?: boolean;\n\tsortable?: boolean;\n\tstyle?: CSSObject;\n\twidth?: string;\n\twrap?: boolean;\n};\n\nexport interface TableColumn extends TableColumnBase {\n\tname?: string | number | React.ReactNode;\n\tsortField?: string;\n\tcell?: (row: T, rowIndex: number, column: TableColumn, id: string | number) => React.ReactNode;\n\tconditionalCellStyles?: ConditionalStyles[];\n\tformat?: Format | undefined;\n\tselector?: Selector;\n\tsortFunction?: ColumnSortFunction;\n}\n\nexport interface ConditionalStyles {\n\twhen: (row: T) => boolean;\n\tstyle?: CSSObject | ((row: T) => CSSObject);\n\tclassNames?: string[];\n}\n\nexport interface TableStyles {\n\ttable?: {\n\t\tstyle: CSSObject;\n\t};\n\ttableWrapper?: {\n\t\tstyle: CSSObject;\n\t};\n\tresponsiveWrapper?: {\n\t\tstyle: CSSObject;\n\t};\n\theader?: {\n\t\tstyle: CSSObject;\n\t};\n\tsubHeader?: {\n\t\tstyle: CSSObject;\n\t};\n\thead?: {\n\t\tstyle: CSSObject;\n\t};\n\theadRow?: {\n\t\tstyle?: CSSObject;\n\t\tdenseStyle?: CSSObject;\n\t};\n\theadCells?: {\n\t\tstyle?: CSSObject;\n\t\tdraggingStyle?: CSSObject;\n\t};\n\tcontextMenu?: {\n\t\tstyle?: CSSObject;\n\t\tactiveStyle?: CSSObject;\n\t};\n\tcells?: {\n\t\tstyle: CSSObject;\n\t\tdraggingStyle?: CSSObject;\n\t};\n\trows?: {\n\t\tstyle?: CSSObject;\n\t\tselectedHighlightStyle?: CSSObject;\n\t\tdenseStyle?: CSSObject;\n\t\thighlightOnHoverStyle?: CSSObject;\n\t\tstripedStyle?: CSSObject;\n\t};\n\texpanderRow?: {\n\t\tstyle: CSSObject;\n\t};\n\texpanderCell?: {\n\t\tstyle: CSSObject;\n\t};\n\texpanderButton?: {\n\t\tstyle: CSSObject;\n\t};\n\tpagination?: {\n\t\tstyle?: CSSObject;\n\t\tpageButtonsStyle?: CSSObject;\n\t};\n\tnoData?: {\n\t\tstyle: CSSObject;\n\t};\n\tprogress?: {\n\t\tstyle: CSSObject;\n\t};\n}\n\nexport interface PaginationOptions {\n\tnoRowsPerPage?: boolean;\n\trowsPerPageText?: string;\n\trangeSeparatorText?: string;\n\tselectAllRowsItem?: boolean;\n\tselectAllRowsItemText?: string;\n}\n\nexport interface PaginationServerOptions {\n\tpersistSelectedOnSort?: boolean;\n\tpersistSelectedOnPageChange?: boolean;\n}\n\nexport interface ExpandableIcon {\n\tcollapsed: React.ReactNode;\n\texpanded: React.ReactNode;\n}\n\nexport interface ContextMessage {\n\tsingular: string;\n\tplural: string;\n\tmessage?: string;\n}\n\nexport type TableState = {\n\tallSelected: boolean;\n\tcontextMessage: ContextMessage;\n\tselectedCount: number;\n\tselectedRows: T[];\n\tselectedColumn: TableColumn;\n\tsortDirection: SortOrder;\n\tcurrentPage: number;\n\trowsPerPage: number;\n\tselectedRowsFlag: boolean;\n\t/* server-side pagination and server-side sorting will cause selectedRows to change\n\t because of this behavior onSelectedRowsChange useEffect is triggered (by design it should notify if there was a change)\n\t however, when using selectableRowsSingle\n\t*/\n\ttoggleOnSelectedRowsChange: boolean;\n};\n\n// Theming\ntype ThemeText = {\n\tprimary: string;\n\tsecondary: string;\n\tdisabled: string;\n};\n\ntype ThemeBackground = {\n\tdefault: string;\n};\n\ntype ThemeContext = {\n\tbackground: string;\n\ttext: string;\n};\n\ntype ThemeDivider = {\n\tdefault: string;\n};\n\ntype ThemeButton = {\n\tdefault: string;\n\tfocus: string;\n\thover: string;\n\tdisabled: string;\n};\n\ntype ThemeSelected = {\n\tdefault: string;\n\ttext: string;\n};\n\ntype ThemeHighlightOnHover = {\n\tdefault: string;\n\ttext: string;\n};\n\ntype ThemeStriped = {\n\tdefault: string;\n\ttext: string;\n};\n\nexport type Themes = string;\n\nexport interface Theme {\n\ttext: ThemeText;\n\tbackground: ThemeBackground;\n\tcontext: ThemeContext;\n\tdivider: ThemeDivider;\n\tbutton: ThemeButton;\n\tselected: ThemeSelected;\n\thighlightOnHover: ThemeHighlightOnHover;\n\tstriped: ThemeStriped;\n}\n\n// Reducer Actions\nexport interface AllRowsAction {\n\ttype: 'SELECT_ALL_ROWS';\n\tkeyField: string;\n\trows: T[];\n\trowCount: number;\n\tmergeSelections: boolean;\n}\n\nexport interface SingleRowAction {\n\ttype: 'SELECT_SINGLE_ROW';\n\tkeyField: string;\n\trow: T;\n\tisSelected: boolean;\n\trowCount: number;\n\tsingleSelect: boolean;\n}\n\nexport interface MultiRowAction {\n\ttype: 'SELECT_MULTIPLE_ROWS';\n\tkeyField: string;\n\tselectedRows: T[];\n\ttotalRows: number;\n\tmergeSelections: boolean;\n}\n\nexport interface SortAction {\n\ttype: 'SORT_CHANGE';\n\tsortDirection: SortOrder;\n\tselectedColumn: TableColumn;\n\tclearSelectedOnSort: boolean;\n}\n\nexport interface PaginationPageAction {\n\ttype: 'CHANGE_PAGE';\n\tpage: number;\n\tpaginationServer: boolean;\n\tvisibleOnly: boolean;\n\tpersistSelectedOnPageChange: boolean;\n}\n\nexport interface PaginationRowsPerPageAction {\n\ttype: 'CHANGE_ROWS_PER_PAGE';\n\trowsPerPage: number;\n\tpage: number;\n}\n\nexport interface ClearSelectedRowsAction {\n\ttype: 'CLEAR_SELECTED_ROWS';\n\tselectedRowsFlag: boolean;\n}\n\nexport interface ColumnsAction {\n\ttype: 'UPDATE_COLUMNS';\n\tcols: TableColumn[];\n}\n\nexport type Action =\n\t| AllRowsAction\n\t| SingleRowAction\n\t| MultiRowAction\n\t| SortAction\n\t| PaginationPageAction\n\t| PaginationRowsPerPageAction\n\t| ClearSelectedRowsAction;\n","import { CSSObject } from 'styled-components';\nimport { ConditionalStyles, TableColumn, Format, TableRow, Selector, SortOrder, SortFunction } from './types';\n\nexport function prop(obj: T, key: K): T[K] {\n\treturn obj[key];\n}\n\nexport function isEmpty(field: string | number | undefined = ''): boolean {\n\tif (typeof field === 'number') {\n\t\treturn false;\n\t}\n\n\treturn !field || field.length === 0;\n}\n\nexport function sort(\n\trows: T[],\n\t// TODO: remove string in V8\n\tselector: Selector | string | null | undefined,\n\tdirection: SortOrder,\n\tsortFn?: SortFunction | null,\n): T[] {\n\tif (!selector) {\n\t\treturn rows;\n\t}\n\n\tif (sortFn && typeof sortFn === 'function') {\n\t\t// we must create a new rows reference\n\t\treturn sortFn(rows.slice(0), selector as Selector, direction);\n\t}\n\n\treturn rows.slice(0).sort((a: T, b: T) => {\n\t\tlet aValue;\n\t\tlet bValue;\n\n\t\tif (typeof selector === 'string') {\n\t\t\taValue = parseSelector(a, selector);\n\t\t\tbValue = parseSelector(b, selector);\n\t\t} else {\n\t\t\taValue = selector(a);\n\t\t\tbValue = selector(b);\n\t\t}\n\n\t\tif (direction === 'asc') {\n\t\t\tif (aValue < bValue) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\tif (aValue > bValue) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\tif (direction === 'desc') {\n\t\t\tif (aValue > bValue) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\tif (aValue < bValue) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t});\n}\n\n// TODO: string based selectors will be removed in v8\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function parseSelector>(row: T, selector: string): T {\n\treturn selector.split('.').reduce((acc, part) => {\n\t\t// O(n2) when querying for an array (e.g. items[0].name)\n\t\t// Likely, the object depth will be reasonable enough that performance is not a concern\n\t\tconst arr = part.match(/[^\\]\\\\[.]+/g);\n\t\tif (arr && arr.length > 1) {\n\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\treturn acc[arr[i]][arr[i + 1]];\n\t\t\t}\n\t\t}\n\n\t\treturn acc[part];\n\t}, row);\n}\n\nexport function getProperty(\n\trow: T,\n\t// TODO: remove string type in V8\n\tselector: Selector | string | undefined | null | unknown, // unknown allows us to throw an error for JS code\n\tformat: Format | undefined | null,\n\trowIndex: number,\n): React.ReactNode {\n\tif (!selector) {\n\t\treturn null;\n\t}\n\n\t// TODO: remove string check in V8\n\tif (typeof selector !== 'string' && typeof selector !== 'function') {\n\t\tthrow new Error('selector must be a . delimited string eg (my.property) or function (e.g. row => row.field');\n\t}\n\n\t// format will override how the selector is displayed but the original dataset is used for sorting\n\tif (format && typeof format === 'function') {\n\t\treturn format(row, rowIndex);\n\t}\n\n\tif (selector && typeof selector === 'function') {\n\t\treturn selector(row, rowIndex);\n\t}\n\n\t// TODO: Remove in V8\n\treturn parseSelector(row, selector);\n}\n\nexport function insertItem(array: T[] = [], item: T, index = 0): T[] {\n\treturn [...array.slice(0, index), item, ...array.slice(index)];\n}\n\nexport function removeItem(array: T[] = [], item: T, keyField = 'id'): T[] {\n\tconst newArray = array.slice();\n\tconst outerField = prop(item as TableRow, keyField);\n\n\tif (outerField) {\n\t\tnewArray.splice(\n\t\t\tnewArray.findIndex((a: T) => {\n\t\t\t\tconst innerField = prop(a as TableRow, keyField);\n\n\t\t\t\treturn innerField === outerField;\n\t\t\t}),\n\t\t\t1,\n\t\t);\n\t} else {\n\t\tnewArray.splice(\n\t\t\tnewArray.findIndex(a => a === item),\n\t\t\t1,\n\t\t);\n\t}\n\n\treturn newArray;\n}\n\n// Make sure columns have unique id's\nexport function decorateColumns(columns: TableColumn[]): TableColumn[] {\n\treturn columns.map((column, index) => {\n\t\tconst decoratedColumn: TableColumn = {\n\t\t\t...column,\n\t\t\tsortable: column.sortable || !!column.sortFunction || undefined,\n\t\t};\n\n\t\tif (!column.id) {\n\t\t\tdecoratedColumn.id = index + 1;\n\n\t\t\treturn decoratedColumn;\n\t\t}\n\n\t\treturn decoratedColumn;\n\t});\n}\n\nexport function getSortDirection(ascDirection: boolean | undefined = false): SortOrder {\n\treturn ascDirection ? SortOrder.ASC : SortOrder.DESC;\n}\n\nexport function handleFunctionProps(\n\tobject: { [key: string]: unknown },\n\t...args: unknown[]\n): { [key: string]: unknown } {\n\tlet newObject;\n\n\tObject.keys(object)\n\t\t.map(o => object[o])\n\t\t.forEach((value, index) => {\n\t\t\tconst oldObject = object;\n\n\t\t\tif (typeof value === 'function') {\n\t\t\t\tnewObject = { ...oldObject, [Object.keys(object)[index]]: value(...args) };\n\t\t\t\t// delete oldObject[value];\n\t\t\t}\n\t\t});\n\n\treturn newObject || object;\n}\n\nexport function getNumberOfPages(rowCount: number, rowsPerPage: number): number {\n\treturn Math.ceil(rowCount / rowsPerPage);\n}\n\nexport function recalculatePage(prevPage: number, nextPage: number): number {\n\treturn Math.min(prevPage, nextPage);\n}\n\nexport const noop = (): null => null;\n\nexport function getConditionalStyle(\n\trow: T,\n\tconditionalRowStyles: ConditionalStyles[] = [],\n\tbaseClassNames: string[] = [],\n): { style: CSSObject; classNames: string } {\n\tlet rowStyle = {};\n\tlet classNames: string[] = [...baseClassNames];\n\n\tif (conditionalRowStyles.length) {\n\t\tconditionalRowStyles.forEach(crs => {\n\t\t\tif (!crs.when || typeof crs.when !== 'function') {\n\t\t\t\tthrow new Error('\"when\" must be defined in the conditional style object and must be function');\n\t\t\t}\n\n\t\t\t// evaluate the field and if true return a the style to be applied\n\t\t\tif (crs.when(row)) {\n\t\t\t\trowStyle = crs.style || {};\n\n\t\t\t\tif (crs.classNames) {\n\t\t\t\t\tclassNames = [...classNames, ...crs.classNames];\n\t\t\t\t}\n\n\t\t\t\tif (typeof crs.style === 'function') {\n\t\t\t\t\trowStyle = crs.style(row) || {};\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\treturn { style: rowStyle, classNames: classNames.join(' ') };\n}\n\nexport function isRowSelected(row: T, selectedRows: T[] = [], keyField = 'id'): boolean {\n\t// cast row as TableRow because the property is unknown in advance therefore, typescript will throw an error\n\tconst outerField = prop(row as TableRow, keyField);\n\n\tif (outerField) {\n\t\treturn selectedRows.some(r => {\n\t\t\tconst innerField = prop(r as TableRow, keyField);\n\n\t\t\treturn innerField === outerField;\n\t\t});\n\t}\n\n\treturn selectedRows.some(r => r === row);\n}\n\nexport function isOdd(num: number): boolean {\n\treturn num % 2 === 0;\n}\n\nexport function findColumnIndexById(columns: TableColumn[], id: string | undefined): number {\n\tif (!id) {\n\t\treturn -1;\n\t}\n\n\treturn columns.findIndex(c => {\n\t\treturn equalizeId(c.id, id);\n\t});\n}\n\nexport function equalizeId(a: string | number | undefined, b: string | number | undefined): boolean {\n\treturn a == b;\n}\n","import { insertItem, isRowSelected, removeItem } from './util';\nimport { Action, TableState } from './types';\n\nexport function tableReducer(state: TableState, action: Action): TableState {\n\tconst toggleOnSelectedRowsChange = !state.toggleOnSelectedRowsChange;\n\n\tswitch (action.type) {\n\t\tcase 'SELECT_ALL_ROWS': {\n\t\t\tconst { keyField, rows, rowCount, mergeSelections } = action;\n\t\t\tconst allChecked = !state.allSelected;\n\t\t\tconst toggleOnSelectedRowsChange = !state.toggleOnSelectedRowsChange;\n\n\t\t\tif (mergeSelections) {\n\t\t\t\tconst selections = allChecked\n\t\t\t\t\t? [...state.selectedRows, ...rows.filter(row => !isRowSelected(row, state.selectedRows, keyField))]\n\t\t\t\t\t: state.selectedRows.filter(row => !isRowSelected(row, rows, keyField));\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tallSelected: allChecked,\n\t\t\t\t\tselectedCount: selections.length,\n\t\t\t\t\tselectedRows: selections,\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tallSelected: allChecked,\n\t\t\t\tselectedCount: allChecked ? rowCount : 0,\n\t\t\t\tselectedRows: allChecked ? rows : [],\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SELECT_SINGLE_ROW': {\n\t\t\tconst { keyField, row, isSelected, rowCount, singleSelect } = action;\n\n\t\t\t// handle single select mode\n\t\t\tif (singleSelect) {\n\t\t\t\tif (isSelected) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\t\tallSelected: false,\n\t\t\t\t\t\tselectedRows: [],\n\t\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: 1,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: [row],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// handle multi select mode\n\t\t\tif (isSelected) {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: state.selectedRows.length > 0 ? state.selectedRows.length - 1 : 0,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: removeItem(state.selectedRows, row, keyField),\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedCount: state.selectedRows.length + 1,\n\t\t\t\tallSelected: state.selectedRows.length + 1 === rowCount,\n\t\t\t\tselectedRows: insertItem(state.selectedRows, row),\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SELECT_MULTIPLE_ROWS': {\n\t\t\tconst { keyField, selectedRows, totalRows, mergeSelections } = action;\n\n\t\t\tif (mergeSelections) {\n\t\t\t\tconst selections = [\n\t\t\t\t\t...state.selectedRows,\n\t\t\t\t\t...selectedRows.filter(row => !isRowSelected(row, state.selectedRows, keyField)),\n\t\t\t\t];\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: selections.length,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: selections,\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedCount: selectedRows.length,\n\t\t\t\tallSelected: selectedRows.length === totalRows,\n\t\t\t\tselectedRows,\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'CLEAR_SELECTED_ROWS': {\n\t\t\tconst { selectedRowsFlag } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tallSelected: false,\n\t\t\t\tselectedCount: 0,\n\t\t\t\tselectedRows: [],\n\t\t\t\tselectedRowsFlag,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SORT_CHANGE': {\n\t\t\tconst { sortDirection, selectedColumn, clearSelectedOnSort } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedColumn,\n\t\t\t\tsortDirection,\n\t\t\t\tcurrentPage: 1,\n\t\t\t\t// when using server-side paging reset selected row counts when sorting\n\t\t\t\t...(clearSelectedOnSort && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\tselectedRows: [],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t}),\n\t\t\t};\n\t\t}\n\n\t\tcase 'CHANGE_PAGE': {\n\t\t\tconst { page, paginationServer, visibleOnly, persistSelectedOnPageChange } = action;\n\t\t\tconst mergeSelections = paginationServer && persistSelectedOnPageChange;\n\t\t\tconst clearSelectedOnPage = (paginationServer && !persistSelectedOnPageChange) || visibleOnly;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcurrentPage: page,\n\t\t\t\t...(mergeSelections && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t}),\n\t\t\t\t// when using server-side paging reset selected row counts\n\t\t\t\t...(clearSelectedOnPage && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\tselectedRows: [],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t}),\n\t\t\t};\n\t\t}\n\n\t\tcase 'CHANGE_ROWS_PER_PAGE': {\n\t\t\tconst { rowsPerPage, page } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcurrentPage: page,\n\t\t\t\trowsPerPage,\n\t\t\t};\n\t\t}\n\t}\n}\n","import styled, { css } from 'styled-components';\n\nconst disabledCSS = css`\n\tpointer-events: none;\n\topacity: 0.4;\n`;\n\nconst TableStyle = styled.div<{\n\tdisabled?: boolean;\n}>`\n\tposition: relative;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\theight: 100%;\n\tmax-width: 100%;\n\t${({ disabled }) => disabled && disabledCSS};\n\t${({ theme }) => theme.table.style};\n`;\n\nexport default TableStyle;\n","import styled, { css } from 'styled-components';\n\nconst fixedCSS = css`\n\tposition: sticky;\n\tposition: -webkit-sticky; /* Safari */\n\ttop: 0;\n\tz-index: 1;\n`;\n\nconst Head = styled.div<{\n\tfixedHeader?: boolean;\n}>`\n\tdisplay: flex;\n\twidth: 100%;\n\t${({ fixedHeader }) => fixedHeader && fixedCSS};\n\t${({ theme }) => theme.head.style};\n`;\n\nexport default Head;\n","import styled from 'styled-components';\n\nconst HeadRow = styled.div<{\n\tdense?: boolean;\n\tdisabled?: boolean;\n}>`\n\tdisplay: flex;\n\talign-items: stretch;\n\twidth: 100%;\n\t${({ theme }) => theme.headRow.style};\n\t${({ dense, theme }) => dense && theme.headRow.denseStyle};\n`;\n\nexport default HeadRow;\n","import { css, CSSObject, FlattenSimpleInterpolation } from 'styled-components';\n\nexport const SMALL = 599;\nexport const MEDIUM = 959;\nexport const LARGE = 1280;\n\nexport const media = {\n\tsm: (literals: TemplateStringsArray, ...args: CSSObject[]): FlattenSimpleInterpolation => css`\n\t\t@media screen and (max-width: ${SMALL}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tmd: (literals: TemplateStringsArray, ...args: CSSObject[]): FlattenSimpleInterpolation => css`\n\t\t@media screen and (max-width: ${MEDIUM}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tlg: (literals: TemplateStringsArray, ...args: CSSObject[]): FlattenSimpleInterpolation => css`\n\t\t@media screen and (max-width: ${LARGE}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tcustom:\n\t\t(value: number) =>\n\t\t(literals: TemplateStringsArray, ...args: CSSObject[]): FlattenSimpleInterpolation =>\n\t\t\tcss`\n\t\t\t\t@media screen and (max-width: ${value}px) {\n\t\t\t\t\t${css(literals, ...args)}\n\t\t\t\t}\n\t\t\t`,\n};\n","import styled, { css } from 'styled-components';\nimport { media } from './media';\nimport { TableColumnBase } from './types';\n\nexport const CellBase = styled.div<{\n\theadCell?: boolean;\n\tnoPadding?: boolean;\n}>`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tline-height: normal;\n\t${({ theme, headCell }) => theme[headCell ? 'headCells' : 'cells'].style};\n\t${({ noPadding }) => noPadding && 'padding: 0'};\n`;\n\nexport type CellProps = Pick<\n\tTableColumnBase,\n\t'button' | 'grow' | 'maxWidth' | 'minWidth' | 'width' | 'right' | 'center' | 'compact' | 'hide' | 'allowOverflow'\n>;\n\n// Flex calculations\nexport const CellExtended = styled(CellBase)`\n\tflex-grow: ${({ button, grow }) => (grow === 0 || button ? 0 : grow || 1)};\n\tflex-shrink: 0;\n\tflex-basis: 0;\n\tmax-width: ${({ maxWidth }) => maxWidth || '100%'};\n\tmin-width: ${({ minWidth }) => minWidth || '100px'};\n\t${({ width }) =>\n\t\twidth &&\n\t\tcss`\n\t\t\tmin-width: ${width};\n\t\t\tmax-width: ${width};\n\t\t`};\n\t${({ right }) => right && 'justify-content: flex-end'};\n\t${({ button, center }) => (center || button) && 'justify-content: center'};\n\t${({ compact, button }) => (compact || button) && 'padding: 0'};\n\n\t/* handle hiding cells */\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'sm' &&\n\t\tmedia.sm`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'md' &&\n\t\tmedia.md`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'lg' &&\n\t\tmedia.lg`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\tNumber.isInteger(hide) &&\n\t\tmedia.custom(hide as number)`\n display: none;\n `};\n`;\n","import * as React from 'react';\nimport styled, { css, CSSObject } from 'styled-components';\nimport { CellExtended } from './Cell';\nimport { getProperty, getConditionalStyle } from './util';\nimport { TableColumn } from './types';\n\ninterface CellStyleProps {\n\trenderAsCell: boolean | undefined;\n\twrapCell: boolean | undefined;\n\tallowOverflow: boolean | undefined;\n\tcellStyle: CSSObject | undefined;\n\tisDragging: boolean;\n}\n\nconst overflowCSS = css`\n\tdiv:first-child {\n\t\twhite-space: ${({ wrapCell }) => (wrapCell ? 'normal' : 'nowrap')};\n\t\toverflow: ${({ allowOverflow }) => (allowOverflow ? 'visible' : 'hidden')};\n\t\ttext-overflow: ellipsis;\n\t}\n`;\n\nconst CellStyle = styled(CellExtended).attrs(props => ({\n\tstyle: props.style,\n}))`\n\t${({ renderAsCell }) => !renderAsCell && overflowCSS};\n\t${({ theme, isDragging }) => isDragging && theme.cells.draggingStyle};\n\t${({ cellStyle }) => cellStyle};\n`;\n\ninterface CellProps {\n\tid: string;\n\tdataTag: string | null;\n\tcolumn: TableColumn;\n\trow: T;\n\trowIndex: number;\n\tisDragging: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nfunction Cell({\n\tid,\n\tcolumn,\n\trow,\n\trowIndex,\n\tdataTag,\n\tisDragging,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: CellProps): JSX.Element {\n\tconst { style, classNames } = getConditionalStyle(row, column.conditionalCellStyles, ['rdt_TableCell']);\n\n\treturn (\n\t\t\n\t\t\t{!column.cell &&
{getProperty(row, column.selector, column.format, rowIndex)}
}\n\t\t\t{column.cell && column.cell(row, rowIndex, column, id)}\n\t\t\n\t);\n}\n\nexport default React.memo(Cell) as typeof Cell;\n","import * as React from 'react';\nimport { handleFunctionProps, noop } from './util';\n\nconst defaultComponentName = 'input';\n\nconst calculateBaseStyle = (disabled: boolean) => ({\n\tfontSize: '18px',\n\t...(!disabled && { cursor: 'pointer' }),\n\tpadding: 0,\n\tmarginTop: '1px',\n\tverticalAlign: 'middle',\n\tposition: 'relative',\n});\n\ninterface CheckboxProps {\n\tname: string;\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tcomponent?: any;\n\tcomponentOptions?: { [key: string]: unknown };\n\tindeterminate?: boolean;\n\tchecked?: boolean;\n\tdisabled?: boolean;\n\tonClick?: (e: React.MouseEvent) => void;\n}\n\nfunction Checkbox({\n\tname,\n\tcomponent = defaultComponentName,\n\tcomponentOptions = { style: {} },\n\tindeterminate = false,\n\tchecked = false,\n\tdisabled = false,\n\tonClick = noop,\n}: CheckboxProps): JSX.Element {\n\tconst setCheckboxRef = (checkbox: HTMLInputElement) => {\n\t\tif (checkbox) {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tcheckbox.indeterminate = indeterminate;\n\t\t}\n\t};\n\n\tconst TagName = component;\n\tconst baseStyle = TagName !== defaultComponentName ? componentOptions.style : calculateBaseStyle(disabled);\n\tconst resolvedComponentOptions = React.useMemo(\n\t\t() => handleFunctionProps(componentOptions, indeterminate),\n\t\t[componentOptions, indeterminate],\n\t);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default React.memo(Checkbox);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport Checkbox from './Checkbox';\nimport { RowState, SingleRowAction, ComponentProps } from './types';\n\nconst TableCellCheckboxStyle = styled(CellBase)`\n\tflex: 0 0 48px;\n\tmin-width: 48px;\n\tjustify-content: center;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n`;\n\ntype TableCellCheckboxProps = {\n\tname: string;\n\tkeyField: string;\n\trow: T;\n\trowCount: number;\n\tselected: boolean;\n\tselectableRowsComponent: 'input' | React.ReactNode;\n\tselectableRowsComponentProps: ComponentProps;\n\tselectableRowsSingle: boolean;\n\tselectableRowDisabled: RowState;\n\tonSelectedRow: (action: SingleRowAction) => void;\n};\n\nfunction TableCellCheckbox({\n\tname,\n\tkeyField,\n\trow,\n\trowCount,\n\tselected,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowsSingle,\n\tselectableRowDisabled,\n\tonSelectedRow,\n}: TableCellCheckboxProps): JSX.Element {\n\tconst disabled = !!(selectableRowDisabled && selectableRowDisabled(row));\n\n\tconst handleOnRowSelected = () => {\n\t\tonSelectedRow({\n\t\t\ttype: 'SELECT_SINGLE_ROW',\n\t\t\trow,\n\t\t\tisSelected: selected,\n\t\t\tkeyField,\n\t\t\trowCount,\n\t\t\tsingleSelect: selectableRowsSingle,\n\t\t});\n\t};\n\n\treturn (\n\t\t e.stopPropagation()} className=\"rdt_TableCell\" noPadding>\n\t\t\t\n\t\t\n\t);\n}\n\nexport default TableCellCheckbox;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { ExpandableIcon } from './types';\n\nconst ButtonStyle = styled.button`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n\tborder: none;\n\tbackground-color: transparent;\n\t${({ theme }) => theme.expanderButton.style};\n`;\n\ntype ExpanderButtonProps = {\n\tdisabled?: boolean;\n\texpanded?: boolean;\n\texpandableIcon: ExpandableIcon;\n\tid: string | number;\n\trow: T;\n\tonToggled?: (row: T) => void;\n};\n\nfunction ExpanderButton({\n\tdisabled = false,\n\texpanded = false,\n\texpandableIcon,\n\tid,\n\trow,\n\tonToggled,\n}: ExpanderButtonProps): JSX.Element {\n\tconst icon = expanded ? expandableIcon.expanded : expandableIcon.collapsed;\n\tconst handleToggle = () => onToggled && onToggled(row);\n\n\treturn (\n\t\t\n\t\t\t{icon}\n\t\t\n\t);\n}\n\nexport default ExpanderButton;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport ExpanderButton from './ExpanderButton';\nimport { ExpandableIcon } from './types';\n\nconst CellExpanderStyle = styled(CellBase)`\n\twhite-space: nowrap;\n\tfont-weight: 400;\n\tmin-width: 48px;\n\t${({ theme }) => theme.expanderCell.style};\n`;\n\ntype CellExpanderProps = {\n\tdisabled: boolean;\n\texpanded: boolean;\n\texpandableIcon: ExpandableIcon;\n\tid: string | number;\n\trow: T;\n\tonToggled: (row: T) => void;\n};\n\nfunction CellExpander({\n\trow,\n\texpanded = false,\n\texpandableIcon,\n\tid,\n\tonToggled,\n\tdisabled = false,\n}: CellExpanderProps): JSX.Element {\n\treturn (\n\t\t e.stopPropagation()} noPadding>\n\t\t\t\n\t\t\n\t);\n}\n\nexport default CellExpander;\n","import * as React from 'react';\nimport styled, { CSSObject } from 'styled-components';\nimport { ComponentProps, ExpandableRowsComponent } from './types';\n\nconst ExpanderRowStyle = styled.div<{\n\textendedRowStyle: CSSObject;\n}>`\n\twidth: 100%;\n\tbox-sizing: border-box;\n\t${({ theme }) => theme.expanderRow.style};\n\t${({ extendedRowStyle }) => extendedRowStyle};\n`;\n\ntype ExpanderRowProps = {\n\tdata: T;\n\tExpanderComponent: ExpandableRowsComponent;\n\textendedRowStyle: CSSObject;\n\textendedClassNames: string;\n\texpanderComponentProps: ComponentProps;\n};\n\nfunction ExpanderRow({\n\tdata,\n\tExpanderComponent,\n\texpanderComponentProps,\n\textendedRowStyle,\n\textendedClassNames,\n}: ExpanderRowProps): JSX.Element {\n\t// we need to strip of rdt_TableRow from extendedClassNames\n\tconst classNamesSplit = extendedClassNames.split(' ').filter(c => c !== 'rdt_TableRow');\n\tconst classNames = ['rdt_ExpanderRow', ...classNamesSplit].join(' ');\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default React.memo(ExpanderRow) as typeof ExpanderRow;\n","export const STOP_PROP_TAG = 'allowRowEvents';\n\nexport enum Direction {\n\tLTR = 'ltr',\n\tRTL = 'rtl',\n\tAUTO = 'auto',\n}\n\nexport enum Alignment {\n\tLEFT = 'left',\n\tRIGHT = 'right',\n\tCENTER = 'center',\n}\n\nexport enum Media {\n\tSM = 'sm',\n\tMD = 'md',\n\tLG = 'lg',\n}\n","import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport TableCell from './TableCell';\nimport TableCellCheckbox from './TableCellCheckbox';\nimport TableCellExpander from './TableCellExpander';\nimport ExpanderRow from './ExpanderRow';\nimport { prop, equalizeId, getConditionalStyle, isOdd, noop } from './util';\nimport { STOP_PROP_TAG } from './constants';\nimport { TableRow, SingleRowAction, TableProps } from './types';\n\nconst highlightCSS = css<{\n\thighlightOnHover?: boolean;\n}>`\n\t&:hover {\n\t\t${({ highlightOnHover, theme }) => highlightOnHover && theme.rows.highlightOnHoverStyle};\n\t}\n`;\n\nconst pointerCSS = css`\n\t&:hover {\n\t\tcursor: pointer;\n\t}\n`;\n\nconst TableRowStyle = styled.div.attrs(props => ({\n\tstyle: props.style,\n}))<{\n\tdense?: boolean;\n\thighlightOnHover?: boolean;\n\tpointerOnHover?: boolean;\n\tselected?: boolean;\n\tstriped?: boolean;\n}>`\n\tdisplay: flex;\n\talign-items: stretch;\n\talign-content: stretch;\n\twidth: 100%;\n\tbox-sizing: border-box;\n\t${({ theme }) => theme.rows.style};\n\t${({ dense, theme }) => dense && theme.rows.denseStyle};\n\t${({ striped, theme }) => striped && theme.rows.stripedStyle};\n\t${({ highlightOnHover }) => highlightOnHover && highlightCSS};\n\t${({ pointerOnHover }) => pointerOnHover && pointerCSS};\n\t${({ selected, theme }) => selected && theme.rows.selectedHighlightStyle};\n`;\n\ntype DProps = Pick<\n\tTableProps,\n\t| 'columns'\n\t| 'conditionalRowStyles'\n\t| 'dense'\n\t| 'expandableIcon'\n\t| 'expandableRows'\n\t| 'expandableRowsComponent'\n\t| 'expandableRowsComponentProps'\n\t| 'expandableRowsHideExpander'\n\t| 'expandOnRowClicked'\n\t| 'expandOnRowDoubleClicked'\n\t| 'highlightOnHover'\n\t| 'expandableInheritConditionalStyles'\n\t| 'keyField'\n\t| 'onRowClicked'\n\t| 'onRowDoubleClicked'\n\t| 'onRowMouseEnter'\n\t| 'onRowMouseLeave'\n\t| 'onRowExpandToggled'\n\t| 'pointerOnHover'\n\t| 'selectableRowDisabled'\n\t| 'selectableRows'\n\t| 'selectableRowsComponent'\n\t| 'selectableRowsComponentProps'\n\t| 'selectableRowsHighlight'\n\t| 'selectableRowsSingle'\n\t| 'striped'\n>;\n\ninterface TableRowProps extends Required> {\n\tdraggingColumnId: number | string;\n\tdefaultExpanded?: boolean;\n\tdefaultExpanderDisabled: boolean;\n\tid: string | number;\n\tonSelectedRow: (action: SingleRowAction) => void;\n\tpointerOnHover: boolean;\n\trow: T;\n\trowCount: number;\n\trowIndex: number;\n\tselected: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nfunction Row({\n\tcolumns = [],\n\tconditionalRowStyles = [],\n\tdefaultExpanded = false,\n\tdefaultExpanderDisabled = false,\n\tdense = false,\n\texpandableIcon,\n\texpandableRows = false,\n\texpandableRowsComponent,\n\texpandableRowsComponentProps,\n\texpandableRowsHideExpander,\n\texpandOnRowClicked = false,\n\texpandOnRowDoubleClicked = false,\n\thighlightOnHover = false,\n\tid,\n\texpandableInheritConditionalStyles,\n\tkeyField,\n\tonRowClicked = noop,\n\tonRowDoubleClicked = noop,\n\tonRowMouseEnter = noop,\n\tonRowMouseLeave = noop,\n\tonRowExpandToggled = noop,\n\tonSelectedRow = noop,\n\tpointerOnHover = false,\n\trow,\n\trowCount,\n\trowIndex,\n\tselectableRowDisabled = null,\n\tselectableRows = false,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowsHighlight = false,\n\tselectableRowsSingle = false,\n\tselected,\n\tstriped = false,\n\tdraggingColumnId,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: TableRowProps): JSX.Element {\n\tconst [expanded, setExpanded] = React.useState(defaultExpanded);\n\n\tReact.useEffect(() => {\n\t\tsetExpanded(defaultExpanded);\n\t}, [defaultExpanded]);\n\n\tconst handleExpanded = React.useCallback(() => {\n\t\tsetExpanded(!expanded);\n\t\tonRowExpandToggled(!expanded, row);\n\t}, [expanded, onRowExpandToggled, row]);\n\n\tconst showPointer = pointerOnHover || (expandableRows && (expandOnRowClicked || expandOnRowDoubleClicked));\n\n\tconst handleRowClick = React.useCallback(\n\t\te => {\n\t\t\t// use event delegation allow events to propagate only when the element with data-tag STOP_PROP_TAG is present\n\t\t\tif (e.target && e.target.getAttribute('data-tag') === STOP_PROP_TAG) {\n\t\t\t\tonRowClicked(row, e);\n\n\t\t\t\tif (!defaultExpanderDisabled && expandableRows && expandOnRowClicked) {\n\t\t\t\t\thandleExpanded();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[defaultExpanderDisabled, expandOnRowClicked, expandableRows, handleExpanded, onRowClicked, row],\n\t);\n\n\tconst handleRowDoubleClick = React.useCallback(\n\t\te => {\n\t\t\tif (e.target && e.target.getAttribute('data-tag') === STOP_PROP_TAG) {\n\t\t\t\tonRowDoubleClicked(row, e);\n\t\t\t\tif (!defaultExpanderDisabled && expandableRows && expandOnRowDoubleClicked) {\n\t\t\t\t\thandleExpanded();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[defaultExpanderDisabled, expandOnRowDoubleClicked, expandableRows, handleExpanded, onRowDoubleClicked, row],\n\t);\n\n\tconst handleRowMouseEnter = React.useCallback(\n\t\te => {\n\t\t\tonRowMouseEnter(row, e);\n\t\t},\n\t\t[onRowMouseEnter, row],\n\t);\n\n\tconst handleRowMouseLeave = React.useCallback(\n\t\te => {\n\t\t\tonRowMouseLeave(row, e);\n\t\t},\n\t\t[onRowMouseLeave, row],\n\t);\n\n\tconst rowKeyField = prop(row as TableRow, keyField);\n\tconst { style, classNames } = getConditionalStyle(row, conditionalRowStyles, ['rdt_TableRow']);\n\tconst highlightSelected = selectableRowsHighlight && selected;\n\tconst inheritStyles = expandableInheritConditionalStyles ? style : {};\n\tconst isStriped = striped && isOdd(rowIndex);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{selectableRows && (\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{expandableRows && !expandableRowsHideExpander && (\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{columns.map(column => {\n\t\t\t\t\tif (column.omit) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\n\t\t\t{expandableRows && expanded && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}\n\nexport default Row;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { SortOrder } from '../DataTable/types';\n\nconst Icon = styled.span<{\n\tsortActive: boolean;\n\tsortDirection: SortOrder;\n}>`\n\tpadding: 2px;\n\tcolor: inherit;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\t${({ sortActive }) => (sortActive ? 'opacity: 1' : 'opacity: 0')};\n\t${({ sortDirection }) => sortDirection === 'desc' && 'transform: rotate(180deg)'};\n`;\n\ninterface NativeSortIconProps {\n\tsortActive: boolean;\n\tsortDirection: SortOrder;\n}\n\nconst NativeSortIcon: React.FC = ({ sortActive, sortDirection }) => (\n\t\n\t\t▲\n\t\n);\n\nexport default NativeSortIcon;\n","import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { CellExtended, CellProps } from './Cell';\nimport NativeSortIcon from '../icons/NativeSortIcon';\nimport { equalizeId } from './util';\nimport { TableColumn, SortAction, SortOrder } from './types';\n\ninterface ColumnStyleProps extends CellProps {\n\tisDragging?: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nconst ColumnStyled = styled(CellExtended)`\n\t${({ button }) => button && 'text-align: center'};\n\t${({ theme, isDragging }) => isDragging && theme.headCells.draggingStyle};\n`;\n\ninterface ColumnSortableProps {\n\tdisabled: boolean;\n\tsortActive: boolean;\n}\n\nconst sortableCSS = css`\n\tcursor: pointer;\n\tspan.__rdt_custom_sort_icon__ {\n\t\ti,\n\t\tsvg {\n\t\t\ttransform: 'translate3d(0, 0, 0)';\n\t\t\t${({ sortActive }) => (sortActive ? 'opacity: 1' : 'opacity: 0')};\n\t\t\tcolor: inherit;\n\t\t\tfont-size: 18px;\n\t\t\theight: 18px;\n\t\t\twidth: 18px;\n\t\t\tbackface-visibility: hidden;\n\t\t\ttransform-style: preserve-3d;\n\t\t\ttransition-duration: 95ms;\n\t\t\ttransition-property: transform;\n\t\t}\n\n\t\t&.asc i,\n\t\t&.asc svg {\n\t\t\ttransform: rotate(180deg);\n\t\t}\n\t}\n\n\t${({ sortActive }) =>\n\t\t!sortActive &&\n\t\tcss`\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\topacity: 0.7;\n\n\t\t\t\tspan,\n\t\t\t\tspan.__rdt_custom_sort_icon__ * {\n\t\t\t\t\topacity: 0.7;\n\t\t\t\t}\n\t\t\t}\n\t\t`};\n`;\n\nconst ColumnSortable = styled.div`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: inherit;\n\theight: 100%;\n\twidth: 100%;\n\toutline: none;\n\tuser-select: none;\n\toverflow: hidden;\n\t${({ disabled }) => !disabled && sortableCSS};\n`;\n\nconst ColumnText = styled.div`\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n`;\n\ntype TableColProps = {\n\tcolumn: TableColumn;\n\tdisabled: boolean;\n\tdraggingColumnId?: string | number;\n\tsortIcon?: React.ReactNode;\n\tpagination: boolean;\n\tpaginationServer: boolean;\n\tpersistSelectedOnSort: boolean;\n\tselectedColumn: TableColumn;\n\tsortDirection: SortOrder;\n\tsortServer: boolean;\n\tselectableRowsVisibleOnly: boolean;\n\tonSort: (action: SortAction) => void;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n};\n\nfunction TableCol({\n\tcolumn,\n\tdisabled,\n\tdraggingColumnId,\n\tselectedColumn = {},\n\tsortDirection,\n\tsortIcon,\n\tsortServer,\n\tpagination,\n\tpaginationServer,\n\tpersistSelectedOnSort,\n\tselectableRowsVisibleOnly,\n\tonSort,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: TableColProps): JSX.Element | null {\n\tReact.useEffect(() => {\n\t\tif (typeof column.selector === 'string') {\n\t\t\tconsole.error(\n\t\t\t\t`Warning: ${column.selector} is a string based column selector which has been deprecated as of v7 and will be removed in v8. Instead, use a selector function e.g. row => row[field]...`,\n\t\t\t);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tconst [showTooltip, setShowTooltip] = React.useState(false);\n\tconst columnRef = React.useRef(null);\n\n\tReact.useEffect(() => {\n\t\tif (columnRef.current) {\n\t\t\tsetShowTooltip(columnRef.current.scrollWidth > columnRef.current.clientWidth);\n\t\t}\n\t}, [showTooltip]);\n\n\tif (column.omit) {\n\t\treturn null;\n\t}\n\n\tconst handleSortChange = () => {\n\t\tif (!column.sortable && !column.selector) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet direction = sortDirection;\n\n\t\tif (equalizeId(selectedColumn.id, column.id)) {\n\t\t\tdirection = sortDirection === SortOrder.ASC ? SortOrder.DESC : SortOrder.ASC;\n\t\t}\n\n\t\tonSort({\n\t\t\ttype: 'SORT_CHANGE',\n\t\t\tsortDirection: direction,\n\t\t\tselectedColumn: column,\n\t\t\tclearSelectedOnSort:\n\t\t\t\t(pagination && paginationServer && !persistSelectedOnSort) || sortServer || selectableRowsVisibleOnly,\n\t\t});\n\t};\n\n\tconst handleKeyPress = (event: React.KeyboardEvent) => {\n\t\tif (event.key === 'Enter') {\n\t\t\thandleSortChange();\n\t\t}\n\t};\n\n\tconst renderNativeSortIcon = (sortActive: boolean) => (\n\t\t\n\t);\n\n\tconst renderCustomSortIcon = () => (\n\t\t{sortIcon}\n\t);\n\n\tconst sortActive = !!(column.sortable && equalizeId(selectedColumn.id, column.id));\n\tconst disableSort = !column.sortable || disabled;\n\tconst nativeSortIconLeft = column.sortable && !sortIcon && !column.right;\n\tconst nativeSortIconRight = column.sortable && !sortIcon && column.right;\n\tconst customSortIconLeft = column.sortable && sortIcon && !column.right;\n\tconst customSortIconRight = column.sortable && sortIcon && column.right;\n\n\treturn (\n\t\t\n\t\t\t{column.name && (\n\t\t\t\t\n\t\t\t\t\t{!disableSort && customSortIconRight && renderCustomSortIcon()}\n\t\t\t\t\t{!disableSort && nativeSortIconRight && renderNativeSortIcon(sortActive)}\n\n\t\t\t\t\t{typeof column.name === 'string' ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{column.name}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\tcolumn.name\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!disableSort && customSortIconLeft && renderCustomSortIcon()}\n\t\t\t\t\t{!disableSort && nativeSortIconLeft && renderNativeSortIcon(sortActive)}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}\n\nexport default React.memo(TableCol) as typeof TableCol;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport Checkbox from './Checkbox';\nimport { AllRowsAction, RowState } from './types';\n\nconst ColumnStyle = styled(CellBase)`\n\tflex: 0 0 48px;\n\tjustify-content: center;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n\tfont-size: unset;\n`;\n\ninterface ColumnCheckboxProps {\n\theadCell?: boolean;\n\tselectableRowsComponent: 'input' | React.ReactNode;\n\tselectableRowsComponentProps: Record;\n\tselectableRowDisabled: RowState;\n\tkeyField: string;\n\tmergeSelections: boolean;\n\trowData: T[];\n\tselectedRows: T[];\n\tallSelected: boolean;\n\tonSelectAllRows: (action: AllRowsAction) => void;\n}\n\nfunction ColumnCheckbox({\n\theadCell = true,\n\trowData,\n\tkeyField,\n\tallSelected,\n\tmergeSelections,\n\tselectedRows,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowDisabled,\n\tonSelectAllRows,\n}: ColumnCheckboxProps): JSX.Element {\n\tconst indeterminate = selectedRows.length > 0 && !allSelected;\n\tconst rows = selectableRowDisabled ? rowData.filter((row: T) => !selectableRowDisabled(row)) : rowData;\n\tconst isDisabled = rows.length === 0;\n\t// The row count should subtract rows that are disabled\n\tconst rowCount = Math.min(rowData.length, rows.length);\n\n\tconst handleSelectAll = () => {\n\t\tonSelectAllRows({\n\t\t\ttype: 'SELECT_ALL_ROWS',\n\t\t\trows,\n\t\t\trowCount,\n\t\t\tmergeSelections,\n\t\t\tkeyField,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ColumnCheckbox;\n","import * as React from 'react';\nimport { Direction } from '../DataTable/constants';\n\nfunction useRTL(direction: Direction = Direction.AUTO): boolean {\n\tconst isClient = typeof window === 'object';\n\n\tconst [isRTL, setIsRTL] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tif (!isClient) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'auto') {\n\t\t\tconst canUse = !!(window.document && window.document.createElement);\n\t\t\tconst bodyRTL = document.getElementsByTagName('BODY')[0];\n\t\t\tconst htmlTRL = document.getElementsByTagName('HTML')[0];\n\t\t\tconst hasRTL = bodyRTL.dir === 'rtl' || htmlTRL.dir === 'rtl';\n\n\t\t\tsetIsRTL(canUse && hasRTL);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsRTL(direction === 'rtl');\n\t}, [direction, isClient]);\n\n\treturn isRTL;\n}\n\nexport default useRTL;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport useRTL from '../hooks/useRTL';\nimport { Direction } from './constants';\nimport { ContextMessage } from './types';\n\nconst Title = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tflex: 1 0 auto;\n\theight: 100%;\n\tcolor: ${({ theme }) => theme.contextMenu.fontColor};\n\tfont-size: ${({ theme }) => theme.contextMenu.fontSize};\n\tfont-weight: 400;\n`;\n\nconst ContextActions = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\tflex-wrap: wrap;\n`;\n\nconst ContextMenuStyle = styled.div<{\n\trtl?: boolean;\n\tvisible: boolean;\n}>`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbox-sizing: inherit;\n\tz-index: 1;\n\talign-items: center;\n\tjustify-content: space-between;\n\tdisplay: flex;\n\t${({ rtl }) => rtl && 'direction: rtl'};\n\t${({ theme }) => theme.contextMenu.style};\n\t${({ theme, visible }) => visible && theme.contextMenu.activeStyle};\n`;\n\nconst generateDefaultContextTitle = (contextMessage: ContextMessage, selectedCount: number, rtl: boolean) => {\n\tif (selectedCount === 0) {\n\t\treturn null;\n\t}\n\n\tconst datumName = selectedCount === 1 ? contextMessage.singular : contextMessage.plural;\n\n\t// TODO: add mock document rtl tests\n\tif (rtl) {\n\t\treturn `${selectedCount} ${contextMessage.message || ''} ${datumName}`;\n\t}\n\n\treturn `${selectedCount} ${datumName} ${contextMessage.message || ''}`;\n};\n\ntype ContextMenuProps = {\n\tcontextMessage: ContextMessage;\n\tcontextActions: React.ReactNode | React.ReactNode[];\n\tcontextComponent: React.ReactNode | null;\n\tselectedCount: number;\n\tdirection: Direction;\n};\n\nfunction ContextMenu({\n\tcontextMessage,\n\tcontextActions,\n\tcontextComponent,\n\tselectedCount,\n\tdirection,\n}: ContextMenuProps): JSX.Element {\n\tconst isRTL = useRTL(direction);\n\tconst visible = selectedCount > 0;\n\n\tif (contextComponent) {\n\t\treturn (\n\t\t\t\n\t\t\t\t{React.cloneElement(contextComponent as React.ReactElement, { selectedCount })}\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{generateDefaultContextTitle(contextMessage, selectedCount, isRTL)}\n\t\t\t{contextActions}\n\t\t\n\t);\n}\n\nexport default ContextMenu;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport ContextMenu from './ContextMenu';\nimport { Direction } from './constants';\nimport { ContextMessage } from './types';\n\nconst HeaderStyle = styled.div`\n\tposition: relative;\n\tbox-sizing: border-box;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\talign-items: center;\n\tjustify-content: space-between;\n\twidth: 100%;\n\tflex-wrap: wrap;\n\t${({ theme }) => theme.header.style}\n`;\n\nconst Title = styled.div`\n\tflex: 1 0 auto;\n\tcolor: ${({ theme }) => theme.header.fontColor};\n\tfont-size: ${({ theme }) => theme.header.fontSize};\n\tfont-weight: 400;\n`;\n\nconst Actions = styled.div`\n\tflex: 1 0 auto;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\n\t> * {\n\t\tmargin-left: 5px;\n\t}\n`;\n\ntype HeaderProps = {\n\ttitle?: string | React.ReactNode;\n\tactions?: React.ReactNode | React.ReactNode[];\n\tdirection: Direction;\n\tselectedCount: number;\n\tshowMenu?: boolean;\n\tcontextMessage: ContextMessage;\n\tcontextActions: React.ReactNode | React.ReactNode[];\n\tcontextComponent: React.ReactNode | null;\n};\n\nconst Header = ({\n\ttitle,\n\tactions = null,\n\tcontextMessage,\n\tcontextActions,\n\tcontextComponent,\n\tselectedCount,\n\tdirection,\n\tshowMenu = true,\n}: HeaderProps): JSX.Element => (\n\t\n\t\t{title}\n\t\t{actions && {actions}}\n\n\t\t{showMenu && (\n\t\t\t\n\t\t)}\n\t\n);\n\nexport default Header;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst alignMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n};\n\ntype AlignItems = 'center' | 'left' | 'right';\n\nconst SubheaderWrapper = styled.header<{\n\talign: AlignItems;\n\twrapContent: boolean;\n}>`\n\tposition: relative;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tbox-sizing: border-box;\n\talign-items: center;\n\tpadding: 4px 16px 4px 24px;\n\twidth: 100%;\n\tjustify-content: ${({ align }) => alignMap[align]};\n\tflex-wrap: ${({ wrapContent }) => (wrapContent ? 'wrap' : 'nowrap')};\n\t${({ theme }) => theme.subHeader.style}\n`;\n\ntype SubheaderProps = {\n\talign?: AlignItems;\n\twrapContent?: boolean;\n\tchildren?: React.ReactNode;\n};\n\nconst Subheader = ({ align = 'right', wrapContent = true, ...rest }: SubheaderProps): JSX.Element => (\n\t\n);\n\nexport default Subheader;\n","import styled from 'styled-components';\n\nconst Body = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n\nexport default Body;\n","import styled, { css } from 'styled-components';\n\n/* Hack when using layovers/menus that get clipped by overflow-x\n when a table is responsive due to overflow-xy scroll spec stupidity.\n Note: The parent element height must be set to 100%!\n https://www.brunildo.org/test/Overflowxy2.html\n*/\n\nconst ResponsiveWrapper = styled.div<{\n\tresponsive: boolean;\n\tfixedHeader?: boolean;\n\tfixedHeaderScrollHeight?: string;\n}>`\n\tposition: relative;\n\twidth: 100%;\n\tborder-radius: inherit;\n\t${({ responsive, fixedHeader }) =>\n\t\tresponsive &&\n\t\tcss`\n\t\t\toverflow-x: auto;\n\n\t\t\t// hidden prevents vertical scrolling in firefox when fixedHeader is disabled\n\t\t\toverflow-y: ${fixedHeader ? 'auto' : 'hidden'};\n\t\t\tmin-height: 0;\n\t\t`};\n\n\t${({ fixedHeader = false, fixedHeaderScrollHeight = '100vh' }) =>\n\t\tfixedHeader &&\n\t\tcss`\n\t\t\tmax-height: ${fixedHeaderScrollHeight};\n\t\t\t-webkit-overflow-scrolling: touch;\n\t\t`};\n\n\t${({ theme }) => theme.responsiveWrapper.style};\n`;\n\nexport default ResponsiveWrapper;\n","import styled from 'styled-components';\n\nconst ProgressWrapper = styled.div`\n\tposition: relative;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\t${props => props.theme.progress.style};\n`;\n\nexport default ProgressWrapper;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n\tposition: relative;\n\twidth: 100%;\n\t${({ theme }) => theme.tableWrapper.style};\n`;\n\nexport default Wrapper;\n","import styled from 'styled-components';\nimport { CellBase } from './Cell';\n\nconst ColumnExpander = styled(CellBase)`\n\twhite-space: nowrap;\n\t${({ theme }) => theme.expanderCell.style};\n`;\n\nexport default ColumnExpander;\n","import styled from 'styled-components';\n\nconst NoDataWrapper = styled.div`\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\t${({ theme }) => theme.noData.style};\n`;\n\nexport default NoDataWrapper;\n","import React from 'react';\n\nconst DropdownIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default DropdownIcon;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport DropDownIcon from '../icons/Dropdown';\n\nconst SelectControl = styled.select`\n\tcursor: pointer;\n\theight: 24px;\n\tmax-width: 100%;\n\tuser-select: none;\n\tpadding-left: 8px;\n\tpadding-right: 24px;\n\tbox-sizing: content-box;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tborder: none;\n\tbackground-color: transparent;\n\tappearance: none;\n\tdirection: ltr;\n\tflex-shrink: 0;\n\n\t&::-ms-expand {\n\t\tdisplay: none;\n\t}\n\n\t&:disabled::-ms-expand {\n\t\tbackground: #f60;\n\t}\n\n\toption {\n\t\tcolor: initial;\n\t}\n`;\n\nconst SelectWrapper = styled.div`\n\tposition: relative;\n\tflex-shrink: 0;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tmargin-top: 1px;\n\n\tsvg {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tcolor: inherit;\n\t\tposition: absolute;\n\t\tfill: currentColor;\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tdisplay: inline-block;\n\t\tuser-select: none;\n\t\tpointer-events: none;\n\t}\n`;\n\ntype SelectProps = {\n\tonChange: (e: React.ChangeEvent) => void;\n\tdefaultValue: string | number;\n\tchildren: React.ReactNode;\n};\n\nconst Select = ({ defaultValue, onChange, ...rest }: SelectProps): JSX.Element => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Select;\n","import React from 'react';\nimport FirstPageIcon from '../icons/FirstPage';\nimport LastPageIcon from '../icons/LastPage';\nimport LeftIcon from '../icons/Left';\nimport RightIcon from '../icons/Right';\nimport ExpanderCollapsedIcon from '../icons/ExpanderCollapsedIcon';\nimport ExpanderExpandedIcon from '../icons/ExpanderExpandedIcon';\nimport { noop } from './util';\nimport { Alignment, Direction } from './constants';\n\nexport const defaultProps = {\n\tcolumns: [],\n\tdata: [],\n\ttitle: '',\n\tkeyField: 'id',\n\tselectableRows: false,\n\tselectableRowsHighlight: false,\n\tselectableRowsNoSelectAll: false,\n\tselectableRowSelected: null,\n\tselectableRowDisabled: null,\n\tselectableRowsComponent: 'input' as const,\n\tselectableRowsComponentProps: {},\n\tselectableRowsVisibleOnly: false,\n\tselectableRowsSingle: false,\n\tclearSelectedRows: false,\n\texpandableRows: false,\n\texpandableRowDisabled: null,\n\texpandableRowExpanded: null,\n\texpandOnRowClicked: false,\n\texpandableRowsHideExpander: false,\n\texpandOnRowDoubleClicked: false,\n\texpandableInheritConditionalStyles: false,\n\texpandableRowsComponent: function DefaultExpander(): JSX.Element {\n\t\treturn (\n\t\t\t
\n\t\t\t\tTo add an expander pass in a component instance via expandableRowsComponent. You can then\n\t\t\t\taccess props.data from this component.\n\t\t\t
\n\t\t);\n\t},\n\texpandableIcon: {\n\t\tcollapsed: ,\n\t\texpanded: ,\n\t},\n\texpandableRowsComponentProps: {},\n\tprogressPending: false,\n\tprogressComponent:
Loading...
,\n\tpersistTableHead: false,\n\tsortIcon: null,\n\tsortFunction: null,\n\tsortServer: false,\n\tstriped: false,\n\thighlightOnHover: false,\n\tpointerOnHover: false,\n\tnoContextMenu: false,\n\tcontextMessage: { singular: 'item', plural: 'items', message: 'selected' },\n\tactions: null,\n\tcontextActions: null,\n\tcontextComponent: null,\n\tdefaultSortFieldId: null,\n\tdefaultSortAsc: true,\n\tresponsive: true,\n\tnoDataComponent:
There are no records to display
,\n\tdisabled: false,\n\tnoTableHead: false,\n\tnoHeader: false,\n\tsubHeader: false,\n\tsubHeaderAlign: Alignment.RIGHT,\n\tsubHeaderWrap: true,\n\tsubHeaderComponent: null,\n\tfixedHeader: false,\n\tfixedHeaderScrollHeight: '100vh',\n\tpagination: false,\n\tpaginationServer: false,\n\tpaginationServerOptions: {\n\t\tpersistSelectedOnSort: false,\n\t\tpersistSelectedOnPageChange: false,\n\t},\n\tpaginationDefaultPage: 1,\n\tpaginationResetDefaultPage: false,\n\tpaginationTotalRows: 0,\n\tpaginationPerPage: 10,\n\tpaginationRowsPerPageOptions: [10, 15, 20, 25, 30],\n\tpaginationComponent: null,\n\tpaginationComponentOptions: {},\n\tpaginationIconFirstPage: ,\n\tpaginationIconLastPage: ,\n\tpaginationIconNext: ,\n\tpaginationIconPrevious: ,\n\tdense: false,\n\tconditionalRowStyles: [],\n\ttheme: 'default' as const,\n\tcustomStyles: {},\n\tdirection: Direction.AUTO,\n\tonChangePage: noop,\n\tonChangeRowsPerPage: noop,\n\tonRowClicked: noop,\n\tonRowDoubleClicked: noop,\n\tonRowMouseEnter: noop,\n\tonRowMouseLeave: noop,\n\tonRowExpandToggled: noop,\n\tonSelectedRowsChange: noop,\n\tonSort: noop,\n\tonColumnOrderChange: noop,\n};\n","import React from 'react';\n\nconst ExpanderCollapsedIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default ExpanderCollapsedIcon;\n","import React from 'react';\n\nconst ExpanderExpandedIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default ExpanderExpandedIcon;\n","import React from 'react';\n\nconst FirstPage: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default FirstPage;\n","import React from 'react';\n\nconst LastPage: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default LastPage;\n","import React from 'react';\n\nconst Right: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Right;\n","import React from 'react';\n\nconst Left: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Left;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport Select from './Select';\nimport { getNumberOfPages } from './util';\nimport useWindowSize from '../hooks/useWindowSize';\nimport useRTL from '../hooks/useRTL';\nimport { media, SMALL } from './media';\nimport { Direction } from './constants';\nimport { PaginationOptions } from './types';\nimport { defaultProps } from './defaultProps';\n\nconst defaultComponentOptions = {\n\trowsPerPageText: 'Rows per page:',\n\trangeSeparatorText: 'of',\n\tnoRowsPerPage: false,\n\tselectAllRowsItem: false,\n\tselectAllRowsItemText: 'All',\n};\n\nconst PaginationWrapper = styled.nav`\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding-right: 8px;\n\tpadding-left: 8px;\n\twidth: 100%;\n\t${({ theme }) => theme.pagination.style};\n`;\n\nconst Button = styled.button<{\n\tisRTL: boolean;\n}>`\n\tposition: relative;\n\tdisplay: block;\n\tuser-select: none;\n\tborder: none;\n\t${({ theme }) => theme.pagination.pageButtonsStyle};\n\t${({ isRTL }) => isRTL && 'transform: scale(-1, -1)'};\n`;\n\nconst PageList = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tborder-radius: 4px;\n\twhite-space: nowrap;\n\t${media.sm`\n width: 100%;\n justify-content: space-around;\n `};\n`;\n\nconst Span = styled.span`\n\tflex-shrink: 1;\n\tuser-select: none;\n`;\n\nconst Range = styled(Span)`\n\tmargin: 0 24px;\n`;\n\nconst RowLabel = styled(Span)`\n\tmargin: 0 4px;\n`;\n\ninterface PaginationProps {\n\trowsPerPage: number;\n\trowCount: number;\n\tcurrentPage: number;\n\tdirection?: Direction;\n\tpaginationRowsPerPageOptions?: number[];\n\tpaginationIconLastPage?: React.ReactNode;\n\tpaginationIconFirstPage?: React.ReactNode;\n\tpaginationIconNext?: React.ReactNode;\n\tpaginationIconPrevious?: React.ReactNode;\n\tpaginationComponentOptions?: PaginationOptions;\n\tonChangePage: (page: number) => void;\n\tonChangeRowsPerPage: (numRows: number, currentPage: number) => void;\n}\n\nfunction Pagination({\n\trowsPerPage,\n\trowCount,\n\tcurrentPage,\n\tdirection = defaultProps.direction,\n\tpaginationRowsPerPageOptions = defaultProps.paginationRowsPerPageOptions,\n\tpaginationIconLastPage = defaultProps.paginationIconLastPage,\n\tpaginationIconFirstPage = defaultProps.paginationIconFirstPage,\n\tpaginationIconNext = defaultProps.paginationIconNext,\n\tpaginationIconPrevious = defaultProps.paginationIconPrevious,\n\tpaginationComponentOptions = defaultProps.paginationComponentOptions,\n\tonChangeRowsPerPage = defaultProps.onChangeRowsPerPage,\n\tonChangePage = defaultProps.onChangePage,\n}: PaginationProps): JSX.Element {\n\tconst windowSize = useWindowSize();\n\tconst isRTL = useRTL(direction);\n\tconst shouldShow = windowSize.width && windowSize.width > SMALL;\n\t// const isRTL = detectRTL(direction);\n\tconst numPages = getNumberOfPages(rowCount, rowsPerPage);\n\tconst lastIndex = currentPage * rowsPerPage;\n\tconst firstIndex = lastIndex - rowsPerPage + 1;\n\tconst disabledLesser = currentPage === 1;\n\tconst disabledGreater = currentPage === numPages;\n\tconst options = { ...defaultComponentOptions, ...paginationComponentOptions };\n\tconst range =\n\t\tcurrentPage === numPages\n\t\t\t? `${firstIndex}-${rowCount} ${options.rangeSeparatorText} ${rowCount}`\n\t\t\t: `${firstIndex}-${lastIndex} ${options.rangeSeparatorText} ${rowCount}`;\n\n\tconst handlePrevious = React.useCallback(() => onChangePage(currentPage - 1), [currentPage, onChangePage]);\n\tconst handleNext = React.useCallback(() => onChangePage(currentPage + 1), [currentPage, onChangePage]);\n\tconst handleFirst = React.useCallback(() => onChangePage(1), [onChangePage]);\n\tconst handleLast = React.useCallback(\n\t\t() => onChangePage(getNumberOfPages(rowCount, rowsPerPage)),\n\t\t[onChangePage, rowCount, rowsPerPage],\n\t);\n\tconst handleRowsPerPage = React.useCallback(\n\t\t(e: React.ChangeEvent) => onChangeRowsPerPage(Number(e.target.value), currentPage),\n\t\t[currentPage, onChangeRowsPerPage],\n\t);\n\n\tconst selectOptions = paginationRowsPerPageOptions.map((num: number) => (\n\t\t\n\t));\n\n\tif (options.selectAllRowsItem) {\n\t\tselectOptions.push(\n\t\t\t,\n\t\t);\n\t}\n\n\tconst select = (\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t{!options.noRowsPerPage && shouldShow && (\n\t\t\t\t<>\n\t\t\t\t\t{options.rowsPerPageText}\n\t\t\t\t\t{select}\n\t\t\t\t\n\t\t\t)}\n\t\t\t{shouldShow && {range}}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{paginationIconFirstPage}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconPrevious}\n\t\t\t\t\n\n\t\t\t\t{!shouldShow && select}\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconNext}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconLastPage}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default React.memo(Pagination);\n","// Credit: https://usehooks.com/useWindowSize/\nimport * as React from 'react';\n\ntype Hook = () => {\n\twidth: number | undefined;\n\theight: number | undefined;\n};\n\nconst useWindowSize: Hook = () => {\n\tconst isClient = typeof window === 'object';\n\n\tfunction getSize() {\n\t\treturn {\n\t\t\twidth: isClient ? window.innerWidth : undefined,\n\t\t\theight: isClient ? window.innerHeight : undefined,\n\t\t};\n\t}\n\n\tconst [windowSize, setWindowSize] = React.useState(getSize);\n\n\tReact.useEffect(() => {\n\t\tif (!isClient) {\n\t\t\treturn () => null;\n\t\t}\n\n\t\tfunction handleResize() {\n\t\t\tsetWindowSize(getSize());\n\t\t}\n\n\t\twindow.addEventListener('resize', handleResize);\n\t\treturn () => window.removeEventListener('resize', handleResize);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\treturn windowSize;\n};\n\nexport default useWindowSize;\n","import * as React from 'react';\n\ntype Hook = (fn: () => void, inputs: unknown[]) => void;\n\nconst useFirstUpdate: Hook = (fn, inputs) => {\n\tconst firstUpdate = React.useRef(true);\n\n\tReact.useEffect(() => {\n\t\tif (firstUpdate.current) {\n\t\t\tfirstUpdate.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tfn();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, inputs);\n};\n\nexport default useFirstUpdate;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import merge from 'deepmerge';\nimport { Theme, Themes } from './types';\n\ntype ThemeMapping = {\n\t[propertyName: string]: Theme;\n};\n\nconst defaultTheme = {\n\ttext: {\n\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\tsecondary: 'rgba(0, 0, 0, 0.54)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.38)',\n\t},\n\tbackground: {\n\t\tdefault: '#FFFFFF',\n\t},\n\tcontext: {\n\t\tbackground: '#e3f2fd',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\tdivider: {\n\t\tdefault: 'rgba(0,0,0,.12)',\n\t},\n\tbutton: {\n\t\tdefault: 'rgba(0,0,0,.54)',\n\t\tfocus: 'rgba(0,0,0,.12)',\n\t\thover: 'rgba(0,0,0,.12)',\n\t\tdisabled: 'rgba(0, 0, 0, .18)',\n\t},\n\tselected: {\n\t\tdefault: '#e3f2fd',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\thighlightOnHover: {\n\t\tdefault: '#EEEEEE',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\tstriped: {\n\t\tdefault: '#FAFAFA',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n};\n\nexport const defaultThemes: ThemeMapping = {\n\tdefault: defaultTheme,\n\tlight: defaultTheme,\n\tdark: {\n\t\ttext: {\n\t\t\tprimary: '#FFFFFF',\n\t\t\tsecondary: 'rgba(255, 255, 255, 0.7)',\n\t\t\tdisabled: 'rgba(0,0,0,.12)',\n\t\t},\n\t\tbackground: {\n\t\t\tdefault: '#424242',\n\t\t},\n\t\tcontext: {\n\t\t\tbackground: '#E91E63',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\tdivider: {\n\t\t\tdefault: 'rgba(81, 81, 81, 1)',\n\t\t},\n\t\tbutton: {\n\t\t\tdefault: '#FFFFFF',\n\t\t\tfocus: 'rgba(255, 255, 255, .54)',\n\t\t\thover: 'rgba(255, 255, 255, .12)',\n\t\t\tdisabled: 'rgba(255, 255, 255, .18)',\n\t\t},\n\t\tselected: {\n\t\t\tdefault: 'rgba(0, 0, 0, .7)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\thighlightOnHover: {\n\t\t\tdefault: 'rgba(0, 0, 0, .7)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\tstriped: {\n\t\t\tdefault: 'rgba(0, 0, 0, .87)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t},\n};\n\nexport function createTheme(name = 'default', customTheme?: T, inherit: Themes = 'default'): Theme {\n\tif (!defaultThemes[name]) {\n\t\tdefaultThemes[name] = merge(defaultThemes[inherit], customTheme || {});\n\t}\n\n\t// allow tweaking default or light themes if the theme passed in matches\n\tdefaultThemes[name] = merge(defaultThemes[name], customTheme || {});\n\n\treturn defaultThemes[name];\n}\n","import * as React from 'react';\nimport { decorateColumns, findColumnIndexById, getSortDirection } from '../DataTable/util';\nimport useDidUpdateEffect from '../hooks/useDidUpdateEffect';\nimport { SortOrder, TableColumn } from '../DataTable/types';\n\ntype ColumnsHook = {\n\ttableColumns: TableColumn[];\n\tdraggingColumnId: string;\n\thandleDragStart: (e: React.DragEvent) => void;\n\thandleDragEnter: (e: React.DragEvent) => void;\n\thandleDragOver: (e: React.DragEvent) => void;\n\thandleDragLeave: (e: React.DragEvent) => void;\n\thandleDragEnd: (e: React.DragEvent) => void;\n\tdefaultSortDirection: SortOrder;\n\tdefaultSortColumn: TableColumn;\n};\n\nfunction useColumns(\n\tcolumns: TableColumn[],\n\tonColumnOrderChange: (nextOrder: TableColumn[]) => void,\n\tdefaultSortFieldId: string | number | null | undefined,\n\tdefaultSortAsc: boolean,\n): ColumnsHook {\n\tconst [tableColumns, setTableColumns] = React.useState[]>(() => decorateColumns(columns));\n\tconst [draggingColumnId, setDraggingColumn] = React.useState('');\n\tconst sourceColumnId = React.useRef('');\n\n\tuseDidUpdateEffect(() => {\n\t\tsetTableColumns(decorateColumns(columns));\n\t}, [columns]);\n\n\tconst handleDragStart = React.useCallback(\n\t\t(e: React.DragEvent) => {\n\t\t\tconst { attributes } = e.target as HTMLDivElement;\n\t\t\tconst id = attributes.getNamedItem('data-column-id')?.value;\n\n\t\t\tif (id) {\n\t\t\t\tsourceColumnId.current = tableColumns[findColumnIndexById(tableColumns, id)]?.id?.toString() || '';\n\n\t\t\t\tsetDraggingColumn(sourceColumnId.current);\n\t\t\t}\n\t\t},\n\t\t[tableColumns],\n\t);\n\n\tconst handleDragEnter = React.useCallback(\n\t\t(e: React.DragEvent) => {\n\t\t\tconst { attributes } = e.target as HTMLDivElement;\n\t\t\tconst id = attributes.getNamedItem('data-column-id')?.value;\n\n\t\t\tif (id && sourceColumnId.current && id !== sourceColumnId.current) {\n\t\t\t\tconst selectedColIndex = findColumnIndexById(tableColumns, sourceColumnId.current);\n\t\t\t\tconst targetColIndex = findColumnIndexById(tableColumns, id);\n\t\t\t\tconst reorderedCols = [...tableColumns];\n\n\t\t\t\treorderedCols[selectedColIndex] = tableColumns[targetColIndex];\n\t\t\t\treorderedCols[targetColIndex] = tableColumns[selectedColIndex];\n\n\t\t\t\tsetTableColumns(reorderedCols);\n\n\t\t\t\tonColumnOrderChange(reorderedCols);\n\t\t\t}\n\t\t},\n\t\t[onColumnOrderChange, tableColumns],\n\t);\n\n\tconst handleDragOver = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\t}, []);\n\n\tconst handleDragLeave = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\t}, []);\n\n\tconst handleDragEnd = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\n\t\tsourceColumnId.current = '';\n\n\t\tsetDraggingColumn('');\n\t}, []);\n\n\tconst defaultSortDirection = getSortDirection(defaultSortAsc);\n\tconst defaultSortColumn = React.useMemo(\n\t\t() => tableColumns[findColumnIndexById(tableColumns, defaultSortFieldId?.toString())] || {},\n\t\t[defaultSortFieldId, tableColumns],\n\t);\n\n\treturn {\n\t\ttableColumns,\n\t\tdraggingColumnId,\n\t\thandleDragStart,\n\t\thandleDragEnter,\n\t\thandleDragOver,\n\t\thandleDragLeave,\n\t\thandleDragEnd,\n\t\tdefaultSortDirection,\n\t\tdefaultSortColumn,\n\t};\n}\n\nexport default useColumns;\n","import * as React from 'react';\nimport { ThemeProvider } from 'styled-components';\nimport { tableReducer } from './tableReducer';\nimport Table from './Table';\nimport Head from './TableHead';\nimport HeadRow from './TableHeadRow';\nimport Row from './TableRow';\nimport Column from './TableCol';\nimport ColumnCheckbox from './TableColCheckbox';\nimport Header from './TableHeader';\nimport Subheader from './TableSubheader';\nimport Body from './TableBody';\nimport ResponsiveWrapper from './ResponsiveWrapper';\nimport ProgressWrapper from './ProgressWrapper';\nimport Wrapper from './TableWrapper';\nimport ColumnExpander from './TableColExpander';\nimport { CellBase } from './Cell';\nimport NoData from './NoDataWrapper';\nimport NativePagination from './Pagination';\nimport useDidUpdateEffect from '../hooks/useDidUpdateEffect';\nimport { prop, getNumberOfPages, sort, isEmpty, isRowSelected, recalculatePage } from './util';\nimport { defaultProps } from './defaultProps';\nimport { createStyles } from './styles';\nimport {\n\tAction,\n\tAllRowsAction,\n\tSingleRowAction,\n\tTableRow,\n\tSortAction,\n\tTableProps,\n\tTableState,\n\tSortOrder,\n} from './types';\nimport useColumns from '../hooks/useColumns';\n\nfunction DataTable(props: TableProps): JSX.Element {\n\tconst {\n\t\tdata = defaultProps.data,\n\t\tcolumns = defaultProps.columns,\n\t\ttitle = defaultProps.title,\n\t\tactions = defaultProps.actions,\n\t\tkeyField = defaultProps.keyField,\n\t\tstriped = defaultProps.striped,\n\t\thighlightOnHover = defaultProps.highlightOnHover,\n\t\tpointerOnHover = defaultProps.pointerOnHover,\n\t\tdense = defaultProps.dense,\n\t\tselectableRows = defaultProps.selectableRows,\n\t\tselectableRowsSingle = defaultProps.selectableRowsSingle,\n\t\tselectableRowsHighlight = defaultProps.selectableRowsHighlight,\n\t\tselectableRowsNoSelectAll = defaultProps.selectableRowsNoSelectAll,\n\t\tselectableRowsVisibleOnly = defaultProps.selectableRowsVisibleOnly,\n\t\tselectableRowSelected = defaultProps.selectableRowSelected,\n\t\tselectableRowDisabled = defaultProps.selectableRowDisabled,\n\t\tselectableRowsComponent = defaultProps.selectableRowsComponent,\n\t\tselectableRowsComponentProps = defaultProps.selectableRowsComponentProps,\n\t\tonRowExpandToggled = defaultProps.onRowExpandToggled,\n\t\tonSelectedRowsChange = defaultProps.onSelectedRowsChange,\n\t\texpandableIcon = defaultProps.expandableIcon,\n\t\tonChangeRowsPerPage = defaultProps.onChangeRowsPerPage,\n\t\tonChangePage = defaultProps.onChangePage,\n\t\tpaginationServer = defaultProps.paginationServer,\n\t\tpaginationServerOptions = defaultProps.paginationServerOptions,\n\t\tpaginationTotalRows = defaultProps.paginationTotalRows,\n\t\tpaginationDefaultPage = defaultProps.paginationDefaultPage,\n\t\tpaginationResetDefaultPage = defaultProps.paginationResetDefaultPage,\n\t\tpaginationPerPage = defaultProps.paginationPerPage,\n\t\tpaginationRowsPerPageOptions = defaultProps.paginationRowsPerPageOptions,\n\t\tpaginationIconLastPage = defaultProps.paginationIconLastPage,\n\t\tpaginationIconFirstPage = defaultProps.paginationIconFirstPage,\n\t\tpaginationIconNext = defaultProps.paginationIconNext,\n\t\tpaginationIconPrevious = defaultProps.paginationIconPrevious,\n\t\tpaginationComponent = defaultProps.paginationComponent,\n\t\tpaginationComponentOptions = defaultProps.paginationComponentOptions,\n\t\tresponsive = defaultProps.responsive,\n\t\tprogressPending = defaultProps.progressPending,\n\t\tprogressComponent = defaultProps.progressComponent,\n\t\tpersistTableHead = defaultProps.persistTableHead,\n\t\tnoDataComponent = defaultProps.noDataComponent,\n\t\tdisabled = defaultProps.disabled,\n\t\tnoTableHead = defaultProps.noTableHead,\n\t\tnoHeader = defaultProps.noHeader,\n\t\tfixedHeader = defaultProps.fixedHeader,\n\t\tfixedHeaderScrollHeight = defaultProps.fixedHeaderScrollHeight,\n\t\tpagination = defaultProps.pagination,\n\t\tsubHeader = defaultProps.subHeader,\n\t\tsubHeaderAlign = defaultProps.subHeaderAlign,\n\t\tsubHeaderWrap = defaultProps.subHeaderWrap,\n\t\tsubHeaderComponent = defaultProps.subHeaderComponent,\n\t\tnoContextMenu = defaultProps.noContextMenu,\n\t\tcontextMessage = defaultProps.contextMessage,\n\t\tcontextActions = defaultProps.contextActions,\n\t\tcontextComponent = defaultProps.contextComponent,\n\t\texpandableRows = defaultProps.expandableRows,\n\t\tonRowClicked = defaultProps.onRowClicked,\n\t\tonRowDoubleClicked = defaultProps.onRowDoubleClicked,\n\t\tonRowMouseEnter = defaultProps.onRowMouseEnter,\n\t\tonRowMouseLeave = defaultProps.onRowMouseLeave,\n\t\tsortIcon = defaultProps.sortIcon,\n\t\tonSort = defaultProps.onSort,\n\t\tsortFunction = defaultProps.sortFunction,\n\t\tsortServer = defaultProps.sortServer,\n\t\texpandableRowsComponent = defaultProps.expandableRowsComponent,\n\t\texpandableRowsComponentProps = defaultProps.expandableRowsComponentProps,\n\t\texpandableRowDisabled = defaultProps.expandableRowDisabled,\n\t\texpandableRowsHideExpander = defaultProps.expandableRowsHideExpander,\n\t\texpandOnRowClicked = defaultProps.expandOnRowClicked,\n\t\texpandOnRowDoubleClicked = defaultProps.expandOnRowDoubleClicked,\n\t\texpandableRowExpanded = defaultProps.expandableRowExpanded,\n\t\texpandableInheritConditionalStyles = defaultProps.expandableInheritConditionalStyles,\n\t\tdefaultSortFieldId = defaultProps.defaultSortFieldId,\n\t\tdefaultSortAsc = defaultProps.defaultSortAsc,\n\t\tclearSelectedRows = defaultProps.clearSelectedRows,\n\t\tconditionalRowStyles = defaultProps.conditionalRowStyles,\n\t\ttheme = defaultProps.theme,\n\t\tcustomStyles = defaultProps.customStyles,\n\t\tdirection = defaultProps.direction,\n\t\tonColumnOrderChange = defaultProps.onColumnOrderChange,\n\t\tclassName,\n\t} = props;\n\n\tconst {\n\t\ttableColumns,\n\t\tdraggingColumnId,\n\t\thandleDragStart,\n\t\thandleDragEnter,\n\t\thandleDragOver,\n\t\thandleDragLeave,\n\t\thandleDragEnd,\n\t\tdefaultSortDirection,\n\t\tdefaultSortColumn,\n\t} = useColumns(columns, onColumnOrderChange, defaultSortFieldId, defaultSortAsc);\n\n\tconst [\n\t\t{\n\t\t\trowsPerPage,\n\t\t\tcurrentPage,\n\t\t\tselectedRows,\n\t\t\tallSelected,\n\t\t\tselectedCount,\n\t\t\tselectedColumn,\n\t\t\tsortDirection,\n\t\t\ttoggleOnSelectedRowsChange,\n\t\t},\n\t\tdispatch,\n\t] = React.useReducer, Action>>(tableReducer, {\n\t\tallSelected: false,\n\t\tselectedCount: 0,\n\t\tselectedRows: [],\n\t\tselectedColumn: defaultSortColumn,\n\t\ttoggleOnSelectedRowsChange: false,\n\t\tsortDirection: defaultSortDirection,\n\t\tcurrentPage: paginationDefaultPage,\n\t\trowsPerPage: paginationPerPage,\n\t\tselectedRowsFlag: false,\n\t\tcontextMessage: defaultProps.contextMessage,\n\t});\n\n\tconst { persistSelectedOnSort = false, persistSelectedOnPageChange = false } = paginationServerOptions;\n\tconst mergeSelections = !!(paginationServer && (persistSelectedOnPageChange || persistSelectedOnSort));\n\tconst enabledPagination = pagination && !progressPending && data.length > 0;\n\tconst Pagination = paginationComponent || NativePagination;\n\n\tconst currentTheme = React.useMemo(() => createStyles(customStyles, theme), [customStyles, theme]);\n\tconst wrapperProps = React.useMemo(() => ({ ...(direction !== 'auto' && { dir: direction }) }), [direction]);\n\n\tconst sortedData = React.useMemo(() => {\n\t\t// server-side sorting bypasses internal sorting\n\t\tif (sortServer) {\n\t\t\treturn data;\n\t\t}\n\n\t\tif (selectedColumn?.sortFunction && typeof selectedColumn.sortFunction === 'function') {\n\t\t\tconst sortFn = selectedColumn.sortFunction;\n\t\t\tconst customSortFunction = sortDirection === SortOrder.ASC ? sortFn : (a: T, b: T) => sortFn(a, b) * -1;\n\n\t\t\treturn [...data].sort(customSortFunction);\n\t\t}\n\n\t\treturn sort(data, selectedColumn?.selector, sortDirection, sortFunction);\n\t}, [sortServer, selectedColumn, sortDirection, data, sortFunction]);\n\n\tconst tableRows = React.useMemo(() => {\n\t\tif (pagination && !paginationServer) {\n\t\t\t// when using client-side pagination we can just slice the rows set\n\t\t\tconst lastIndex = currentPage * rowsPerPage;\n\t\t\tconst firstIndex = lastIndex - rowsPerPage;\n\n\t\t\treturn sortedData.slice(firstIndex, lastIndex);\n\t\t}\n\n\t\treturn sortedData;\n\t}, [currentPage, pagination, paginationServer, rowsPerPage, sortedData]);\n\n\tconst handleSort = React.useCallback((action: SortAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleSelectAllRows = React.useCallback((action: AllRowsAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleSelectedRow = React.useCallback((action: SingleRowAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleRowClicked = React.useCallback((row, e) => onRowClicked(row, e), [onRowClicked]);\n\n\tconst handleRowDoubleClicked = React.useCallback((row, e) => onRowDoubleClicked(row, e), [onRowDoubleClicked]);\n\n\tconst handleRowMouseEnter = React.useCallback((row, e) => onRowMouseEnter(row, e), [onRowMouseEnter]);\n\n\tconst handleRowMouseLeave = React.useCallback((row, e) => onRowMouseLeave(row, e), [onRowMouseLeave]);\n\n\tconst handleChangePage = React.useCallback(\n\t\t(page: number) =>\n\t\t\tdispatch({\n\t\t\t\ttype: 'CHANGE_PAGE',\n\t\t\t\tpage,\n\t\t\t\tpaginationServer,\n\t\t\t\tvisibleOnly: selectableRowsVisibleOnly,\n\t\t\t\tpersistSelectedOnPageChange,\n\t\t\t}),\n\t\t[paginationServer, persistSelectedOnPageChange, selectableRowsVisibleOnly],\n\t);\n\n\tconst handleChangeRowsPerPage = React.useCallback(\n\t\t(newRowsPerPage: number) => {\n\t\t\tconst rowCount = paginationTotalRows || tableRows.length;\n\t\t\tconst updatedPage = getNumberOfPages(rowCount, newRowsPerPage);\n\t\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\t\t// update the currentPage for client-side pagination\n\t\t\t// server - side should be handled by onChangeRowsPerPage\n\t\t\tif (!paginationServer) {\n\t\t\t\thandleChangePage(recalculatedPage);\n\t\t\t}\n\n\t\t\tdispatch({ type: 'CHANGE_ROWS_PER_PAGE', page: recalculatedPage, rowsPerPage: newRowsPerPage });\n\t\t},\n\t\t[currentPage, handleChangePage, paginationServer, paginationTotalRows, tableRows.length],\n\t);\n\n\tconst showTableHead = () => {\n\t\tif (noTableHead) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (persistTableHead) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn sortedData.length > 0 && !progressPending;\n\t};\n\n\tconst showHeader = () => {\n\t\tif (noHeader) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (title) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (actions) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\t// recalculate the pagination and currentPage if the rows length changes\n\tif (pagination && !paginationServer && sortedData.length > 0 && tableRows.length === 0) {\n\t\tconst updatedPage = getNumberOfPages(sortedData.length, rowsPerPage);\n\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\thandleChangePage(recalculatedPage);\n\t}\n\n\tuseDidUpdateEffect(() => {\n\t\tonSelectedRowsChange({ allSelected, selectedCount, selectedRows: selectedRows.slice(0) });\n\t\t// onSelectedRowsChange trigger is controlled by toggleOnSelectedRowsChange state\n\t}, [toggleOnSelectedRowsChange]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonSort(selectedColumn, sortDirection, sortedData.slice(0));\n\t\t// do not update on sortedData\n\t}, [selectedColumn, sortDirection]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonChangePage(currentPage, paginationTotalRows || sortedData.length);\n\t}, [currentPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonChangeRowsPerPage(rowsPerPage, currentPage);\n\t}, [rowsPerPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\thandleChangePage(paginationDefaultPage);\n\t}, [paginationDefaultPage, paginationResetDefaultPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\tif (pagination && paginationServer && paginationTotalRows > 0) {\n\t\t\tconst updatedPage = getNumberOfPages(paginationTotalRows, rowsPerPage);\n\t\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\t\tif (currentPage !== recalculatedPage) {\n\t\t\t\thandleChangePage(recalculatedPage);\n\t\t\t}\n\t\t}\n\t}, [paginationTotalRows]);\n\n\tReact.useEffect(() => {\n\t\tdispatch({ type: 'CLEAR_SELECTED_ROWS', selectedRowsFlag: clearSelectedRows });\n\t}, [selectableRowsSingle, clearSelectedRows]);\n\n\tReact.useEffect(() => {\n\t\tif (!selectableRowSelected) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst preSelectedRows = sortedData.filter(row => selectableRowSelected(row));\n\t\t// if selectableRowsSingle mode then return the first match\n\t\tconst selected = selectableRowsSingle ? preSelectedRows.slice(0, 1) : preSelectedRows;\n\n\t\tdispatch({\n\t\t\ttype: 'SELECT_MULTIPLE_ROWS',\n\t\t\tkeyField,\n\t\t\tselectedRows: selected,\n\t\t\ttotalRows: sortedData.length,\n\t\t\tmergeSelections,\n\t\t});\n\n\t\t// We only want to update the selectedRowState if data changes\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [data, selectableRowSelected]);\n\n\tconst visibleRows = selectableRowsVisibleOnly ? tableRows : sortedData;\n\tconst showSelectAll = persistSelectedOnPageChange || selectableRowsSingle || selectableRowsNoSelectAll;\n\n\treturn (\n\t\t\n\t\t\t{showHeader() && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{subHeader && (\n\t\t\t\t\n\t\t\t\t\t{subHeaderComponent}\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{progressPending && !persistTableHead && {progressComponent}}\n\n\t\t\t\t\t\n\t\t\t\t\t\t{showTableHead() && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{selectableRows &&\n\t\t\t\t\t\t\t\t\t\t(showSelectAll ? (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t{expandableRows && !expandableRowsHideExpander && }\n\t\t\t\t\t\t\t\t\t{tableColumns.map(column => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!sortedData.length && !progressPending && {noDataComponent}}\n\n\t\t\t\t\t\t{progressPending && persistTableHead && {progressComponent}}\n\n\t\t\t\t\t\t{!progressPending && sortedData.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{tableRows.map((row, i) => {\n\t\t\t\t\t\t\t\t\tconst key = prop(row as TableRow, keyField) as string | number;\n\t\t\t\t\t\t\t\t\tconst id = isEmpty(key) ? i : key;\n\t\t\t\t\t\t\t\t\tconst selected = isRowSelected(row, selectedRows, keyField);\n\t\t\t\t\t\t\t\t\tconst expanderExpander = !!(expandableRows && expandableRowExpanded && expandableRowExpanded(row));\n\t\t\t\t\t\t\t\t\tconst expanderDisabled = !!(expandableRows && expandableRowDisabled && expandableRowDisabled(row));\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\n\t\t\t{enabledPagination && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n\nexport default React.memo(DataTable) as typeof DataTable;\n","import merge from 'deepmerge';\nimport { defaultThemes } from './themes';\nimport { TableStyles, Theme, Themes } from './types';\n\nexport const defaultStyles = (theme: Theme): TableStyles => ({\n\ttable: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\ttableWrapper: {\n\t\tstyle: {\n\t\t\tdisplay: 'table',\n\t\t},\n\t},\n\tresponsiveWrapper: {\n\t\tstyle: {},\n\t},\n\theader: {\n\t\tstyle: {\n\t\t\tfontSize: '22px',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '56px',\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '8px',\n\t\t},\n\t},\n\tsubHeader: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '52px',\n\t\t},\n\t},\n\thead: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tfontSize: '12px',\n\t\t\tfontWeight: 500,\n\t\t},\n\t},\n\theadRow: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '52px',\n\t\t\tborderBottomWidth: '1px',\n\t\t\tborderBottomColor: theme.divider.default,\n\t\t\tborderBottomStyle: 'solid',\n\t\t},\n\t\tdenseStyle: {\n\t\t\tminHeight: '32px',\n\t\t},\n\t},\n\theadCells: {\n\t\tstyle: {\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '16px',\n\t\t},\n\t\tdraggingStyle: {\n\t\t\tcursor: 'move',\n\t\t},\n\t},\n\tcontextMenu: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.context.background,\n\t\t\tfontSize: '18px',\n\t\t\tfontWeight: 400,\n\t\t\tcolor: theme.context.text,\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '8px',\n\t\t\ttransform: 'translate3d(0, -100%, 0)',\n\t\t\ttransitionDuration: '125ms',\n\t\t\ttransitionTimingFunction: 'cubic-bezier(0, 0, 0.2, 1)',\n\t\t\twillChange: 'transform',\n\t\t},\n\t\tactiveStyle: {\n\t\t\ttransform: 'translate3d(0, 0, 0)',\n\t\t},\n\t},\n\tcells: {\n\t\tstyle: {\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '16px',\n\t\t\twordBreak: 'break-word',\n\t\t},\n\t\tdraggingStyle: {},\n\t},\n\trows: {\n\t\tstyle: {\n\t\t\tfontSize: '13px',\n\t\t\tfontWeight: 400,\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '48px',\n\t\t\t'&:not(:last-of-type)': {\n\t\t\t\tborderBottomStyle: 'solid',\n\t\t\t\tborderBottomWidth: '1px',\n\t\t\t\tborderBottomColor: theme.divider.default,\n\t\t\t},\n\t\t},\n\t\tdenseStyle: {\n\t\t\tminHeight: '32px',\n\t\t},\n\t\tselectedHighlightStyle: {\n\t\t\t// use nth-of-type(n) to override other nth selectors\n\t\t\t'&:nth-of-type(n)': {\n\t\t\t\tcolor: theme.selected.text,\n\t\t\t\tbackgroundColor: theme.selected.default,\n\t\t\t\tborderBottomColor: theme.background.default,\n\t\t\t},\n\t\t},\n\t\thighlightOnHoverStyle: {\n\t\t\tcolor: theme.highlightOnHover.text,\n\t\t\tbackgroundColor: theme.highlightOnHover.default,\n\t\t\ttransitionDuration: '0.15s',\n\t\t\ttransitionProperty: 'background-color',\n\t\t\tborderBottomColor: theme.background.default,\n\t\t\toutlineStyle: 'solid',\n\t\t\toutlineWidth: '1px',\n\t\t\toutlineColor: theme.background.default,\n\t\t},\n\t\tstripedStyle: {\n\t\t\tcolor: theme.striped.text,\n\t\t\tbackgroundColor: theme.striped.default,\n\t\t},\n\t},\n\texpanderRow: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\texpanderCell: {\n\t\tstyle: {\n\t\t\tflex: '0 0 48px',\n\t\t},\n\t},\n\texpanderButton: {\n\t\tstyle: {\n\t\t\tcolor: theme.button.default,\n\t\t\tfill: theme.button.default,\n\t\t\tbackgroundColor: 'transparent',\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: '0.25s',\n\t\t\theight: '100%',\n\t\t\twidth: '100%',\n\t\t\t'&:hover:enabled': {\n\t\t\t\tcursor: 'pointer',\n\t\t\t},\n\t\t\t'&:disabled': {\n\t\t\t\tcolor: theme.button.disabled,\n\t\t\t},\n\t\t\t'&:hover:not(:disabled)': {\n\t\t\t\tcursor: 'pointer',\n\t\t\t\tbackgroundColor: theme.button.hover,\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tbackgroundColor: theme.button.focus,\n\t\t\t},\n\t\t\tsvg: {\n\t\t\t\tmargin: 'auto',\n\t\t\t},\n\t\t},\n\t},\n\tpagination: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.secondary,\n\t\t\tfontSize: '13px',\n\t\t\tminHeight: '56px',\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tborderTopStyle: 'solid',\n\t\t\tborderTopWidth: '1px',\n\t\t\tborderTopColor: theme.divider.default,\n\t\t},\n\t\tpageButtonsStyle: {\n\t\t\tborderRadius: '50%',\n\t\t\theight: '40px',\n\t\t\twidth: '40px',\n\t\t\tpadding: '8px',\n\t\t\tmargin: 'px',\n\t\t\tcursor: 'pointer',\n\t\t\ttransition: '0.4s',\n\t\t\tcolor: theme.button.default,\n\t\t\tfill: theme.button.default,\n\t\t\tbackgroundColor: 'transparent',\n\t\t\t'&:disabled': {\n\t\t\t\tcursor: 'unset',\n\t\t\t\tcolor: theme.button.disabled,\n\t\t\t\tfill: theme.button.disabled,\n\t\t\t},\n\t\t\t'&:hover:not(:disabled)': {\n\t\t\t\tbackgroundColor: theme.button.hover,\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tbackgroundColor: theme.button.focus,\n\t\t\t},\n\t\t},\n\t},\n\tnoData: {\n\t\tstyle: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\tprogress: {\n\t\tstyle: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n});\n\nexport const createStyles = (\n\tcustomStyles: TableStyles = {},\n\tthemeName = 'default',\n\tinherit: Themes = 'default',\n): TableStyles => {\n\tconst themeType = defaultThemes[themeName] ? themeName : inherit;\n\n\treturn merge(defaultStyles(defaultThemes[themeType]), customStyles);\n};\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addQuarters\"),require(\"date-fns/addYears\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subQuarters\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getISOWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/endOfYear\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-dom\"),require(\"react-popper\"),require(\"date-fns/set\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addQuarters\",\"date-fns/addYears\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subQuarters\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getISOWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/endOfYear\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-dom\",\"react-popper\",\"date-fns/set\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.addDays,e.addWeeks,e.addMonths,e.addQuarters,e.addYears,e.subDays,e.subWeeks,e.subMonths,e.subQuarters,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getISOWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.setMonth,e.setQuarter,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,null,e.endOfMonth,e.endOfYear,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactDOM,e.ReactPopper,e.set)}(this,(function(e,t,r,a,n,o,s,i,p,l,c,d,u,f,h,m,y,v,D,g,k,w,b,S,C,_,M,P,E,N,x,Y,O,I,T,R,L,F,A,W,q,K,B,Q,H,j,V,U,z,$,G,J,X,Z,ee,te,re,ae,ne,oe,se,ie,pe,le){\"use strict\";function ce(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var de=ce(t),ue=ce(a),fe=ce(n),he=ce(o),me=ce(s),ye=ce(i),ve=ce(p),De=ce(l),ge=ce(c),ke=ce(d),we=ce(u),be=ce(f),Se=ce(h),Ce=ce(m),_e=ce(y),Me=ce(v),Pe=ce(D),Ee=ce(g),Ne=ce(k),xe=ce(w),Ye=ce(b),Oe=ce(S),Ie=ce(C),Te=ce(_),Re=ce(M),Le=ce(P),Fe=ce(E),Ae=ce(N),We=ce(x),qe=ce(Y),Ke=ce(O),Be=ce(I),Qe=ce(T),He=ce(R),je=ce(L),Ve=ce(F),Ue=ce(A),ze=ce(W),$e=ce(q),Ge=ce(K),Je=ce(B),Xe=ce(Q),Ze=ce(H),et=ce(j),tt=ce(U),rt=ce(z),at=ce($),nt=ce(G),ot=ce(J),st=ce(X),it=ce(Z),pt=ce(ee),lt=ce(te),ct=ce(re),dt=ce(ae),ut=ce(ne),ft=ce(oe),ht=ce(se),mt=ce(ie),yt=ce(le);function vt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function Dt(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.excludeDateIntervals,s=t.includeDates,i=t.includeDateIntervals,p=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Jt(e,t)}))||o&&o.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||s&&!s.some((function(t){return Jt(e,t)}))||i&&!i.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||p&&!p(At(e))||!1}function or(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,a=t.excludeDateIntervals;return a&&a.length>0?a.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})})):r&&r.some((function(t){return Jt(e,t)}))||!1}function sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:Je.default(r),maxDate:tt.default(a)})||n&&n.some((function(t){return $t(e,t)}))||o&&!o.some((function(t){return $t(e,t)}))||s&&!s(At(e))||!1}function ir(e,t,r,a){var n=Le.default(e),o=Te.default(e),s=Le.default(t),i=Te.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Gt(e,t)}))||o&&!o.some((function(t){return Gt(e,t)}))||s&&!s(At(e))||!1}function lr(e,t,r){if(!he.default(t)||!he.default(r))return!1;var a=Le.default(t),n=Le.default(r);return a<=e&&n>=e}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate,i=new Date(e,0,1);return ur(i,{minDate:Ze.default(r),maxDate:rt.default(a)})||n&&n.some((function(e){return zt(i,e)}))||o&&!o.some((function(e){return zt(i,e)}))||s&&!s(At(i))||!1}function dr(e,t,r,a){var n=Le.default(e),o=Re.default(e),s=Le.default(t),i=Re.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function ur(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate;return r&&Ve.default(e,r)<0||a&&Ve.default(e,a)>0}function fr(e,t){return t.some((function(t){return xe.default(t)===xe.default(e)&&Ne.default(t)===Ne.default(e)}))}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,a=t.includeTimes,n=t.filterTime;return r&&fr(e,r)||a&&!fr(e,a)||n&&!n(e)||!1}function mr(e,t){var r=t.minTime,a=t.maxTime;if(!r||!a)throw new Error(\"Both minTime and maxTime props required\");var n,o=At(),s=qe.default(We.default(o,Ne.default(e)),xe.default(e)),i=qe.default(We.default(o,Ne.default(r)),xe.default(r)),p=qe.default(We.default(o,Ne.default(a)),xe.default(a));try{n=!ct.default(s,{start:i,end:p})}catch(e){n=!1}return n}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=_e.default(e,1);return r&&Ue.default(r,n)>0||a&&a.every((function(e){return Ue.default(e,n)>0}))||!1}function vr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=ke.default(e,1);return r&&Ue.default(n,r)>0||a&&a.every((function(e){return Ue.default(n,e)>0}))||!1}function Dr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Pe.default(e,1);return r&&ze.default(r,n)>0||a&&a.every((function(e){return ze.default(e,n)>0}))||!1}function gr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=be.default(e,1);return r&&ze.default(n,r)>0||a&&a.every((function(e){return ze.default(n,e)>0}))||!1}function kr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)>=0}));return He.default(a)}return r?He.default(r):t}function wr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)<=0}));return je.default(a)}return r?je.default(r):t}function br(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,a=0,n=e.length;a0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--holidays\",r=new Map;return e.forEach((function(e){var a=e.date,n=e.holidayName;if(fe.default(a)){var o=qt(a,\"MM.dd.yyyy\"),s=r.get(o)||{};if(!(\"className\"in s)||s.className!==t||(i=s.holidayNames,p=[n],i.length!==p.length||!i.every((function(e,t){return e===p[t]})))){var i,p;s.className=t;var l=s.holidayNames;s.holidayNames=l?[].concat(xt(l),[n]):[n],r.set(o,s)}}})),r}function Cr(e,t,r,a,n){for(var o=n.length,s=[],i=0;i1&&void 0!==arguments[1]?arguments[1]:Lt,r=Math.ceil(Le.default(e)/t)*t;return{startPeriod:r-(t-1),endPeriod:r}}function Pr(e){var t=e.getSeconds(),r=e.getMilliseconds();return dt.default(e.getTime()-1e3*t-r)}function Er(e,t,r,a){for(var n=[],o=0;o<2*t+1;o++){var s=e+t-o,i=!0;r&&(i=Le.default(r)<=s),a&&i&&(i=Le.default(a)>=s),i&&n.push(s)}return n}var Nr=function(e){_t(a,e);var r=Nt(a);function a(e){var n;kt(this,a),St(Et(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,t=n.state.yearsList.map((function(t){return de.default.createElement(\"div\",{className:e===t?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:t,onClick:n.onChange.bind(Et(n),t),\"aria-selected\":e===t?\"true\":void 0},e===t?de.default.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",t)})),r=n.props.minDate?Le.default(n.props.minDate):null,a=n.props.maxDate?Le.default(n.props.maxDate):null;return a&&n.state.yearsList.find((function(e){return e===a}))||t.unshift(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),r&&n.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),t})),St(Et(n),\"onChange\",(function(e){n.props.onChange(e)})),St(Et(n),\"handleClickOutside\",(function(){n.props.onCancel()})),St(Et(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),St(Et(n),\"incrementYears\",(function(){return n.shiftYears(1)})),St(Et(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,i=o||(s?10:5);return n.state={yearsList:Er(n.props.year,i,n.props.minDate,n.props.maxDate)},n.dropdownRef=t.createRef(),n}return bt(a,[{key:\"componentDidMount\",value:function(){var e=this.dropdownRef.current;if(e){var t=e.children?Array.from(e.children):null,r=t?t.find((function(e){return e.ariaSelected})):null;e.scrollTop=r?r.offsetTop+(r.clientHeight-e.clientHeight)/2:(e.scrollHeight-e.clientHeight)/2}}},{key:\"render\",value:function(){var e=ue.default({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return de.default.createElement(\"div\",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),a}(de.default.Component),xr=ht.default(Nr),Yr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0?n.get(o).holidayNames.join(\", \"):\"\"})),St(Et(e),\"getTabIndex\",(function(t,r){var a=t||e.props.selected,n=r||e.props.preSelection;return(!e.props.showWeekPicker||!e.props.showWeekNumber&&e.isStartOfWeek())&&(e.isKeyboardSelected()||e.isSameDay(a)&&Jt(n,a))?0:-1})),St(Et(e),\"handleFocusDay\",(function(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=!1;0===e.getTabIndex()&&!r.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(a=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(a=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(a=!0),e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()&&(a=!1),e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()&&(a=!1)),a&&(null===(t=e.dayEl.current)||void 0===t||t.focus({preventScroll:!0}))})),St(Et(e),\"renderDayContents\",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Oe.default(e.props.day),e.props.day):Oe.default(e.props.day)})),St(Et(e),\"render\",(function(){return de.default.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"option\",title:e.getTitle(),\"aria-disabled\":e.isDisabled(),\"aria-current\":e.isCurrentDay()?\"date\":void 0,\"aria-selected\":e.isSelected()||e.isInRange()},e.renderDayContents(),\"\"!==e.getTitle()&&de.default.createElement(\"span\",{className:\"holiday-overlay\"},e.getTitle()))})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),qr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&Jt(e.props.date,e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement&&document.activeElement.classList.contains(\"react-datepicker__week-number\")&&(r=!0)),r&&e.weekNumberEl.current&&e.weekNumberEl.current.focus({preventScroll:!0})})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusWeekNumber()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusWeekNumber(e)}},{key:\"render\",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,a=void 0===r?\"week \":r,n={\"react-datepicker__week-number\":!0,\"react-datepicker__week-number--clickable\":!!e.onClick,\"react-datepicker__week-number--selected\":Jt(this.props.date,this.props.selected),\"react-datepicker__week-number--keyboard-selected\":this.isKeyboardSelected()};return de.default.createElement(\"div\",{ref:this.weekNumberEl,className:ue.default(n),\"aria-label\":\"\".concat(a,\" \").concat(this.props.weekNumber),onClick:this.handleClick,onKeyDown:this.handleOnKeyDown,tabIndex:this.getTabIndex()},t)}}],[{key:\"defaultProps\",get:function(){return{ariaLabelPrefix:\"week \"}}}]),r}(de.default.Component),Kr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o=6,i=!r&&!e.isWeekInMonth(o);if(s||i){if(!e.props.peekNextMonth)break;n=!0}}return t})),St(Et(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Ht(Ke.default(e.props.day,r)),t)})),St(Et(e),\"onMonthMouseEnter\",(function(t){e.handleDayMouseEnter(Ht(Ke.default(e.props.day,t)))})),St(Et(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),St(Et(e),\"onMonthKeyDown\",(function(t,r){var a=e.props,n=a.selected,o=a.preSelection,s=a.disabledKeyboardNavigation,i=a.showTwoColumnMonthYearPicker,p=a.showFourColumnMonthYearPicker,l=a.setPreSelection,c=t.key;if(\"Tab\"!==c&&t.preventDefault(),!s){var d=Vr(p,i),u=jr[d].verticalNavigationOffset,f=jr[d].grid;switch(c){case\"Enter\":e.onMonthClick(t,r),l(n);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,ke.default(o,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,_e.default(o,1));break;case\"ArrowUp\":e.handleMonthNavigation(f[0].includes(r)?r+12-u:r-u,_e.default(o,u));break;case\"ArrowDown\":e.handleMonthNavigation(f[f.length-1].includes(r)?r-12+u:r+u,ke.default(o,u))}}})),St(Et(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(Vt(Be.default(e.props.day,r)),t)})),St(Et(e),\"onQuarterMouseEnter\",(function(t){e.handleDayMouseEnter(Vt(Be.default(e.props.day,t)))})),St(Et(e),\"handleQuarterNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.QUARTER_REFS[t-1].current&&e.QUARTER_REFS[t-1].current.focus())})),St(Et(e),\"onQuarterKeyDown\",(function(t,r){var a=t.key;if(!e.props.disabledKeyboardNavigation)switch(a){case\"Enter\":e.onQuarterClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleQuarterNavigation(4===r?1:r+1,we.default(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleQuarterNavigation(1===r?4:r-1,Me.default(e.props.preSelection,1))}})),St(Et(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.monthClassName,d=r.excludeDates,u=r.includeDates,f=c?c(Ke.default(a,t)):void 0,h=Ke.default(a,t);return ue.default(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),f,{\"react-datepicker__month-text--disabled\":(i||p||d||u)&&sr(h,e.props),\"react-datepicker__month-text--selected\":e.isSelectedMonth(a,t,s),\"react-datepicker__month-text--keyboard-selected\":!e.props.disabledKeyboardNavigation&&Te.default(l)===t,\"react-datepicker__month-text--in-selecting-range\":e.isInSelectingRangeMonth(t),\"react-datepicker__month-text--in-range\":ir(n,o,t,a),\"react-datepicker__month-text--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month-text--range-end\":e.isRangeEndMonth(t),\"react-datepicker__month-text--selecting-range-start\":e.isSelectingMonthRangeStart(t),\"react-datepicker__month-text--selecting-range-end\":e.isSelectingMonthRangeEnd(t),\"react-datepicker__month-text--today\":e.isCurrentMonth(a,t)})})),St(Et(e),\"getTabIndex\",(function(t){var r=Te.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getQuarterTabIndex\",(function(t){var r=Re.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getAriaLabel\",(function(t){var r=e.props,a=r.chooseDayAriaLabelPrefix,n=void 0===a?\"Choose\":a,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,i=r.day,p=Ke.default(i,t),l=e.isDisabled(p)||e.isExcluded(p)?s:n;return\"\".concat(l,\" \").concat(qt(p,\"MMMM yyyy\"))})),St(Et(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.disabledKeyboardNavigation;return ue.default(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter-text--disabled\":(i||p)&&pr(Be.default(a,t),e.props),\"react-datepicker__quarter-text--selected\":e.isSelectedQuarter(a,t,s),\"react-datepicker__quarter-text--keyboard-selected\":!c&&Re.default(l)===t,\"react-datepicker__quarter-text--in-selecting-range\":e.isInSelectingRangeQuarter(t),\"react-datepicker__quarter-text--in-range\":dr(n,o,t,a),\"react-datepicker__quarter-text--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter-text--range-end\":e.isRangeEndQuarter(t)})})),St(Et(e),\"getMonthContent\",(function(t){var r=e.props,a=r.showFullMonthYearPicker,n=r.renderMonthContent,o=r.locale,s=r.day,i=ar(t,o),p=rr(t,o);return n?n(t,i,p,s):a?p:i})),St(Et(e),\"getQuarterContent\",(function(t){var r=e.props,a=r.renderQuarterContent,n=function(e,t){return qt(Be.default(At(),e),\"QQQ\",t)}(t,r.locale);return a?a(t,n):n})),St(Et(e),\"renderMonths\",(function(){var t=e.props,r=t.showTwoColumnMonthYearPicker,a=t.showFourColumnMonthYearPicker,n=t.day,o=t.selected;return jr[Vr(a,r)].grid.map((function(t,r){return de.default.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:r},t.map((function(t,r){return de.default.createElement(\"div\",{ref:e.MONTH_REFS[t],key:r,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},onMouseEnter:function(){return e.onMonthMouseEnter(t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:\"option\",\"aria-label\":e.getAriaLabel(t),\"aria-current\":e.isCurrentMonth(n,t)?\"date\":void 0,\"aria-selected\":e.isSelectedMonth(n,t,o)},e.getMonthContent(t))})))}))})),St(Et(e),\"renderQuarters\",(function(){var t=e.props,r=t.day,a=t.selected;return de.default.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(t,n){return de.default.createElement(\"div\",{key:n,ref:e.QUARTER_REFS[n],role:\"option\",onClick:function(r){e.onQuarterClick(r,t)},onKeyDown:function(r){e.onQuarterKeyDown(r,t)},onMouseEnter:function(){return e.onQuarterMouseEnter(t)},className:e.getQuarterClassNames(t),\"aria-selected\":e.isSelectedQuarter(r,t,a),tabIndex:e.getQuarterTabIndex(t),\"aria-current\":e.isCurrentQuarter(r,t)?\"date\":void 0},e.getQuarterContent(t))})))})),St(Et(e),\"getClassNames\",(function(){var t=e.props,r=t.selectingDate,a=t.selectsStart,n=t.selectsEnd,o=t.showMonthYearPicker,s=t.showQuarterYearPicker,i=t.showWeekPicker;return ue.default(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||n)},{\"react-datepicker__monthPicker\":o},{\"react-datepicker__quarterPicker\":s},{\"react-datepicker__weekPicker\":i})})),e}return bt(r,[{key:\"render\",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,a=e.day,n=e.ariaLabelPrefix,o=void 0===n?\"month \":n;return de.default.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(o,\" \").concat(qt(a,\"yyyy-MM\")),role:\"listbox\"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),zr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{}).className||\"\").split(/\\s+/);return Xr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&a.props.onDropdownFocus()})),St(Et(a),\"getDateInView\",(function(){var e=a.props,t=e.preSelection,r=e.selected,n=e.openToDate,o=kr(a.props),s=wr(a.props),i=At(),p=n||r||t;return p||(o&<.default(i,o)?o:s&&pt.default(i,s)?s:i)})),St(Et(a),\"increaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:ke.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"decreaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:_e.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"handleDayClick\",(function(e,t,r){a.props.onSelect(e,t,r),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleDayMouseEnter\",(function(e){a.setState({selectingDate:e}),a.props.onDayMouseEnter&&a.props.onDayMouseEnter(e)})),St(Et(a),\"handleMonthMouseLeave\",(function(){a.setState({selectingDate:null}),a.props.onMonthMouseLeave&&a.props.onMonthMouseLeave()})),St(Et(a),\"handleYearMouseEnter\",(function(e,t){a.setState({selectingDate:Qe.default(At(),t)}),a.props.onYearMouseEnter&&a.props.onYearMouseEnter(e,t)})),St(Et(a),\"handleYearMouseLeave\",(function(e,t){a.props.onYearMouseLeave&&a.props.onYearMouseLeave(e,t)})),St(Et(a),\"handleYearChange\",(function(e){a.props.onYearChange&&(a.props.onYearChange(e),a.setState({isRenderAriaLiveMessage:!0})),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleMonthChange\",(function(e){a.handleCustomMonthChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleCustomMonthChange\",(function(e){a.props.onMonthChange&&(a.props.onMonthChange(e),a.setState({isRenderAriaLiveMessage:!0}))})),St(Et(a),\"handleMonthYearChange\",(function(e){a.handleYearChange(e),a.handleMonthChange(e)})),St(Et(a),\"changeYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(r,e)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"changeMonth\",(function(e){a.setState((function(t){var r=t.date;return{date:Ke.default(r,e)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"changeMonthYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(Ke.default(r,Te.default(e)),Le.default(e))}}),(function(){return a.handleMonthYearChange(a.state.date)}))})),St(Et(a),\"header\",(function(){var e=Qt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,a.props.locale,a.props.calendarStartDay),t=[];return a.props.showWeekNumbers&&t.push(de.default.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},a.props.weekLabel||\"#\")),t.concat([0,1,2,3,4,5,6].map((function(t){var r=De.default(e,t),n=a.formatWeekday(r,a.props.locale),o=a.props.weekDayClassName?a.props.weekDayClassName(r):void 0;return de.default.createElement(\"div\",{key:t,className:ue.default(\"react-datepicker__day-name\",o)},n)})))})),St(Et(a),\"formatWeekday\",(function(e,t){return a.props.formatWeekDay?function(e,t,r){return t(qt(e,\"EEEE\",r))}(e,a.props.formatWeekDay,t):a.props.useWeekdaysShort?function(e,t){return qt(e,\"EEE\",t)}(e,t):function(e,t){return qt(e,\"EEEEEE\",t)}(e,t)})),St(Et(a),\"decreaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:Pe.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"clearSelectingDate\",(function(){a.setState({selectingDate:null})})),St(Et(a),\"renderPreviousButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=Dr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(jt(Pe.default(e,n)),n).endPeriod,s=r&&Le.default(r);return s&&s>o||!1}(a.state.date,a.props);break;default:e=yr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],r=a.decreaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.decreaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--previous--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.previousMonthButtonLabel,i=o.previousYearButtonLabel,p=a.props,l=p.previousMonthAriaLabel,c=void 0===l?\"string\"==typeof s?s:\"Previous Month\":l,d=p.previousYearAriaLabel,u=void 0===d?\"string\"==typeof i?i:\"Previous Year\":d;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:c},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--previous\"].join(\" \")},n?a.props.previousYearButtonLabel:a.props.previousMonthButtonLabel))}}})),St(Et(a),\"increaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:be.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"renderNextButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=gr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(be.default(e,n),n).startPeriod,s=r&&Le.default(r);return s&&s0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=[\"react-datepicker__current-month\"];return a.props.showYearDropdown&&t.push(\"react-datepicker__current-month--hasYearDropdown\"),a.props.showMonthDropdown&&t.push(\"react-datepicker__current-month--hasMonthDropdown\"),a.props.showMonthYearDropdown&&t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),de.default.createElement(\"div\",{className:t.join(\" \")},qt(e,a.props.dateFormat,a.props.locale))})),St(Et(a),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showYearDropdown&&!e)return de.default.createElement(Yr,{adjustDateOnChange:a.props.adjustDateOnChange,date:a.state.date,onSelect:a.props.onSelect,setOpen:a.props.setOpen,dropdownMode:a.props.dropdownMode,onChange:a.changeYear,minDate:a.props.minDate,maxDate:a.props.maxDate,year:Le.default(a.state.date),scrollableYearDropdown:a.props.scrollableYearDropdown,yearDropdownItemNumber:a.props.yearDropdownItemNumber})})),St(Et(a),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthDropdown&&!e)return de.default.createElement(Tr,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,onChange:a.changeMonth,month:Te.default(a.state.date),useShortMonthInDropdown:a.props.useShortMonthInDropdown})})),St(Et(a),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthYearDropdown&&!e)return de.default.createElement(Ar,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,dateFormat:a.props.dateFormat,onChange:a.changeMonthYear,minDate:a.props.minDate,maxDate:a.props.maxDate,date:a.state.date,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown})})),St(Et(a),\"handleTodayButtonClick\",(function(e){a.props.onSelect(Ut(),e),a.props.setPreSelection&&a.props.setPreSelection(Ut())})),St(Et(a),\"renderTodayButton\",(function(){if(a.props.todayButton&&!a.props.showTimeSelectOnly)return de.default.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return a.handleTodayButtonClick(e)}},a.props.todayButton)})),St(Et(a),\"renderDefaultHeader\",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement(\"div\",{className:\"react-datepicker__header \".concat(a.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},a.renderCurrentMonth(t),de.default.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),onFocus:a.handleDropdownFocus},a.renderMonthDropdown(0!==r),a.renderMonthYearDropdown(0!==r),a.renderYearDropdown(0!==r)),de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(a.props.showTimeSelect&&!a.state.monthContainer||a.props.showTimeSelectOnly)return null;var n=yr(a.state.date,a.props),o=vr(a.state.date,a.props),s=Dr(a.state.date,a.props),i=gr(a.state.date,a.props),p=!a.props.showMonthYearPicker&&!a.props.showQuarterYearPicker&&!a.props.showYearPicker;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:a.props.onDropdownFocus},a.props.renderCustomHeader(Dt(Dt({},a.state),{},{customHeaderCount:r,monthDate:t,changeMonth:a.changeMonth,changeYear:a.changeYear,decreaseMonth:a.decreaseMonth,increaseMonth:a.increaseMonth,decreaseYear:a.decreaseYear,increaseYear:a.increaseYear,prevMonthButtonDisabled:n,nextMonthButtonDisabled:o,prevYearButtonDisabled:s,nextYearButtonDisabled:i})),p&&de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderYearHeader\",(function(){var e=a.state.date,t=a.props,r=t.showYearPicker,n=Mr(e,t.yearItemNumber),o=n.startPeriod,s=n.endPeriod;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},r?\"\".concat(o,\" - \").concat(s):Le.default(e))})),St(Et(a),\"renderHeader\",(function(e){switch(!0){case void 0!==a.props.renderCustomHeader:return a.renderCustomHeader(e);case a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker:return a.renderYearHeader(e);default:return a.renderDefaultHeader(e)}})),St(Et(a),\"renderMonths\",(function(){var e;if(!a.props.showTimeSelectOnly&&!a.props.showYearPicker){for(var t=[],r=a.props.showPreviousMonths?a.props.monthsShown-1:0,n=_e.default(a.state.date,r),o=null!==(e=a.props.monthSelectedIn)&&void 0!==e?e:r,s=0;s0;t.push(de.default.createElement(\"div\",{key:l,ref:function(e){a.monthContainer=e},className:\"react-datepicker__month-container\"},a.renderHeader({monthDate:p,i:s}),de.default.createElement(Ur,{chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,ariaLabelPrefix:a.props.monthAriaLabelPrefix,onChange:a.changeMonthYear,day:p,dayClassName:a.props.dayClassName,calendarStartDay:a.props.calendarStartDay,monthClassName:a.props.monthClassName,onDayClick:a.handleDayClick,handleOnKeyDown:a.props.handleOnDayKeyDown,onDayMouseEnter:a.handleDayMouseEnter,onMouseLeave:a.handleMonthMouseLeave,onWeekSelect:a.props.onWeekSelect,orderInDisplay:s,formatWeekNumber:a.props.formatWeekNumber,locale:a.props.locale,minDate:a.props.minDate,maxDate:a.props.maxDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,highlightDates:a.props.highlightDates,holidays:a.props.holidays,selectingDate:a.state.selectingDate,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,inline:a.props.inline,shouldFocusDayInline:a.props.shouldFocusDayInline,fixedHeight:a.props.fixedHeight,filterDate:a.props.filterDate,preSelection:a.props.preSelection,setPreSelection:a.props.setPreSelection,selected:a.props.selected,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showWeekNumbers:a.props.showWeekNumbers,startDate:a.props.startDate,endDate:a.props.endDate,peekNextMonth:a.props.peekNextMonth,setOpen:a.props.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,isInputFocused:a.props.isInputFocused,containerRef:a.containerRef,monthShowsDuplicateDaysEnd:c,monthShowsDuplicateDaysStart:d})))}return t}})),St(Et(a),\"renderYears\",(function(){if(!a.props.showTimeSelectOnly)return a.props.showYearPicker?de.default.createElement(\"div\",{className:\"react-datepicker__year--container\"},a.renderHeader(),de.default.createElement($r,Ct({onDayClick:a.handleDayClick,selectingDate:a.state.selectingDate,clearSelectingDate:a.clearSelectingDate,date:a.state.date},a.props,{onYearMouseEnter:a.handleYearMouseEnter,onYearMouseLeave:a.handleYearMouseLeave}))):void 0})),St(Et(a),\"renderTimeSection\",(function(){if(a.props.showTimeSelect&&(a.state.monthContainer||a.props.showTimeSelectOnly))return de.default.createElement(zr,{selected:a.props.selected,openToDate:a.props.openToDate,onChange:a.props.onTimeChange,timeClassName:a.props.timeClassName,format:a.props.timeFormat,includeTimes:a.props.includeTimes,intervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,todayButton:a.props.todayButton,showMonthDropdown:a.props.showMonthDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,monthRef:a.state.monthContainer,injectTimes:a.props.injectTimes,locale:a.props.locale,handleOnKeyDown:a.props.handleOnKeyDown,showTimeSelectOnly:a.props.showTimeSelectOnly})})),St(Et(a),\"renderInputTimeSection\",(function(){var e=new Date(a.props.selected),t=Wt(e)&&Boolean(a.props.selected)?\"\".concat(_r(e.getHours()),\":\").concat(_r(e.getMinutes())):\"\";if(a.props.showTimeInput)return de.default.createElement(Gr,{date:e,timeString:t,timeInputLabel:a.props.timeInputLabel,onChange:a.props.onTimeChange,customTimeInput:a.props.customTimeInput})})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=Mr(a.state.date,a.props.yearItemNumber),r=t.startPeriod,n=t.endPeriod;return e=a.props.showYearPicker?\"\".concat(r,\" - \").concat(n):a.props.showMonthYearPicker||a.props.showQuarterYearPicker?Le.default(a.state.date):\"\".concat(rr(Te.default(a.state.date),a.props.locale),\" \").concat(Le.default(a.state.date)),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},a.state.isRenderAriaLiveMessage&&e)})),St(Et(a),\"renderChildren\",(function(){if(a.props.children)return de.default.createElement(\"div\",{className:\"react-datepicker__children-container\"},a.props.children)})),a.containerRef=de.default.createRef(),a.state={date:a.getDateInView(),selectingDate:null,monthContainer:null,isRenderAriaLiveMessage:!1},a}return bt(r,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){var t=this;if(!this.props.preSelection||Jt(this.props.preSelection,e.preSelection)&&this.props.monthSelectedIn===e.monthSelectedIn)this.props.openToDate&&!Jt(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate});else{var r=!$t(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},(function(){return r&&t.handleCustomMonthChange(t.state.date)}))}}},{key:\"render\",value:function(){var e=this.props.container||Jr;return de.default.createElement(\"div\",{style:{display:\"contents\"},ref:this.containerRef},de.default.createElement(e,{className:ue.default(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))}}],[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:Lt}}}]),r}(de.default.Component),ea=function(e){var t=e.icon,r=e.className,a=void 0===r?\"\":r,n=e.onClick,o=\"react-datepicker__calendar-icon\";return de.default.isValidElement(t)?de.default.cloneElement(t,{className:\"\".concat(t.props.className||\"\",\" \").concat(o,\" \").concat(a),onClick:function(e){\"function\"==typeof t.props.onClick&&t.props.onClick(e),\"function\"==typeof n&&n(e)}}):\"string\"==typeof t?de.default.createElement(\"i\",{className:\"\".concat(o,\" \").concat(t,\" \").concat(a),\"aria-hidden\":\"true\",onClick:n}):de.default.createElement(\"svg\",{className:\"\".concat(o,\" \").concat(a),xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 448 512\",onClick:n},de.default.createElement(\"path\",{d:\"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"}))},ta=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),(a=t.call(this,e)).el=document.createElement(\"div\"),a}return bt(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return mt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),ra=function(e){return!e.disabled&&-1!==e.tabIndex},aa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(ra)})),St(Et(a),\"handleFocusStart\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[e.length-1].focus()})),St(Et(a),\"handleFocusEnd\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[0].focus()})),a.tabLoopRef=de.default.createRef(),a}return bt(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),na=function(e){_t(r,e);var t=Nt(r);function r(){return kt(this,r),t.apply(this,arguments)}return bt(r,[{key:\"render\",value:function(){var e,t=this.props,r=t.className,a=t.wrapperClassName,n=t.hidePopper,o=t.popperComponent,s=t.popperModifiers,i=t.popperPlacement,p=t.popperProps,l=t.targetComponent,c=t.enableTabLoop,d=t.popperOnKeyDown,u=t.portalId,f=t.portalHost;if(!n){var h=ue.default(\"react-datepicker-popper\",r);e=de.default.createElement(pe.Popper,Ct({modifiers:s,placement:i},p),(function(e){var t=e.ref,r=e.style,a=e.placement,n=e.arrowProps;return de.default.createElement(aa,{enableTabLoop:c},de.default.createElement(\"div\",{ref:t,style:r,className:h,\"data-placement\":a,onKeyDown:d},de.default.cloneElement(o,{arrowProps:n})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),u&&!n&&(e=de.default.createElement(ta,{portalId:u,portalHost:f},e));var m=ue.default(\"react-datepicker-wrapper\",a);return de.default.createElement(pe.Manager,{className:\"react-datepicker-manager\"},de.default.createElement(pe.Reference,null,(function(e){var t=e.ref;return de.default.createElement(\"div\",{ref:t,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(de.default.Component),oa=\"react-datepicker-ignore-onclickoutside\",sa=ht.default(Zr);var ia=\"Date input not valid.\",pa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getPreSelection\",(function(){return a.props.openToDate?a.props.openToDate:a.props.selectsEnd&&a.props.startDate?a.props.startDate:a.props.selectsStart&&a.props.endDate?a.props.endDate:At()})),St(Et(a),\"modifyHolidays\",(function(){var e;return null===(e=a.props.holidays)||void 0===e?void 0:e.reduce((function(e,t){var r=new Date(t.date);return he.default(r)?[].concat(xt(e),[Dt(Dt({},t),{},{date:r})]):e}),[])})),St(Et(a),\"calcInitialState\",(function(){var e,t=a.getPreSelection(),r=kr(a.props),n=wr(a.props),o=r&<.default(t,$e.default(r))?r:n&&pt.default(t,et.default(n))?n:t;return{open:a.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=a.props.selectsRange?a.props.startDate:a.props.selected)&&void 0!==e?e:o,highlightDates:br(a.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1}})),St(Et(a),\"clearPreventFocusTimeout\",(function(){a.preventFocusTimeout&&clearTimeout(a.preventFocusTimeout)})),St(Et(a),\"setFocus\",(function(){a.input&&a.input.focus&&a.input.focus({preventScroll:!0})})),St(Et(a),\"setBlur\",(function(){a.input&&a.input.blur&&a.input.blur(),a.cancelFocusInput()})),St(Et(a),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.setState({open:e,preSelection:e&&a.state.open?a.state.preSelection:a.calcInitialState().preSelection,lastPreSelectChange:ca},(function(){e||a.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&a.setBlur(),a.setState({inputValue:null})}))}))})),St(Et(a),\"inputOk\",(function(){return fe.default(a.state.preSelection)})),St(Et(a),\"isCalendarOpen\",(function(){return void 0===a.props.open?a.state.open&&!a.props.disabled&&!a.props.readOnly:a.props.open})),St(Et(a),\"handleFocus\",(function(e){a.state.preventFocus||(a.props.onFocus(e),a.props.preventOpenOnFocus||a.props.readOnly||a.setOpen(!0)),a.setState({focused:!0})})),St(Et(a),\"sendFocusBackToInput\",(function(){a.preventFocusTimeout&&a.clearPreventFocusTimeout(),a.setState({preventFocus:!0},(function(){a.preventFocusTimeout=setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))}))})),St(Et(a),\"cancelFocusInput\",(function(){clearTimeout(a.inputFocusTimeout),a.inputFocusTimeout=null})),St(Et(a),\"deferFocusInput\",(function(){a.cancelFocusInput(),a.inputFocusTimeout=setTimeout((function(){return a.setFocus()}),1)})),St(Et(a),\"handleDropdownFocus\",(function(){a.cancelFocusInput()})),St(Et(a),\"handleBlur\",(function(e){(!a.state.open||a.props.withPortal||a.props.showTimeInput)&&a.props.onBlur(e),a.setState({focused:!1})})),St(Et(a),\"handleCalendarClickOutside\",(function(e){a.props.inline||a.setOpen(!1),a.props.onClickOutside(e),a.props.withPortal&&e.preventDefault()})),St(Et(a),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&(c=ut.default(o,s.slice(0,o.length),new Date)),Wt(c)||(c=new Date(o))),Wt(c)&&u?c:null));a.props.showTimeSelectOnly&&a.props.selected&&f&&!Jt(f,a.props.selected)&&(f=yt.default(a.props.selected,{hours:xe.default(f),minutes:Ne.default(f),seconds:Ee.default(f)})),!f&&n.target.value||(a.props.showWeekPicker&&(f=Qt(f,a.props.locale,a.props.calendarStartDay)),a.setSelected(f,n,!0))}})),St(Et(a),\"handleSelect\",(function(e,t,r){if(a.props.shouldCloseOnSelect&&!a.props.showTimeSelect&&a.sendFocusBackToInput(),a.props.onChangeRaw&&a.props.onChangeRaw(t),a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay)),a.setSelected(e,t,!1,r),a.props.showDateSelect&&a.setState({isRenderAriaLiveMessage:!0}),!a.props.shouldCloseOnSelect||a.props.showTimeSelect)a.setPreSelection(e);else if(!a.props.inline){a.props.selectsRange||a.setOpen(!1);var n=a.props,o=n.startDate,s=n.endDate;!o||s||lt.default(e,o)||a.setOpen(!1)}})),St(Et(a),\"setSelected\",(function(e,t,r,n){var o=e;if(a.props.showYearPicker){if(null!==o&&cr(Le.default(o),a.props))return}else if(a.props.showMonthYearPicker){if(null!==o&&sr(o,a.props))return}else if(null!==o&&nr(o,a.props))return;var s=a.props,i=s.onChange,p=s.selectsRange,l=s.startDate,c=s.endDate;if(!Xt(a.props.selected,o)||a.props.allowSameDay||p)if(null!==o&&(!a.props.selected||r&&(a.props.showTimeSelect||a.props.showTimeSelectOnly||a.props.showTimeInput)||(o=Bt(o,{hour:xe.default(a.props.selected),minute:Ne.default(a.props.selected),second:Ee.default(a.props.selected)})),a.props.inline||a.setState({preSelection:o}),a.props.focusSelectedMonth||a.setState({monthSelectedIn:n})),p){var d=l&&!c,u=l&&c;!l&&!c?i([o,null],t):d&&(lt.default(o,l)?i([o,null],t):i([l,o],t)),u&&i([o,null],t)}else i(o,t);r||(a.props.onSelect(o,t),a.setState({inputValue:null}))})),St(Et(a),\"setPreSelection\",(function(e){var t=void 0!==a.props.minDate,r=void 0!==a.props.maxDate,n=!0;if(e){a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay));var o=$e.default(e);if(t&&r)n=Zt(e,a.props.minDate,a.props.maxDate);else if(t){var s=$e.default(a.props.minDate);n=pt.default(e,s)||Xt(o,s)}else if(r){var i=et.default(a.props.maxDate);n=lt.default(e,i)||Xt(o,i)}}n&&a.setState({preSelection:e})})),St(Et(a),\"toggleCalendar\",(function(){a.setOpen(!a.state.open)})),St(Et(a),\"handleTimeChange\",(function(e){var t=a.props.selected?a.props.selected:a.getPreSelection(),r=a.props.selected?e:Bt(t,{hour:xe.default(e),minute:Ne.default(e)});a.setState({preSelection:r}),a.props.onChange(r),a.props.shouldCloseOnSelect&&(a.sendFocusBackToInput(),a.setOpen(!1)),a.props.showTimeInput&&a.setOpen(!0),(a.props.showTimeSelectOnly||a.props.showTimeSelect)&&a.setState({isRenderAriaLiveMessage:!0}),a.setState({inputValue:null})})),St(Et(a),\"onInputClick\",(function(){a.props.disabled||a.props.readOnly||a.setOpen(!0),a.props.onInputClick()})),St(Et(a),\"onInputKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key;if(a.state.open||a.props.inline||a.props.preventOpenOnFocus){if(a.state.open){if(\"ArrowDown\"===t||\"ArrowUp\"===t){e.preventDefault();var r=a.props.showWeekPicker&&a.props.showWeekNumbers?'.react-datepicker__week-number[tabindex=\"0\"]':'.react-datepicker__day[tabindex=\"0\"]',n=a.calendar.componentNode&&a.calendar.componentNode.querySelector(r);return void(n&&n.focus({preventScroll:!0}))}var o=At(a.state.preSelection);\"Enter\"===t?(e.preventDefault(),a.inputOk()&&a.state.lastPreSelectChange===ca?(a.handleSelect(o,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(o)):a.setOpen(!1)):\"Escape\"===t?(e.preventDefault(),a.sendFocusBackToInput(),a.setOpen(!1)):\"Tab\"===t&&a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia})}}else\"ArrowDown\"!==t&&\"ArrowUp\"!==t&&\"Enter\"!==t||a.onInputClick()})),St(Et(a),\"onPortalKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.setState({preventFocus:!0},(function(){a.setOpen(!1),setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))})))})),St(Et(a),\"onDayKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key,r=At(a.state.preSelection);if(\"Enter\"===t)e.preventDefault(),a.handleSelect(r,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(r);else if(\"Escape\"===t)e.preventDefault(),a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia});else if(!a.props.disabledKeyboardNavigation){var n;switch(t){case\"ArrowLeft\":n=a.props.showWeekPicker?Ce.default(r,1):Se.default(r,1);break;case\"ArrowRight\":n=a.props.showWeekPicker?ge.default(r,1):De.default(r,1);break;case\"ArrowUp\":n=Ce.default(r,1);break;case\"ArrowDown\":n=ge.default(r,1);break;case\"PageUp\":n=_e.default(r,1);break;case\"PageDown\":n=ke.default(r,1);break;case\"Home\":n=Pe.default(r,1);break;case\"End\":n=be.default(r,1);break;default:n=null}if(!n)return void(a.props.onInputError&&a.props.onInputError({code:1,msg:ia}));if(e.preventDefault(),a.setState({lastPreSelectChange:ca}),a.props.adjustDateOnChange&&a.setSelected(n),a.setPreSelection(n),a.props.inline){var o=Te.default(r),s=Te.default(n),i=Le.default(r),p=Le.default(n);o!==s||i!==p?a.setState({shouldFocusDayInline:!0}):a.setState({shouldFocusDayInline:!1})}}})),St(Et(a),\"onPopperKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.sendFocusBackToInput())})),St(Et(a),\"onClearClick\",(function(e){e&&e.preventDefault&&e.preventDefault(),a.sendFocusBackToInput(),a.props.selectsRange?a.props.onChange([null,null],e):a.props.onChange(null,e),a.setState({inputValue:null})})),St(Et(a),\"clear\",(function(){a.onClearClick()})),St(Et(a),\"onScroll\",(function(e){\"boolean\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||a.setOpen(!1):\"function\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll(e)&&a.setOpen(!1)})),St(Et(a),\"renderCalendar\",(function(){return a.props.inline||a.isCalendarOpen()?de.default.createElement(sa,{ref:function(e){a.calendar=e},locale:a.props.locale,calendarStartDay:a.props.calendarStartDay,chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,monthAriaLabelPrefix:a.props.monthAriaLabelPrefix,adjustDateOnChange:a.props.adjustDateOnChange,setOpen:a.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,dateFormat:a.props.dateFormatCalendar,useWeekdaysShort:a.props.useWeekdaysShort,formatWeekDay:a.props.formatWeekDay,dropdownMode:a.props.dropdownMode,selected:a.props.selected,preSelection:a.state.preSelection,onSelect:a.handleSelect,onWeekSelect:a.props.onWeekSelect,openToDate:a.props.openToDate,minDate:a.props.minDate,maxDate:a.props.maxDate,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,startDate:a.props.startDate,endDate:a.props.endDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,filterDate:a.props.filterDate,onClickOutside:a.handleCalendarClickOutside,formatWeekNumber:a.props.formatWeekNumber,highlightDates:a.state.highlightDates,holidays:Sr(a.modifyHolidays()),includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,includeTimes:a.props.includeTimes,injectTimes:a.props.injectTimes,inline:a.props.inline,shouldFocusDayInline:a.state.shouldFocusDayInline,peekNextMonth:a.props.peekNextMonth,showMonthDropdown:a.props.showMonthDropdown,showPreviousMonths:a.props.showPreviousMonths,useShortMonthInDropdown:a.props.useShortMonthInDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showWeekNumbers:a.props.showWeekNumbers,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,forceShowMonthNavigation:a.props.forceShowMonthNavigation,showDisabledMonthNavigation:a.props.showDisabledMonthNavigation,scrollableYearDropdown:a.props.scrollableYearDropdown,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown,todayButton:a.props.todayButton,weekLabel:a.props.weekLabel,outsideClickIgnoreClass:oa,fixedHeight:a.props.fixedHeight,monthsShown:a.props.monthsShown,monthSelectedIn:a.state.monthSelectedIn,onDropdownFocus:a.handleDropdownFocus,onMonthChange:a.props.onMonthChange,onYearChange:a.props.onYearChange,dayClassName:a.props.dayClassName,weekDayClassName:a.props.weekDayClassName,monthClassName:a.props.monthClassName,timeClassName:a.props.timeClassName,showDateSelect:a.props.showDateSelect,showTimeSelect:a.props.showTimeSelect,showTimeSelectOnly:a.props.showTimeSelectOnly,onTimeChange:a.handleTimeChange,timeFormat:a.props.timeFormat,timeIntervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,className:a.props.calendarClassName,container:a.props.calendarContainer,yearItemNumber:a.props.yearItemNumber,yearDropdownItemNumber:a.props.yearDropdownItemNumber,previousMonthAriaLabel:a.props.previousMonthAriaLabel,previousMonthButtonLabel:a.props.previousMonthButtonLabel,nextMonthAriaLabel:a.props.nextMonthAriaLabel,nextMonthButtonLabel:a.props.nextMonthButtonLabel,previousYearAriaLabel:a.props.previousYearAriaLabel,previousYearButtonLabel:a.props.previousYearButtonLabel,nextYearAriaLabel:a.props.nextYearAriaLabel,nextYearButtonLabel:a.props.nextYearButtonLabel,timeInputLabel:a.props.timeInputLabel,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,renderCustomHeader:a.props.renderCustomHeader,popperProps:a.props.popperProps,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,onDayMouseEnter:a.props.onDayMouseEnter,onMonthMouseLeave:a.props.onMonthMouseLeave,onYearMouseEnter:a.props.onYearMouseEnter,onYearMouseLeave:a.props.onYearMouseLeave,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showTimeInput:a.props.showTimeInput,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,showPopperArrow:a.props.showPopperArrow,excludeScrollbar:a.props.excludeScrollbar,handleOnKeyDown:a.props.onKeyDown,handleOnDayKeyDown:a.onDayKeyDown,isInputFocused:a.state.focused,customTimeInput:a.props.customTimeInput,setPreSelection:a.setPreSelection},a.props.children):null})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=a.props,r=t.dateFormat,n=t.locale,o=a.props.showTimeInput||a.props.showTimeSelect?\"PPPPp\":\"PPPP\";return e=a.props.selectsRange?\"Selected start date: \".concat(Kt(a.props.startDate,{dateFormat:o,locale:n}),\". \").concat(a.props.endDate?\"End date: \"+Kt(a.props.endDate,{dateFormat:o,locale:n}):\"\"):a.props.showTimeSelectOnly?\"Selected time: \".concat(Kt(a.props.selected,{dateFormat:r,locale:n})):a.props.showYearPicker?\"Selected year: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy\",locale:n})):a.props.showMonthYearPicker?\"Selected month: \".concat(Kt(a.props.selected,{dateFormat:\"MMMM yyyy\",locale:n})):a.props.showQuarterYearPicker?\"Selected quarter: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy, QQQ\",locale:n})):\"Selected date: \".concat(Kt(a.props.selected,{dateFormat:o,locale:n})),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},e)})),St(Et(a),\"renderDateInput\",(function(){var e,t=ue.default(a.props.className,St({},oa,a.state.open)),r=a.props.customInput||de.default.createElement(\"input\",{type:\"text\"}),n=a.props.customInputRef||\"ref\",o=\"string\"==typeof a.props.value?a.props.value:\"string\"==typeof a.state.inputValue?a.state.inputValue:a.props.selectsRange?function(e,t,r){if(!e)return\"\";var a=Kt(e,r),n=t?Kt(t,r):\"\";return\"\".concat(a,\" - \").concat(n)}(a.props.startDate,a.props.endDate,a.props):Kt(a.props.selected,a.props);return de.default.cloneElement(r,(St(St(St(St(St(St(St(St(St(St(e={},n,(function(e){a.input=e})),\"value\",o),\"onBlur\",a.handleBlur),\"onChange\",a.handleChange),\"onClick\",a.onInputClick),\"onFocus\",a.handleFocus),\"onKeyDown\",a.onInputKeyDown),\"id\",a.props.id),\"name\",a.props.name),\"form\",a.props.form),St(St(St(St(St(St(St(St(St(St(e,\"autoFocus\",a.props.autoFocus),\"placeholder\",a.props.placeholderText),\"disabled\",a.props.disabled),\"autoComplete\",a.props.autoComplete),\"className\",ue.default(r.props.className,t)),\"title\",a.props.title),\"readOnly\",a.props.readOnly),\"required\",a.props.required),\"tabIndex\",a.props.tabIndex),\"aria-describedby\",a.props.ariaDescribedBy),St(St(St(e,\"aria-invalid\",a.props.ariaInvalid),\"aria-labelledby\",a.props.ariaLabelledBy),\"aria-required\",a.props.ariaRequired)))})),St(Et(a),\"renderClearButton\",(function(){var e=a.props,t=e.isClearable,r=e.disabled,n=e.selected,o=e.startDate,s=e.endDate,i=e.clearButtonTitle,p=e.clearButtonClassName,l=void 0===p?\"\":p,c=e.ariaLabelClose,d=void 0===c?\"Close\":c;return!t||null==n&&null==o&&null==s?null:de.default.createElement(\"button\",{type:\"button\",className:ue.default(\"react-datepicker__close-icon\",l,{\"react-datepicker__close-icon--disabled\":r}),disabled:r,\"aria-label\":d,onClick:a.onClearClick,title:i,tabIndex:-1})})),a.state=a.calcInitialState(),a.preventFocusTimeout=null,a}return bt(r,[{key:\"componentDidMount\",value:function(){window.addEventListener(\"scroll\",this.onScroll,!0)}},{key:\"componentDidUpdate\",value:function(e,t){var r,a;e.inline&&(r=e.selected,a=this.props.selected,r&&a?Te.default(r)!==Te.default(a)||Le.default(r)!==Le.default(a):r!==a)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:br(this.props.highlightDates)}),t.focused||Xt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:\"componentWillUnmount\",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener(\"scroll\",this.onScroll,!0)}},{key:\"renderInputContainer\",value:function(){var e=this.props,t=e.showIcon,r=e.icon,a=e.calendarIconClassname,n=e.toggleCalendarOnIconClick,o=this.state.open;return de.default.createElement(\"div\",{className:\"react-datepicker__input-container\".concat(t?\" react-datepicker__view-calendar-icon\":\"\")},t&&de.default.createElement(ea,Ct({icon:r,className:\"\".concat(a,\" \").concat(o&&\"react-datepicker-ignore-onclickoutside\")},n?{onClick:this.toggleCalendar}:null)),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())}},{key:\"render\",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(aa,{enableTabLoop:this.props.enableTabLoop},de.default.createElement(\"div\",{className:\"react-datepicker__portal\",tabIndex:-1,onKeyDown:this.onPortalKeyDown},e)):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement(ta,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement(\"div\",null,this.renderInputContainer(),t)}return de.default.createElement(na,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:\"defaultProps\",get:function(){return{allowSameDay:!1,dateFormat:\"MM/dd/yyyy\",dateFormatCalendar:\"LLLL yyyy\",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:\"scroll\",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,showWeekPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:\"Time\",previousMonthAriaLabel:\"Previous Month\",previousMonthButtonLabel:\"Previous Month\",nextMonthAriaLabel:\"Next Month\",nextMonthButtonLabel:\"Next Month\",previousYearAriaLabel:\"Previous Year\",previousYearButtonLabel:\"Previous Year\",nextYearAriaLabel:\"Next Year\",nextYearButtonLabel:\"Next Year\",timeInputLabel:\"Time\",enableTabLoop:!0,yearItemNumber:Lt,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0,toggleCalendarOnIconClick:!1}}}]),r}(de.default.Component),la=\"input\",ca=\"navigate\";e.CalendarContainer=Jr,e.default=pa,e.getDefaultLocale=er,e.registerLocale=function(e,t){var r=\"undefined\"!=typeof window?window:globalThis;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){(\"undefined\"!=typeof window?window:globalThis).__localeId__=e},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ba=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function t(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new t(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new t(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new t(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new t(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new t(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new t(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new t(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new t(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new t(a,5,!1,a.toLowerCase(),null,!1,!1)});var qa=/[\\-:]([a-z])/g;function ra(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(qa,\nra);z[b]=new t(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(qa,ra);z[b]=new t(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(qa,ra);z[b]=new t(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new t(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new t(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new t(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction sa(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Ma=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?La(a):\"\"}\nfunction Oa(a){switch(a.tag){case 5:return La(a.type);case 16:return La(\"Lazy\");case 13:return La(\"Suspense\");case 19:return La(\"SuspenseList\");case 0:case 2:case 15:return a=Na(a.type,!1),a;case 11:return a=Na(a.type.render,!1),a;case 1:return a=Na(a.type,!0),a;default:return\"\"}}\nfunction Pa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case wa:return\"Fragment\";case va:return\"Portal\";case za:return\"Profiler\";case xa:return\"StrictMode\";case Da:return\"Suspense\";case Ea:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ba:return(a.displayName||\"Context\")+\".Consumer\";case Aa:return(a._context.displayName||\"Context\")+\".Provider\";case Ca:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Fa:return b=a.displayName||null,null!==b?b:Pa(a.type)||\"Memo\";case Ga:b=a._payload;a=a._init;try{return Pa(a(b))}catch(c){}}return null}\nfunction Qa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Pa(b);case 8:return b===xa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Ra(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Sa(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ta(a){var b=Sa(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Ua(a){a._valueTracker||(a._valueTracker=Ta(a))}function Va(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Sa(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Wa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Xa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Ya(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Ra(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Za(a,b){b=b.checked;null!=b&&sa(a,\"checked\",b,!1)}\nfunction $a(a,b){Za(a,b);var c=Ra(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Ra(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Wa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var db=Array.isArray;\nfunction eb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=lb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction nb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar ob={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(ob).forEach(function(a){pb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);ob[b]=ob[a]})});function qb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||ob.hasOwnProperty(a)&&ob[a]?(\"\"+b).trim():b+\"px\"}\nfunction rb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=qb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var sb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction tb(a,b){if(b){if(sb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction ub(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var vb=null;function wb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xb=null,yb=null,zb=null;\nfunction Ab(a){if(a=Bb(a)){if(\"function\"!==typeof xb)throw Error(p(280));var b=a.stateNode;b&&(b=Cb(b),xb(a.stateNode,a.type,b))}}function Db(a){yb?zb?zb.push(a):zb=[a]:yb=a}function Eb(){if(yb){var a=yb,b=zb;zb=yb=null;Ab(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(oc(a)/pc|0)|0}var qc=64,rc=4194304;\nfunction sc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function tc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=sc(h):(f&=g,0!==f&&(d=sc(f)))}else g=c&~e,0!==g?d=sc(g):0!==f&&(d=sc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction zc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-nc(b);a[b]=c}function Ac(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=ae),de=String.fromCharCode(32),ee=!1;\nfunction fe(a,b){switch(a){case \"keyup\":return-1!==Zd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ge(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var he=!1;function ie(a,b){switch(a){case \"compositionend\":return ge(b);case \"keypress\":if(32!==b.which)return null;ee=!0;return de;case \"textInput\":return a=b.data,a===de&&ee?null:a;default:return null}}\nfunction je(a,b){if(he)return\"compositionend\"===a||!$d&&fe(a,b)?(a=md(),ld=kd=jd=null,he=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ie(c)}}function Ke(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ke(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Le(){for(var a=window,b=Wa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Wa(a.document)}return b}function Me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Ne(a){var b=Le(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ke(c.ownerDocument.documentElement,c)){if(null!==d&&Me(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Je(c,f);var g=Je(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Pe=null,Qe=null,Re=null,Se=!1;\nfunction Te(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Se||null==Pe||Pe!==Wa(d)||(d=Pe,\"selectionStart\"in d&&Me(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Re&&He(Re,d)||(Re=d,d=ne(Qe,\"onSelect\"),0Sf||(a.current=Rf[Sf],Rf[Sf]=null,Sf--)}function G(a,b){Sf++;Rf[Sf]=a.current;a.current=b}var Uf={},H=Tf(Uf),Vf=Tf(!1),Wf=Uf;function Xf(a,b){var c=a.type.contextTypes;if(!c)return Uf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Yf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Zf(){E(Vf);E(H)}function $f(a,b,c){if(H.current!==Uf)throw Error(p(168));G(H,b);G(Vf,c)}function ag(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Qa(a)||\"Unknown\",e));return A({},c,d)}\nfunction bg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Uf;Wf=H.current;G(H,a);G(Vf,Vf.current);return!0}function cg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=ag(a,b,Wf),d.__reactInternalMemoizedMergedChildContext=a,E(Vf),E(H),G(H,a)):E(Vf);G(Vf,c)}var dg=null,eg=!1,fg=!1;function gg(a){null===dg?dg=[a]:dg.push(a)}function hg(a){eg=!0;gg(a)}\nfunction ig(){if(!fg&&null!==dg){fg=!0;var a=0,b=C;try{var c=dg;for(C=1;a>=g;e-=g;Yg=1<<32-nc(b)+e|c<m?(x=r,r=null):x=r.sibling;var v=q(e,r,h[m],k);if(null===v){null===r&&(r=x);break}a&&r&&null===v.alternate&&b(e,r);g=f(v,g,m);null===n?l=v:n.sibling=v;n=v;r=x}if(m===h.length)return c(e,r),I&&$g(e,m),l;if(null===r){for(;mr?(x=m,m=null):x=m.sibling;var w=q(e,m,v.value,k);if(null===w){null===m&&(m=x);break}a&&m&&null===w.alternate&&b(e,m);g=f(w,g,r);null===n?l=w:n.sibling=w;n=w;m=x}if(v.done)return c(e,\nm),I&&$g(e,r),l;if(null===m){for(;!v.done;r++,v=h.next())v=u(e,v.value,k),null!==v&&(g=f(v,g,r),null===n?l=v:n.sibling=v,n=v);I&&$g(e,r);return l}for(m=d(e,m);!v.done;r++,v=h.next())v=y(m,e,r,v.value,k),null!==v&&(a&&null!==v.alternate&&m.delete(null===v.key?r:v.key),g=f(v,g,r),null===n?l=v:n.sibling=v,n=v);a&&m.forEach(function(a){return b(e,a)});I&&$g(e,r);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===wa&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ua:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===wa){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ga&&rh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ph(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===wa?(d=xh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=vh(f.type,f.key,f.props,null,a.mode,h),h.ref=ph(a,d,f),h.return=a,a=h)}return g(a);case va:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=wh(f,a.mode,h);d.return=a;a=d}return g(a);case Ga:return l=f._init,J(a,d,l(f._payload),h)}if(db(f))return m(a,d,f,h);if(Ja(f))return w(a,d,f,h);qh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=uh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var yh=sh(!0),zh=sh(!1),Ah={},Bh=Tf(Ah),Ch=Tf(Ah),Dh=Tf(Ah);function Eh(a){if(a===Ah)throw Error(p(174));return a}function Fh(a,b){G(Dh,b);G(Ch,a);G(Bh,Ah);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:kb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=kb(b,a)}E(Bh);G(Bh,b)}function Gh(){E(Bh);E(Ch);E(Dh)}\nfunction Hh(a){Eh(Dh.current);var b=Eh(Bh.current);var c=kb(b,a.type);b!==c&&(G(Ch,a),G(Bh,c))}function Ih(a){Ch.current===a&&(E(Bh),E(Ch))}var K=Tf(0);\nfunction Jh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Kh=[];\nfunction Lh(){for(var a=0;ac?c:4;a(!0);var d=Nh.transition;Nh.transition={};try{a(!1),b()}finally{C=c,Nh.transition=d}}function Bi(){return ai().memoizedState}\nfunction Ci(a,b,c){var d=Kg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};Di(a)?Ei(b,c):(Fi(a,b,c),c=Jg(),a=Lg(a,d,c),null!==a&&Gi(a,b,d))}\nfunction ni(a,b,c){var d=Kg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Di(a))Ei(b,e);else{Fi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ge(h,g))return}catch(k){}finally{}c=Jg();a=Lg(a,d,c);null!==a&&Gi(a,b,d)}}function Di(a){var b=a.alternate;return a===L||null!==b&&b===L}\nfunction Ei(a,b){Qh=Ph=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Fi(a,b,c){Bg(a)?(a=b.interleaved,null===a?(c.next=c,null===vg?vg=[b]:vg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function Gi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Bc(a,c)}}\nvar Yh={readContext:ug,useCallback:O,useContext:O,useEffect:O,useImperativeHandle:O,useInsertionEffect:O,useLayoutEffect:O,useMemo:O,useReducer:O,useRef:O,useState:O,useDebugValue:O,useDeferredValue:O,useTransition:O,useMutableSource:O,useSyncExternalStore:O,useId:O,unstable_isNewReconciler:!1},Vh={readContext:ug,useCallback:function(a,b){$h().memoizedState=[a,void 0===b?null:b];return a},useContext:ug,useEffect:ri,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return pi(4194308,\n4,ui.bind(null,b,a),c)},useLayoutEffect:function(a,b){return pi(4194308,4,a,b)},useInsertionEffect:function(a,b){return pi(4,2,a,b)},useMemo:function(a,b){var c=$h();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=$h();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Ci.bind(null,L,a);return[d.memoizedState,a]},useRef:function(a){var b=\n$h();a={current:a};return b.memoizedState=a},useState:mi,useDebugValue:wi,useDeferredValue:function(a){return $h().memoizedState=a},useTransition:function(){var a=mi(!1),b=a[0];a=Ai.bind(null,a[1]);$h().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=L,e=$h();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===P)throw Error(p(349));0!==(Oh&30)||ki(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ri(hi.bind(null,d,\nf,a),[a]);d.flags|=2048;ii(9,ji.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=$h(),b=P.identifierPrefix;if(I){var c=Zg;var d=Yg;c=(d&~(1<<32-nc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Rh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Nf]=b;a[Of]=d;Ti(a,b,!1,!1);b.stateNode=a;a:{g=ub(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eaj&&(b.flags|=\n128,d=!0,Xi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Jh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Xi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return Q(b),null}else 2*B()-f.renderingStartTime>aj&&1073741824!==c&&(b.flags|=128,d=!0,Xi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=\nB(),b.sibling=null,c=K.current,G(K,d?c&1|2:c&1),b;Q(b);return null;case 22:case 23:return bj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(cj&1073741824)&&(Q(b),b.subtreeFlags&6&&(b.flags|=8192)):Q(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var dj=ta.ReactCurrentOwner,tg=!1;function ej(a,b,c,d){b.child=null===a?zh(b,null,c,d):yh(b,a.child,c,d)}\nfunction fj(a,b,c,d,e){c=c.render;var f=b.ref;sg(b,e);d=Uh(a,b,c,d,f,e);c=Zh();if(null!==a&&!tg)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,gj(a,b,e);I&&c&&bh(b);b.flags|=1;ej(a,b,d,e);return b.child}\nfunction hj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!ij(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,jj(a,b,f,d,e);a=vh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:He;if(c(g,d)&&a.ref===b.ref)return gj(a,b,e)}b.flags|=1;a=th(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction jj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(He(f,d)&&a.ref===b.ref)if(tg=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(tg=!0);else return b.lanes=a.lanes,gj(a,b,e)}return kj(a,b,c,d,e)}\nfunction lj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(mj,cj),cj|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},d=null!==f?f.baseLanes:c,G(mj,cj),cj|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(mj,cj),cj|=a,null;\nelse null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(mj,cj),cj|=d;ej(a,b,e,c);return b.child}function nj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function kj(a,b,c,d,e){var f=Yf(c)?Wf:H.current;f=Xf(b,f);sg(b,e);c=Uh(a,b,c,d,f,e);d=Zh();if(null!==a&&!tg)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,gj(a,b,e);I&&d&&bh(b);b.flags|=1;ej(a,b,c,e);return b.child}\nfunction oj(a,b,c,d,e){if(Yf(c)){var f=!0;bg(b)}else f=!1;sg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Og(b,c,d),Qg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=ug(l):(l=Yf(c)?Wf:H.current,l=Xf(b,l));var n=c.getDerivedStateFromProps,u=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;u||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Pg(b,g,d,l);wg=!1;var q=b.memoizedState;g.state=q;Eg(b,d,g,e);k=b.memoizedState;h!==d||q!==k||Vf.current||wg?(\"function\"===typeof n&&(Ig(b,c,n,d),k=b.memoizedState),(h=wg||Ng(b,c,h,d,q,k,l))?(u||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:kg(b.type,h);g.props=l;u=b.pendingProps;q=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=ug(k):(k=Yf(c)?Wf:H.current,k=Xf(b,k));var y=c.getDerivedStateFromProps;(n=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==u||q!==k)&&Pg(b,g,d,k);wg=!1;q=b.memoizedState;g.state=q;Eg(b,d,g,e);var m=b.memoizedState;h!==u||q!==m||Vf.current||wg?(\"function\"===typeof y&&(Ig(b,c,y,d),m=b.memoizedState),(l=wg||Ng(b,c,l,d,q,m,k)||!1)?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,m,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,m,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=m),g.props=d,g.state=m,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=1024),d=!1)}return pj(a,b,c,d,f,e)}\nfunction pj(a,b,c,d,e,f){nj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&cg(b,c,!1),gj(a,b,f);d=b.stateNode;dj.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=yh(b,a.child,null,f),b.child=yh(b,null,h,f)):ej(a,b,h,f);b.memoizedState=d.state;e&&cg(b,c,!0);return b.child}function qj(a){var b=a.stateNode;b.pendingContext?$f(a,b.pendingContext,b.pendingContext!==b.context):b.context&&$f(a,b.context,!1);Fh(a,b.containerInfo)}\nfunction rj(a,b,c,d,e){nh();oh(e);b.flags|=256;ej(a,b,c,d);return b.child}var sj={dehydrated:null,treeContext:null,retryLane:0};function tj(a){return{baseLanes:a,cachePool:null,transitions:null}}function uj(a,b){return{baseLanes:a.baseLanes|b,cachePool:null,transitions:a.transitions}}\nfunction vj(a,b,c){var d=b.pendingProps,e=K.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(K,e&1);if(null===a){kh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=wj(e,d,0,null),a=xh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=tj(c),b.memoizedState=sj,a):xj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,yj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=wj({mode:\"visible\",children:d.children},e,0,null);f=xh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&yh(b,a.child,\nnull,c);b.child.memoizedState=tj(c);b.memoizedState=sj;return f}if(0===(b.mode&1))b=yj(a,b,c,null);else if(\"$!\"===h.data)b=yj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),tg||d){d=P;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Lg(a,d,-1))}$i();b=yj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=zj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,eh=Kf(h.nextSibling),dh=b,I=!0,fh=null,null!==c&&(Vg[Wg++]=Yg,Vg[Wg++]=Zg,Vg[Wg++]=Xg,Yg=c.id,Zg=c.overflow,Xg=b),b=xj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=Aj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?tj(c):uj(e,c),f.childLanes=a.childLanes&~c,b.memoizedState=sj,d;c=Bj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=Aj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?tj(c):uj(e,c),f.childLanes=a.childLanes&~c,b.memoizedState=sj,d;c=Bj(a,b,d.children,c);b.memoizedState=null;return c}function xj(a,b){b=wj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}\nfunction Bj(a,b,c,d){var e=a.child;a=e.sibling;c=th(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction Aj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=th(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=th(g,d):(d=xh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yj(a,b,c,d){null!==d&&oh(d);yh(b,a.child,null,c);a=xj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction Cj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);rg(a.return,b,c)}function Dj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction Ej(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;ej(a,b,d.children,c);d=K.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&Cj(a,c,b);else if(19===a.tag)Cj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(K,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Jh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Dj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Jh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Dj(b,!0,c,null,f);break;case \"together\":Dj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction gj(a,b,c){null!==a&&(b.dependencies=a.dependencies);Fg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=th(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=th(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction Fj(a,b,c){switch(b.tag){case 3:qj(b);nh();break;case 5:Hh(b);break;case 1:Yf(b.type)&&bg(b);break;case 4:Fh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(lg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(K,K.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return vj(a,b,c);G(K,K.current&1);a=gj(a,b,c);return null!==a?a.sibling:null}G(K,K.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return Ej(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(K,K.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,lj(a,b,c)}return gj(a,b,c)}\nfunction Gj(a,b){ch(b);switch(b.tag){case 1:return Yf(b.type)&&Zf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Gh(),E(Vf),E(H),Lh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Ih(b),null;case 13:E(K);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));nh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(K),null;case 4:return Gh(),null;case 10:return qg(b.type._context),null;case 22:case 23:return bj(),\nnull;case 24:return null;default:return null}}var Hj=!1,S=!1,Ij=\"function\"===typeof WeakSet?WeakSet:Set,T=null;function Jj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){U(a,b,d)}else c.current=null}function Kj(a,b,c){try{c()}catch(d){U(a,b,d)}}var Lj=!1;\nfunction Mj(a,b){Bf=cd;a=Le();if(Me(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(Z){c=null;break a}var g=0,h=-1,k=-1,l=0,n=0,u=a,q=null;b:for(;;){for(var y;;){u!==c||0!==e&&3!==u.nodeType||(h=g+e);u!==f||0!==d&&3!==u.nodeType||(k=g+d);3===u.nodeType&&(g+=\nu.nodeValue.length);if(null===(y=u.firstChild))break;q=u;u=y}for(;;){if(u===a)break b;q===c&&++l===e&&(h=g);q===f&&++n===d&&(k=g);if(null!==(y=u.nextSibling))break;u=q;q=u.parentNode}u=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Cf={focusedElem:a,selectionRange:c};cd=!1;for(T=b;null!==T;)if(b=T,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,T=a;else for(;null!==T;){b=T;try{var m=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==m){var w=m.memoizedProps,J=m.memoizedState,v=b.stateNode,x=v.getSnapshotBeforeUpdate(b.elementType===b.type?w:kg(b.type,w),J);v.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var r=b.stateNode.containerInfo;if(1===r.nodeType)r.textContent=\"\";else if(9===r.nodeType){var F=r.body;null!=F&&(F.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(Z){U(b,b.return,Z)}a=b.sibling;if(null!==a){a.return=b.return;T=a;break}T=b.return}m=Lj;Lj=!1;return m}\nfunction Nj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Kj(b,c,f)}e=e.next}while(e!==d)}}function Oj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Pj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Qj(a){var b=a.alternate;null!==b&&(a.alternate=null,Qj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Nf],delete b[Of],delete b[nf],delete b[Pf],delete b[Qf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Rj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Sj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Rj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Tj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Af));else if(4!==d&&(a=a.child,null!==a))for(Tj(a,b,c),a=a.sibling;null!==a;)Tj(a,b,c),a=a.sibling}\nfunction Uj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Uj(a,b,c),a=a.sibling;null!==a;)Uj(a,b,c),a=a.sibling}var V=null,Vj=!1;function Wj(a,b,c){for(c=c.child;null!==c;)Xj(a,b,c),c=c.sibling}\nfunction Xj(a,b,c){if(kc&&\"function\"===typeof kc.onCommitFiberUnmount)try{kc.onCommitFiberUnmount(jc,c)}catch(h){}switch(c.tag){case 5:S||Jj(c,b);case 6:var d=V,e=Vj;V=null;Wj(a,b,c);V=d;Vj=e;null!==V&&(Vj?(a=V,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):V.removeChild(c.stateNode));break;case 18:null!==V&&(Vj?(a=V,c=c.stateNode,8===a.nodeType?Jf(a.parentNode,c):1===a.nodeType&&Jf(a,c),ad(a)):Jf(V,c.stateNode));break;case 4:d=V;e=Vj;V=c.stateNode.containerInfo;Vj=!0;\nWj(a,b,c);V=d;Vj=e;break;case 0:case 11:case 14:case 15:if(!S&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Kj(c,b,g):0!==(f&4)&&Kj(c,b,g));e=e.next}while(e!==d)}Wj(a,b,c);break;case 1:if(!S&&(Jj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){U(c,b,h)}Wj(a,b,c);break;case 21:Wj(a,b,c);break;case 22:c.mode&1?(S=(d=S)||null!==\nc.memoizedState,Wj(a,b,c),S=d):Wj(a,b,c);break;default:Wj(a,b,c)}}function Yj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ij);b.forEach(function(b){var d=Zj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ak(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*jk(d/1960))-d;if(10a?16:a;if(null===uk)var d=!1;else{a=uk;uk=null;vk=0;if(0!==(W&6))throw Error(p(331));var e=W;W|=4;for(T=a.current;null!==T;){var f=T,g=f.child;if(0!==(T.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-dk?Jk(a,0):pk|=c);Ck(a,b)}function Xk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=rc,rc<<=1,0===(rc&130023424)&&(rc=4194304)));var c=Jg();a=Ak(a,b);null!==a&&(zc(a,b,c),Ck(a,c))}function zj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Xk(a,c)}\nfunction Zj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Xk(a,c)}var Uk;\nUk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Vf.current)tg=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return tg=!1,Fj(a,b,c);tg=0!==(a.flags&131072)?!0:!1}else tg=!1,I&&0!==(b.flags&1048576)&&ah(b,Ug,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Xf(b,H.current);sg(b,c);e=Uh(null,b,d,a,e,c);var f=Zh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Yf(d)?(f=!0,bg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,xg(b),e.updater=Mg,b.stateNode=e,e._reactInternals=b,Qg(b,d,a,c),b=pj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&bh(b),ej(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Yk(d);a=kg(d,a);switch(e){case 0:b=kj(null,b,d,a,c);break a;case 1:b=oj(null,b,\nd,a,c);break a;case 11:b=fj(null,b,d,a,c);break a;case 14:b=hj(null,b,d,kg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),kj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),oj(a,b,d,e,c);case 3:a:{qj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;yg(a,b);Eg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=rj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=rj(a,b,d,c,e);break a}else for(eh=Kf(b.stateNode.containerInfo.firstChild),dh=b,I=!0,fh=null,c=zh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{nh();if(d===e){b=gj(a,b,c);break a}ej(a,b,d,c)}b=b.child}return b;case 5:return Hh(b),null===a&&kh(b),d=b.type,e=\nb.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Df(d,e)?g=null:null!==f&&Df(d,f)&&(b.flags|=32),nj(a,b),ej(a,b,g,c),b.child;case 6:return null===a&&kh(b),null;case 13:return vj(a,b,c);case 4:return Fh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=yh(b,null,d,c):ej(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),fj(a,b,d,e,c);case 7:return ej(a,b,b.pendingProps,c),b.child;case 8:return ej(a,b,b.pendingProps.children,c),b.child;case 12:return ej(a,\nb,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;G(lg,d._currentValue);d._currentValue=g;if(null!==f)if(Ge(f.value,g)){if(f.children===e.children&&!Vf.current){b=gj(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=zg(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var n=l.pending;null===n?k.next=\nk:(k.next=n.next,n.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);rg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);rg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}ej(a,b,e.children,c);b=b.child}return b;\ncase 9:return e=b.type,d=b.pendingProps.children,sg(b,c),e=ug(e),d=d(e),b.flags|=1,ej(a,b,d,c),b.child;case 14:return d=b.type,e=kg(d,b.pendingProps),e=kg(d.type,e),hj(a,b,d,e,c);case 15:return jj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Yf(d)?(a=!0,bg(b)):a=!1,sg(b,c),Og(b,d,e),Qg(b,d,e,c),pj(null,b,d,!0,a,c);case 19:return Ej(a,b,c);case 22:return lj(a,b,c)}throw Error(p(156,\nb.tag));};function Ek(a,b){return $b(a,b)}function Zk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function hh(a,b,c,d){return new Zk(a,b,c,d)}\nfunction ij(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Yk(a){if(\"function\"===typeof a)return ij(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ca)return 11;if(a===Fa)return 14}return 2}\nfunction th(a,b){var c=a.alternate;null===c?(c=hh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction vh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ij(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case wa:return xh(c.children,e,f,b);case xa:g=8;e|=8;break;case za:return a=hh(12,c,b,e|2),a.elementType=za,a.lanes=f,a;case Da:return a=hh(13,c,b,e),a.elementType=Da,a.lanes=f,a;case Ea:return a=hh(19,c,b,e),a.elementType=Ea,a.lanes=f,a;case Ha:return wj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Aa:g=10;break a;case Ba:g=9;break a;case Ca:g=11;\nbreak a;case Fa:g=14;break a;case Ga:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=hh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function xh(a,b,c,d){a=hh(7,a,d,b);a.lanes=c;return a}function wj(a,b,c,d){a=hh(22,a,d,b);a.elementType=Ha;a.lanes=c;a.stateNode={};return a}function uh(a,b,c){a=hh(6,a,null,b);a.lanes=c;return a}\nfunction wh(a,b,c){b=hh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction $k(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=yc(0);this.expirationTimes=yc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=yc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function al(a,b,c,d,e,f,g,h,k){a=new $k(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=hh(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};xg(f);return a}function bl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\n/**\n * We need to support the deprecated `KeyboardEvent.keyCode` in addition to\n * `KeyboardEvent.code` for apps that still support IE11. Can be removed when\n * `react-modal` only supports React >18 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName,\n parentSelector = _this$props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Remove classes.\n bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (isTabKey(event)) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName,\n parentSelector = _props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Add classes.\n bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n parentSelector: _propTypes2.default.func,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction isNotOverflowing(element, style) {\n return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n var displayValue = style.getPropertyValue(\"display\");\n return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","import {createElement,Component}from'react';import {findDOMNode}from'react-dom';function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n // Also cover shadowRoot node by checking current.host\n\n\n while (current.parentNode || current.host) {\n // Only check normal node without shadowRoot\n if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode || current.host;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};function autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();var passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = {};\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions.passive = !instance.props.preventDefault;\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n if (_this.initTimeStamp > event.timeStamp) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n _this.initTimeStamp = performance.now();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n }\n /**\n * Remove all document's event listeners for this component\n */\n ;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n }\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n ;\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _this$props = this.props;\n _this$props.excludeScrollbar;\n var props = _objectWithoutPropertiesLoose(_this$props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}export default onClickOutsideHOC;export{IGNORE_CLASS_NAME};","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n }, []);\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.buildAnnotations = void 0;\r\nvar AxisMarkerAnnotation_1 = require(\"../Charting/Visuals/Annotations/AxisMarkerAnnotation\");\r\nvar BoxAnnotation_1 = require(\"../Charting/Visuals/Annotations/BoxAnnotation\");\r\nvar CustomAnnotation_1 = require(\"../Charting/Visuals/Annotations/CustomAnnotation\");\r\nvar HorizontalLineAnnotation_1 = require(\"../Charting/Visuals/Annotations/HorizontalLineAnnotation\");\r\nvar IAnnotation_1 = require(\"../Charting/Visuals/Annotations/IAnnotation\");\r\nvar LineAnnotation_1 = require(\"../Charting/Visuals/Annotations/LineAnnotation\");\r\nvar NativeTextAnnotation_1 = require(\"../Charting/Visuals/Annotations/NativeTextAnnotation\");\r\nvar TextAnnotation_1 = require(\"../Charting/Visuals/Annotations/TextAnnotation\");\r\nvar VerticalLineAnnotation_1 = require(\"../Charting/Visuals/Annotations/VerticalLineAnnotation\");\r\nvar BaseType_1 = require(\"../types/BaseType\");\r\nvar chartBuilder_1 = require(\"./chartBuilder\");\r\nvar classFactory_1 = require(\"./classFactory\");\r\n// register annotations\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Annotation, IAnnotation_1.EAnnotationType.RenderContextAxisMarkerAnnotation, function (options) { return new AxisMarkerAnnotation_1.AxisMarkerAnnotation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Annotation, IAnnotation_1.EAnnotationType.RenderContextBoxAnnotation, function (options) { return new BoxAnnotation_1.BoxAnnotation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Annotation, IAnnotation_1.EAnnotationType.RenderContextHorizontalLineAnnotation, function (options) { return new HorizontalLineAnnotation_1.HorizontalLineAnnotation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Annotation, IAnnotation_1.EAnnotationType.RenderContextLineAnnotation, function (options) { return new LineAnnotation_1.LineAnnotation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Annotation, IAnnotation_1.EAnnotationType.RenderContextVerticalLineAnnotation, function (options) { return new VerticalLineAnnotation_1.VerticalLineAnnotation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Annotation, IAnnotation_1.EAnnotationType.SVGTextAnnotation, function (options) { return new TextAnnotation_1.TextAnnotation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Annotation, IAnnotation_1.EAnnotationType.SVGCustomAnnotation, function (options) { return new CustomAnnotation_1.CustomAnnotation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Annotation, IAnnotation_1.EAnnotationType.RenderContextNativeTextAnnotation, function (options) { return new NativeTextAnnotation_1.NativeTextAnnotation(options); }, true);\r\n/**\r\n * Build one or more annotations from a definition that can be pure data.\r\n * @param definition One or an array of {@link TAnnotationDefinition}\r\n * @returns An array of annotations\r\n */\r\nvar buildAnnotations = function (definition) {\r\n if (typeof definition === \"string\") {\r\n definition = JSON.parse(definition, chartBuilder_1.chartReviver);\r\n }\r\n var annotations = [];\r\n if (Array.isArray(definition)) {\r\n for (var _i = 0, definition_1 = definition; _i < definition_1.length; _i++) {\r\n var annotation = definition_1[_i];\r\n annotations.push((0, classFactory_1.createType)(BaseType_1.EBaseType.Annotation, annotation.type, null, annotation.options));\r\n }\r\n }\r\n else {\r\n annotations.push((0, classFactory_1.createType)(BaseType_1.EBaseType.Annotation, definition.type, null, definition.options));\r\n }\r\n return annotations;\r\n};\r\nexports.buildAnnotations = buildAnnotations;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.buildAxes = void 0;\r\nvar CategoryAxis_1 = require(\"../Charting/Visuals/Axis/CategoryAxis\");\r\nvar DateTimeNumericAxis_1 = require(\"../Charting/Visuals/Axis/DateTimeNumericAxis\");\r\nvar DateLabelProvider_1 = require(\"../Charting/Visuals/Axis/LabelProvider/DateLabelProvider\");\r\nvar LogarithmicLabelProvider_1 = require(\"../Charting/Visuals/Axis/LabelProvider/LogarithmicLabelProvider\");\r\nvar NumericLabelProvider_1 = require(\"../Charting/Visuals/Axis/LabelProvider/NumericLabelProvider\");\r\nvar PieLabelProvider_1 = require(\"../Charting/Visuals/Axis/LabelProvider/PieLabelProvider\");\r\nvar SmartDateLabelProvider_1 = require(\"../Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider\");\r\nvar TextLabelProvider_1 = require(\"../Charting/Visuals/Axis/LabelProvider/TextLabelProvider\");\r\nvar LogarithmicAxis_1 = require(\"../Charting/Visuals/Axis/LogarithmicAxis\");\r\nvar NumericAxis_1 = require(\"../Charting/Visuals/Axis/NumericAxis\");\r\nvar AxisType_1 = require(\"../types/AxisType\");\r\nvar BaseType_1 = require(\"../types/BaseType\");\r\nvar LabelProviderType_1 = require(\"../types/LabelProviderType\");\r\nvar chartBuilder_1 = require(\"./chartBuilder\");\r\nvar classFactory_1 = require(\"./classFactory\");\r\n// register LabelProviders\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LabelProvider, LabelProviderType_1.ELabelProviderType.Numeric, function (options) { return new NumericLabelProvider_1.NumericLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LabelProvider, LabelProviderType_1.ELabelProviderType.Date, function (options) { return new DateLabelProvider_1.DateLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LabelProvider, LabelProviderType_1.ELabelProviderType.Logarithmic, function (options) { return new LogarithmicLabelProvider_1.LogarithmicLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LabelProvider, LabelProviderType_1.ELabelProviderType.SmartDate, function (options) { return new SmartDateLabelProvider_1.SmartDateLabelProvider(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LabelProvider, LabelProviderType_1.ELabelProviderType.Text, function (options) { return new TextLabelProvider_1.TextLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LabelProvider, LabelProviderType_1.ELabelProviderType.Pie, function (options) { return new PieLabelProvider_1.PieLabelProvider(options); }, true);\r\n/**\r\n * Build one or more axes from a definition that can be pure data.\r\n * @param wasmContext A {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart | SciChart 3D WebAssembly Context}\r\n * @param definition One or an array of {@link TAxisDefinition}\r\n * @returns An array of {@link AxisBase2D}.\r\n */\r\nvar buildAxes = function (wasmContext, definition) {\r\n if (typeof definition === \"string\") {\r\n definition = JSON.parse(definition, chartBuilder_1.chartReviver);\r\n }\r\n var axes = [];\r\n if (Array.isArray(definition)) {\r\n for (var _i = 0, definition_1 = definition; _i < definition_1.length; _i++) {\r\n var axis = definition_1[_i];\r\n axes.push(buildAxis(wasmContext, axis));\r\n }\r\n }\r\n else {\r\n axes.push(buildAxis(wasmContext, definition));\r\n }\r\n return axes;\r\n};\r\nexports.buildAxes = buildAxes;\r\nvar buildAxis = function (wasmContext, definition) {\r\n var axis;\r\n switch (definition.type) {\r\n case AxisType_1.EAxisType.CategoryAxis:\r\n axis = new CategoryAxis_1.CategoryAxis(wasmContext, definition.options);\r\n break;\r\n case AxisType_1.EAxisType.NumericAxis:\r\n axis = new NumericAxis_1.NumericAxis(wasmContext, definition.options);\r\n break;\r\n case AxisType_1.EAxisType.LogarithmicAxis:\r\n axis = new LogarithmicAxis_1.LogarithmicAxis(wasmContext, definition.options);\r\n break;\r\n case AxisType_1.EAxisType.DateTimeNumericAxis:\r\n axis = new DateTimeNumericAxis_1.DateTimeNumericAxis(wasmContext, definition.options);\r\n break;\r\n default:\r\n axis = new NumericAxis_1.NumericAxis(wasmContext, {});\r\n break;\r\n }\r\n return axis;\r\n};\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.buildDataSeries = void 0;\r\nvar HlcScaleOffsetFilter_1 = require(\"../Charting/Model/Filters/HlcScaleOffsetFilter\");\r\nvar OhlcScaleOffsetFilter_1 = require(\"../Charting/Model/Filters/OhlcScaleOffsetFilter\");\r\nvar XyLinearTrendFilter_1 = require(\"../Charting/Model/Filters/XyLinearTrendFilter\");\r\nvar XyMovingAverageFilter_1 = require(\"../Charting/Model/Filters/XyMovingAverageFilter\");\r\nvar XyRatioFilter_1 = require(\"../Charting/Model/Filters/XyRatioFilter\");\r\nvar XyScaleOffsetFilter_1 = require(\"../Charting/Model/Filters/XyScaleOffsetFilter\");\r\nvar XyyScaleOffsetFilter_1 = require(\"../Charting/Model/Filters/XyyScaleOffsetFilter\");\r\nvar XyzScaleOffsetFilter_1 = require(\"../Charting/Model/Filters/XyzScaleOffsetFilter\");\r\nvar HlcDataSeries_1 = require(\"../Charting/Model/HlcDataSeries\");\r\nvar IDataSeries_1 = require(\"../Charting/Model/IDataSeries\");\r\nvar NonUniformHeatmapDataSeries_1 = require(\"../Charting/Model/NonUniformHeatmapDataSeries\");\r\nvar OhlcDataSeries_1 = require(\"../Charting/Model/OhlcDataSeries\");\r\nvar UniformHeatmapDataSeries_1 = require(\"../Charting/Model/UniformHeatmapDataSeries\");\r\nvar XyDataSeries_1 = require(\"../Charting/Model/XyDataSeries\");\r\nvar XyTextDataSeries_1 = require(\"../Charting/Model/XyTextDataSeries\");\r\nvar XyyDataSeries_1 = require(\"../Charting/Model/XyyDataSeries\");\r\nvar XyzDataSeries_1 = require(\"../Charting/Model/XyzDataSeries\");\r\nvar DataFilterType_1 = require(\"../types/DataFilterType\");\r\nvar chartBuilder_1 = require(\"./chartBuilder\");\r\n/**\r\n * Build a data series from a definition that can be pure data.\r\n * @param wasmContext A {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart | SciChart 3D WebAssembly Context}\r\n * @param definition A {@link TSeriesDefinition}\r\n * @param sharedData Optional {@link TSharedDataDefinition} to define shared data which can be referenced by the data series\r\n * @param originalDataSeries Optional {@Link IDataSeries} to define original data for filter\r\n * @returns An {@link IDataSeries}\r\n */\r\nvar buildDataSeries = function (wasmContext, dataSeriesDefinition, sharedData, originalDataSeries) {\r\n if (!dataSeriesDefinition) {\r\n return undefined;\r\n }\r\n if (typeof dataSeriesDefinition === \"string\") {\r\n dataSeriesDefinition = JSON.parse(dataSeriesDefinition, chartBuilder_1.chartReviver);\r\n }\r\n if (typeof sharedData === \"string\") {\r\n sharedData = JSON.parse(sharedData, chartBuilder_1.chartReviver);\r\n }\r\n var dataSeries;\r\n var filterDef;\r\n dataSeries = createDataSeries(wasmContext, dataSeriesDefinition, sharedData);\r\n if (\"filter\" in dataSeriesDefinition.options) {\r\n // @ts-ignore\r\n filterDef = dataSeriesDefinition.options.filter;\r\n }\r\n if (filterDef &&\r\n dataSeriesDefinition.type !== IDataSeries_1.EDataSeriesType.HeatmapUniform &&\r\n dataSeriesDefinition.type !== IDataSeries_1.EDataSeriesType.HeatmapNonUniform) {\r\n if (dataSeries) {\r\n var filter = buildFilter((originalDataSeries !== null && originalDataSeries !== void 0 ? originalDataSeries : dataSeries), filterDef);\r\n if (filter) {\r\n dataSeries = filter;\r\n }\r\n }\r\n }\r\n return dataSeries;\r\n};\r\nexports.buildDataSeries = buildDataSeries;\r\nvar buildFilter = function (dataSeries, definition) {\r\n if (definition.type === DataFilterType_1.EDataFilterType.HlcScaleOffset) {\r\n return new HlcScaleOffsetFilter_1.HlcScaleOffsetFilter(dataSeries, definition.options);\r\n }\r\n else if (definition.type === DataFilterType_1.EDataFilterType.OhlcScaleOffset) {\r\n return new OhlcScaleOffsetFilter_1.OhlcScaleOffsetFilter(dataSeries, definition.options);\r\n }\r\n else if (definition.type === DataFilterType_1.EDataFilterType.XyLinearTrend) {\r\n return new XyLinearTrendFilter_1.XyLinearTrendFilter(dataSeries, definition.options);\r\n }\r\n else if (definition.type === DataFilterType_1.EDataFilterType.XyMovingAverage) {\r\n return new XyMovingAverageFilter_1.XyMovingAverageFilter(dataSeries, definition.options);\r\n }\r\n else if (definition.type === DataFilterType_1.EDataFilterType.XyRatio) {\r\n var options = definition.options;\r\n if (Array.isArray(options.divisorSeries)) {\r\n var xValues = new Array(dataSeries.count()).fill(0);\r\n definition.options.divisorSeries = new XyDataSeries_1.XyDataSeries(dataSeries.webAssemblyContext, {\r\n xValues: xValues,\r\n yValues: options.divisorSeries\r\n });\r\n }\r\n return new XyRatioFilter_1.XyRatioFilter(dataSeries, definition.options);\r\n }\r\n else if (definition.type === DataFilterType_1.EDataFilterType.XyScaleOffset) {\r\n return new XyScaleOffsetFilter_1.XyScaleOffsetFilter(dataSeries, definition.options);\r\n }\r\n else if (definition.type === DataFilterType_1.EDataFilterType.XyyScaleOffset) {\r\n return new XyyScaleOffsetFilter_1.XyyScaleOffsetFilter(dataSeries, definition.options);\r\n }\r\n else if (definition.type === DataFilterType_1.EDataFilterType.XyzScaleOffset) {\r\n return new XyzScaleOffsetFilter_1.XyzScaleOffsetFilter(dataSeries, definition.options);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n};\r\nvar createDataSeries = function (wasmContext, dataSeriesDefinition, sharedData) {\r\n var rawOptions = __assign({}, dataSeriesDefinition.options);\r\n switch (dataSeriesDefinition.type) {\r\n case IDataSeries_1.EDataSeriesType.Xy: {\r\n var data = rawOptions;\r\n if (sharedData && data.xDataId) {\r\n data.xValues = sharedData[data.xDataId];\r\n data.yValues = sharedData[data.yDataId];\r\n }\r\n return new XyDataSeries_1.XyDataSeries(wasmContext, data);\r\n }\r\n case IDataSeries_1.EDataSeriesType.Xyy: {\r\n var data = rawOptions;\r\n if (sharedData && data.xDataId) {\r\n data.xValues = sharedData[data.xDataId];\r\n data.yValues = sharedData[data.yDataId];\r\n data.y1Values = sharedData[data.y1DataId];\r\n }\r\n return new XyyDataSeries_1.XyyDataSeries(wasmContext, data);\r\n }\r\n case IDataSeries_1.EDataSeriesType.Xyz: {\r\n var data = rawOptions;\r\n if (sharedData && data.xDataId) {\r\n data.xValues = sharedData[data.xDataId];\r\n data.yValues = sharedData[data.yDataId];\r\n data.zValues = sharedData[data.zDataId];\r\n }\r\n return new XyzDataSeries_1.XyzDataSeries(wasmContext, data);\r\n }\r\n case IDataSeries_1.EDataSeriesType.XyText: {\r\n var data = rawOptions;\r\n if (sharedData && data.xDataId) {\r\n data.xValues = sharedData[data.xDataId];\r\n data.yValues = sharedData[data.yDataId];\r\n }\r\n return new XyTextDataSeries_1.XyTextDataSeries(wasmContext, data);\r\n }\r\n case IDataSeries_1.EDataSeriesType.Hlc: {\r\n var data = rawOptions;\r\n if (sharedData && data.xDataId) {\r\n data.xValues = sharedData[data.xDataId];\r\n data.highValues = sharedData[data.highDataId];\r\n data.lowValues = sharedData[data.lowDataId];\r\n data.yValues = sharedData[data.closeDataId];\r\n }\r\n return new HlcDataSeries_1.HlcDataSeries(wasmContext, data);\r\n }\r\n case IDataSeries_1.EDataSeriesType.Ohlc: {\r\n var data = rawOptions;\r\n if (sharedData && data.xDataId) {\r\n data.xValues = sharedData[data.xDataId];\r\n data.openValues = sharedData[data.openDataId];\r\n data.highValues = sharedData[data.highDataId];\r\n data.lowValues = sharedData[data.lowDataId];\r\n data.closeValues = sharedData[data.closeDataId];\r\n }\r\n return new OhlcDataSeries_1.OhlcDataSeries(wasmContext, data);\r\n }\r\n case IDataSeries_1.EDataSeriesType.HeatmapUniform: {\r\n var data = rawOptions;\r\n return new UniformHeatmapDataSeries_1.UniformHeatmapDataSeries(wasmContext, data);\r\n }\r\n case IDataSeries_1.EDataSeriesType.HeatmapNonUniform: {\r\n var data = rawOptions;\r\n return new NonUniformHeatmapDataSeries_1.NonUniformHeatmapDataSeries(wasmContext, data);\r\n }\r\n default: {\r\n var handleInvalidDataSeriesType = function (type) {\r\n throw new Error(\"Invalid Data Series Type value: \\\"\".concat(type, \"\\\"!\"));\r\n };\r\n return handleInvalidDataSeriesType(dataSeriesDefinition.type);\r\n }\r\n }\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.buildModifiers = void 0;\r\nvar CursorModifier_1 = require(\"../Charting/ChartModifiers/CursorModifier\");\r\nvar DataPointSelectionModifier_1 = require(\"../Charting/ChartModifiers/DataPointSelectionModifier\");\r\nvar LegendModifier_1 = require(\"../Charting/ChartModifiers/LegendModifier\");\r\nvar MouseWheelZoomModifier_1 = require(\"../Charting/ChartModifiers/MouseWheelZoomModifier\");\r\nvar OverviewRangeSelectionModifier_1 = require(\"../Charting/ChartModifiers/OverviewRangeSelectionModifier\");\r\nvar PinchZoomModifier_1 = require(\"../Charting/ChartModifiers/PinchZoomModifier\");\r\nvar RolloverModifier_1 = require(\"../Charting/ChartModifiers/RolloverModifier\");\r\nvar VerticalSliceModifier_1 = require(\"../Charting/ChartModifiers/VerticalSliceModifier\");\r\nvar RubberBandXyZoomModifier_1 = require(\"../Charting/ChartModifiers/RubberBandXyZoomModifier\");\r\nvar SeriesSelectionModifier_1 = require(\"../Charting/ChartModifiers/SeriesSelectionModifier\");\r\nvar XAxisDragModifier_1 = require(\"../Charting/ChartModifiers/XAxisDragModifier\");\r\nvar YAxisDragModifier_1 = require(\"../Charting/ChartModifiers/YAxisDragModifier\");\r\nvar ZoomExtentsModifier_1 = require(\"../Charting/ChartModifiers/ZoomExtentsModifier\");\r\nvar ZoomPanModifier_1 = require(\"../Charting/ChartModifiers/ZoomPanModifier\");\r\nvar BaseType_1 = require(\"../types/BaseType\");\r\nvar ChartModifierType_1 = require(\"../types/ChartModifierType\");\r\nvar chartBuilder_1 = require(\"./chartBuilder\");\r\nvar classFactory_1 = require(\"./classFactory\");\r\nvar AnnotationHoverModifier_1 = require(\"../Charting/ChartModifiers/AnnotationHoverModifier\");\r\n// register modifiers\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.Cursor, function (options) { return new CursorModifier_1.CursorModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.DataPointSelection, function (options) { return new DataPointSelectionModifier_1.DataPointSelectionModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.MouseWheelZoom, function (options) { return new MouseWheelZoomModifier_1.MouseWheelZoomModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.PinchZoom, function (options) { return new PinchZoomModifier_1.PinchZoomModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.Rollover, function (options) { return new RolloverModifier_1.RolloverModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.VerticalSlice, function (options) { return new VerticalSliceModifier_1.VerticalSliceModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.RubberBandXYZoom, function (options) { return new RubberBandXyZoomModifier_1.RubberBandXyZoomModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.SeriesSelection, function (options) { return new SeriesSelectionModifier_1.SeriesSelectionModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.AnnotationHover, function (options) { return new AnnotationHoverModifier_1.AnnotationHoverModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.XAxisDrag, function (options) { return new XAxisDragModifier_1.XAxisDragModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.YAxisDrag, function (options) { return new YAxisDragModifier_1.YAxisDragModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.ZoomExtents, function (options) { return new ZoomExtentsModifier_1.ZoomExtentsModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.ZoomPan, function (options) { return new ZoomPanModifier_1.ZoomPanModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.OverviewRangeSelection, function (options) { return new OverviewRangeSelectionModifier_1.OverviewRangeSelectionModifier(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Chart2DModifier, ChartModifierType_1.EChart2DModifierType.Legend, function (options) { return new LegendModifier_1.LegendModifier(options); }, true);\r\n/**\r\n * Build one or more chart modifiers from a definition that can be pure data.\r\n * @param definition One or an array of {@link TModifierDefinition}\r\n * @returns An array of modifiers\r\n */\r\nvar buildModifiers = function (definition) {\r\n if (typeof definition === \"string\") {\r\n definition = JSON.parse(definition, chartBuilder_1.chartReviver);\r\n }\r\n var modifiers = [];\r\n if (Array.isArray(definition)) {\r\n for (var _i = 0, definition_1 = definition; _i < definition_1.length; _i++) {\r\n var modifier = definition_1[_i];\r\n modifiers.push(buildModifier(modifier));\r\n }\r\n }\r\n else {\r\n modifiers.push(buildModifier(definition));\r\n }\r\n return modifiers;\r\n};\r\nexports.buildModifiers = buildModifiers;\r\nvar buildModifier = function (definition) {\r\n if (definition.type === ChartModifierType_1.EChart2DModifierType.Custom) {\r\n return (0, classFactory_1.createType)(BaseType_1.EBaseType.Chart2DModifier, definition.customType, null, definition.options);\r\n }\r\n else {\r\n return (0, classFactory_1.createType)(BaseType_1.EBaseType.Chart2DModifier, definition.type, null, definition.options);\r\n }\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.buildSeries = void 0;\r\nvar DataPointSelectionPaletteProvider_1 = require(\"../Charting/Model/DataPointSelectionPaletteProvider\");\r\nvar IDataSeries_1 = require(\"../Charting/Model/IDataSeries\");\r\nvar IPointMetadata_1 = require(\"../Charting/Model/IPointMetadata\");\r\nvar PaletteFactory_1 = require(\"../Charting/Model/PaletteFactory\");\r\nvar CrossPointMarker_1 = require(\"../Charting/Visuals/PointMarkers/CrossPointMarker\");\r\nvar EllipsePointMarker_1 = require(\"../Charting/Visuals/PointMarkers/EllipsePointMarker\");\r\nvar SpritePointMarker_1 = require(\"../Charting/Visuals/PointMarkers/SpritePointMarker\");\r\nvar SquarePointMarker_1 = require(\"../Charting/Visuals/PointMarkers/SquarePointMarker\");\r\nvar TrianglePointMarker_1 = require(\"../Charting/Visuals/PointMarkers/TrianglePointMarker\");\r\nvar XPointMarker_1 = require(\"../Charting/Visuals/PointMarkers/XPointMarker\");\r\nvar FadeAnimation_1 = require(\"../Charting/Visuals/RenderableSeries/Animations/FadeAnimation\");\r\nvar ScaleAnimation_1 = require(\"../Charting/Visuals/RenderableSeries/Animations/ScaleAnimation\");\r\nvar SweepAnimation_1 = require(\"../Charting/Visuals/RenderableSeries/Animations/SweepAnimation\");\r\nvar WaveAnimation_1 = require(\"../Charting/Visuals/RenderableSeries/Animations/WaveAnimation\");\r\nvar BandSeriesDataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/BandSeriesDataLabelProvider\");\r\nvar BubbleSeriesDataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/BubbleSeriesDataLabelProvider\");\r\nvar ColumnSeriesDataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/ColumnSeriesDataLabelProvider\");\r\nvar ContoursDataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/ContoursDataLabelProvider\");\r\nvar DataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider\");\r\nvar HeatMapDataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/HeatMapDataLabelProvider\");\r\nvar LineSeriesDataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/LineSeriesDataLabelProvider\");\r\nvar NonUniformHeatmapDataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/NonUniformHeatmapDataLabelProvider\");\r\nvar TextDataLabelProvider_1 = require(\"../Charting/Visuals/RenderableSeries/DataLabels/TextDataLabelProvider\");\r\nvar FastBandRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastBandRenderableSeries\");\r\nvar FastBubbleRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries\");\r\nvar FastCandlestickRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastCandlestickRenderableSeries\");\r\nvar FastColumnRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastColumnRenderableSeries\");\r\nvar FastErrorBarsRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastErrorBarsRenderableSeries\");\r\nvar FastImpulseRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastImpulseRenderableSeries\");\r\nvar FastLineRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastLineRenderableSeries\");\r\nvar FastMountainRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastMountainRenderableSeries\");\r\nvar FastOhlcRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastOhlcRenderableSeries\");\r\nvar FastTextRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/FastTextRenderableSeries\");\r\nvar GlowEffect_1 = require(\"../Charting/Visuals/RenderableSeries/GlowEffect\");\r\nvar NonUniformHeatmapRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/NonUniformHeatmapRenderableSeries\");\r\nvar ShadowEffect_1 = require(\"../Charting/Visuals/RenderableSeries/ShadowEffect\");\r\nvar SplineBandRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/SplineBandRenderableSeries\");\r\nvar SplineLineRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/SplineLineRenderableSeries\");\r\nvar SplineMountainRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries\");\r\nvar StackedColumnCollection_1 = require(\"../Charting/Visuals/RenderableSeries/StackedColumnCollection\");\r\nvar StackedColumnRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries\");\r\nvar StackedMountainCollection_1 = require(\"../Charting/Visuals/RenderableSeries/StackedMountainCollection\");\r\nvar StackedMountainRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries\");\r\nvar UniformContoursRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries\");\r\nvar UniformHeatmapRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries\");\r\nvar XyScatterRenderableSeries_1 = require(\"../Charting/Visuals/RenderableSeries/XyScatterRenderableSeries\");\r\nvar AnimationType_1 = require(\"../types/AnimationType\");\r\nvar BaseType_1 = require(\"../types/BaseType\");\r\nvar DataLabelProviderType_1 = require(\"../types/DataLabelProviderType\");\r\nvar PaletteProviderType_1 = require(\"../types/PaletteProviderType\");\r\nvar PointMarkerType_1 = require(\"../types/PointMarkerType\");\r\nvar SeriesType_1 = require(\"../types/SeriesType\");\r\nvar ShaderEffectType_1 = require(\"../types/ShaderEffectType\");\r\nvar buildDataSeries_1 = require(\"./buildDataSeries\");\r\nvar chartBuilder_1 = require(\"./chartBuilder\");\r\nvar classFactory_1 = require(\"./classFactory\");\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.PointMarker, PointMarkerType_1.EPointMarkerType.Cross, function (wasm, options) { return new CrossPointMarker_1.CrossPointMarker(wasm, options); }, true);\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.PointMarker, PointMarkerType_1.EPointMarkerType.Ellipse, function (wasm, options) { return new EllipsePointMarker_1.EllipsePointMarker(wasm, options); }, true);\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.PointMarker, PointMarkerType_1.EPointMarkerType.Sprite, function (wasm, options) { return new SpritePointMarker_1.SpritePointMarker(wasm, options); }, true);\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.PointMarker, PointMarkerType_1.EPointMarkerType.Square, function (wasm, options) { return new SquarePointMarker_1.SquarePointMarker(wasm, options); }, true);\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.PointMarker, PointMarkerType_1.EPointMarkerType.Triangle, function (wasm, options) { return new TrianglePointMarker_1.TrianglePointMarker(wasm, options); }, true);\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.PointMarker, PointMarkerType_1.EPointMarkerType.X, function (wasm, options) { return new XPointMarker_1.XPointMarker(wasm, options); }, true);\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.ShaderEffect, ShaderEffectType_1.EShaderEffectType.Glow, function (wasm, options) { return new GlowEffect_1.GlowEffect(wasm, options); }, true);\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.ShaderEffect, ShaderEffectType_1.EShaderEffectType.Shadow, function (wasm, options) { return new ShadowEffect_1.ShadowEffect(wasm, options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Animation, AnimationType_1.EAnimationType.Fade, function (options) { return new FadeAnimation_1.FadeAnimation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Animation, AnimationType_1.EAnimationType.Scale, function (options) { return new ScaleAnimation_1.ScaleAnimation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Animation, AnimationType_1.EAnimationType.Sweep, function (options) { return new SweepAnimation_1.SweepAnimation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Animation, AnimationType_1.EAnimationType.Wave, function (options) { return new WaveAnimation_1.WaveAnimation(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.Default, function (options) { return new DataLabelProvider_1.DataLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.Line, function (options) { return new LineSeriesDataLabelProvider_1.LineSeriesDataLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.Column, function (options) { return new ColumnSeriesDataLabelProvider_1.ColumnSeriesDataLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.Text, function (options) { return new TextDataLabelProvider_1.TextDataLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.Heatmap, function (options) { return new HeatMapDataLabelProvider_1.HeatMapDataLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.NonUniformHeatmap, function (options) { return new NonUniformHeatmapDataLabelProvider_1.NonUniformHeatMapDataLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.Bubble, function (options) { return new BubbleSeriesDataLabelProvider_1.BubbleSeriesDataLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.Band, function (options) { return new BandSeriesDataLabelProvider_1.BandSeriesDataLabelProvider(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.DataLabelProvider, DataLabelProviderType_1.EDataLabelProviderType.Contours, function (options) { return new ContoursDataLabelProvider_1.ContoursDataLabelProvider(options); }, true);\r\n// Metadata\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.MetadataGenerator, \"Template\", function (template) { return new IPointMetadata_1.TemplateMetadataGenerator(template); }, true);\r\n// PaletteProviders\r\n// Default palette provider is not required as it is created automatically if none is provided.\r\n(0, classFactory_1.registerWasmType)(BaseType_1.EBaseType.PaletteProvider, PaletteProviderType_1.EPaletteProviderType.Gradient, function (wasmContext, gradientBrush) { return PaletteFactory_1.PaletteFactory.createGradient(wasmContext, gradientBrush); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.PaletteProvider, PaletteProviderType_1.EPaletteProviderType.DataPointSelection, function (selectedStyle) { return new DataPointSelectionPaletteProvider_1.DataPointSelectionPaletteProvider(selectedStyle); }, true);\r\nfunction hasOwnProperty(obj, prop) {\r\n return obj.hasOwnProperty(prop);\r\n}\r\nvar getDataSeriesDefinition = function (seriesDefinition) {\r\n if (hasOwnProperty(seriesDefinition, \"xyData\")) {\r\n return { type: IDataSeries_1.EDataSeriesType.Xy, options: seriesDefinition.xyData };\r\n }\r\n else if (hasOwnProperty(seriesDefinition, \"xyyData\")) {\r\n return { type: IDataSeries_1.EDataSeriesType.Xyy, options: seriesDefinition.xyyData };\r\n }\r\n else if (hasOwnProperty(seriesDefinition, \"xyzData\")) {\r\n return { type: IDataSeries_1.EDataSeriesType.Xyz, options: seriesDefinition.xyzData };\r\n }\r\n else if (hasOwnProperty(seriesDefinition, \"xyTextData\")) {\r\n return { type: IDataSeries_1.EDataSeriesType.XyText, options: seriesDefinition.xyTextData };\r\n }\r\n else if (hasOwnProperty(seriesDefinition, \"hlcData\")) {\r\n return { type: IDataSeries_1.EDataSeriesType.Hlc, options: seriesDefinition.hlcData };\r\n }\r\n else if (hasOwnProperty(seriesDefinition, \"ohlcData\")) {\r\n return { type: IDataSeries_1.EDataSeriesType.Ohlc, options: seriesDefinition.ohlcData };\r\n }\r\n else if (hasOwnProperty(seriesDefinition, \"heatmapData\") &&\r\n (seriesDefinition.type === SeriesType_1.ESeriesType.UniformHeatmapSeries ||\r\n seriesDefinition.type === SeriesType_1.ESeriesType.UniformContoursSeries)) {\r\n return { type: IDataSeries_1.EDataSeriesType.HeatmapUniform, options: seriesDefinition.heatmapData };\r\n }\r\n else if (hasOwnProperty(seriesDefinition, \"heatmapData\") &&\r\n seriesDefinition.type === SeriesType_1.ESeriesType.NonUniformHeatmapSeries) {\r\n return { type: IDataSeries_1.EDataSeriesType.HeatmapNonUniform, options: seriesDefinition.heatmapData };\r\n }\r\n else {\r\n return undefined;\r\n }\r\n};\r\n/**\r\n * Build one or more renderable series from a definition that can be pure data.\r\n * @param wasmContext A {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart | SciChart 3D WebAssembly Context}\r\n * @param definition One or an array of {@link TSeriesDefinition}\r\n * @param sharedData Optional {@link TSharedDataDefinition} to define shared data which can be referenced by the renderable series\r\n * @returns An array of {@link IRenderableSeries}.\r\n */\r\nvar buildSeries = function (wasmContext, definition, sharedData) {\r\n if (typeof definition === \"string\") {\r\n definition = JSON.parse(definition, chartBuilder_1.chartReviver);\r\n }\r\n if (typeof sharedData === \"string\") {\r\n sharedData = JSON.parse(sharedData, chartBuilder_1.chartReviver);\r\n }\r\n var result = [];\r\n if (!Array.isArray(definition)) {\r\n definition = [definition];\r\n }\r\n for (var _i = 0, definition_1 = definition; _i < definition_1.length; _i++) {\r\n var seriesDef = definition_1[_i];\r\n var series = void 0;\r\n if (seriesDef.type === SeriesType_1.ESeriesType.BandSeries) {\r\n series = new FastBandRenderableSeries_1.FastBandRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.BubbleSeries) {\r\n series = new FastBubbleRenderableSeries_1.FastBubbleRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.CandlestickSeries) {\r\n series = new FastCandlestickRenderableSeries_1.FastCandlestickRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.ColumnSeries) {\r\n series = new FastColumnRenderableSeries_1.FastColumnRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.ImpulseSeries) {\r\n series = new FastImpulseRenderableSeries_1.FastImpulseRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.LineSeries) {\r\n series = new FastLineRenderableSeries_1.FastLineRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.MountainSeries) {\r\n series = new FastMountainRenderableSeries_1.FastMountainRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.ErrorBarsSeries) {\r\n series = new FastErrorBarsRenderableSeries_1.FastErrorBarsRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.OhlcSeries) {\r\n series = new FastOhlcRenderableSeries_1.FastOhlcRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.ScatterSeries) {\r\n series = new XyScatterRenderableSeries_1.XyScatterRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.SplineBandSeries) {\r\n series = new SplineBandRenderableSeries_1.SplineBandRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.SplineLineSeries) {\r\n series = new SplineLineRenderableSeries_1.SplineLineRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.SplineMountainSeries) {\r\n series = new SplineMountainRenderableSeries_1.SplineMountainRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.UniformHeatmapSeries) {\r\n series = new UniformHeatmapRenderableSeries_1.UniformHeatmapRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.NonUniformHeatmapSeries) {\r\n series = new NonUniformHeatmapRenderableSeries_1.NonUniformHeatmapRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.UniformContoursSeries) {\r\n series = new UniformContoursRenderableSeries_1.UniformContoursRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.TextSeries) {\r\n series = new FastTextRenderableSeries_1.FastTextRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.StackedColumnSeries) {\r\n series = new StackedColumnRenderableSeries_1.StackedColumnRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.StackedMountainSeries) {\r\n series = new StackedMountainRenderableSeries_1.StackedMountainRenderableSeries(wasmContext, seriesDef.options);\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.StackedColumnCollection) {\r\n var col = new StackedColumnCollection_1.StackedColumnCollection(wasmContext, seriesDef.options);\r\n col.add.apply(col, (0, exports.buildSeries)(wasmContext, seriesDef.series, sharedData));\r\n series = col;\r\n }\r\n else if (seriesDef.type === SeriesType_1.ESeriesType.StackedMountainCollection) {\r\n var col = new StackedMountainCollection_1.StackedMountainCollection(wasmContext, seriesDef.options);\r\n col.add.apply(col, (0, exports.buildSeries)(wasmContext, seriesDef.series, sharedData));\r\n series = col;\r\n }\r\n if (series) {\r\n var dataSeries = getDataSeriesFromRenderableSeriesDefinition(wasmContext, seriesDef, sharedData);\r\n if (dataSeries) {\r\n series.dataSeries = dataSeries;\r\n }\r\n }\r\n if (series) {\r\n result.push(series);\r\n }\r\n }\r\n return result;\r\n};\r\nexports.buildSeries = buildSeries;\r\nvar getDataSeriesFromRenderableSeriesDefinition = function (wasmContext, renderableSeriesDefinition, sharedData) {\r\n var dataSeriesDefinition = getDataSeriesDefinition(renderableSeriesDefinition);\r\n if (!dataSeriesDefinition) {\r\n return undefined;\r\n }\r\n if (renderableSeriesDefinition.options &&\r\n \"dataSeries\" in renderableSeriesDefinition.options &&\r\n renderableSeriesDefinition.options.dataSeries &&\r\n dataSeriesDefinition.options &&\r\n \"filter\" in dataSeriesDefinition.options &&\r\n dataSeriesDefinition.options.filter) {\r\n return (0, buildDataSeries_1.buildDataSeries)(wasmContext, dataSeriesDefinition, sharedData, renderableSeriesDefinition.options.dataSeries);\r\n }\r\n return (0, buildDataSeries_1.buildDataSeries)(wasmContext, dataSeriesDefinition, sharedData);\r\n};\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.configure2DSurface = exports.buildPieChart = exports.build2DChart = void 0;\r\nvar BottomAlignedInnerAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/BottomAlignedInnerAxisLayoutStrategy\");\r\nvar BottomAlignedOuterAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/BottomAlignedOuterAxisLayoutStrategy\");\r\nvar BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy\");\r\nvar CentralAxesLayoutManager_1 = require(\"../Charting/LayoutManager/CentralAxesLayoutManager\");\r\nvar LayoutManager_1 = require(\"../Charting/LayoutManager/LayoutManager\");\r\nvar LeftAlignedInnerAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/LeftAlignedInnerAxisLayoutStrategy\");\r\nvar LeftAlignedOuterAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/LeftAlignedOuterAxisLayoutStrategy\");\r\nvar LeftAlignedOuterVerticallyStackedAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/LeftAlignedOuterVerticallyStackedAxisLayoutStrategy\");\r\nvar RightAlignedInnerAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/RightAlignedInnerAxisLayoutStrategy\");\r\nvar RightAlignedOuterAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/RightAlignedOuterAxisLayoutStrategy\");\r\nvar RightAlignedOuterVerticallyStackedAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/RightAlignedOuterVerticallyStackedAxisLayoutStrategy\");\r\nvar TopAlignedInnerAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/TopAlignedInnerAxisLayoutStrategy\");\r\nvar TopAlignedOuterAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/TopAlignedOuterAxisLayoutStrategy\");\r\nvar TopAlignedOuterHorizontallyStackedAxisLayoutStrategy_1 = require(\"../Charting/LayoutManager/TopAlignedOuterHorizontallyStackedAxisLayoutStrategy\");\r\nvar SciChartJsNavyTheme_1 = require(\"../Charting/Themes/SciChartJsNavyTheme\");\r\nvar SciChartJSDarkTheme_1 = require(\"../Charting/Themes/SciChartJSDarkTheme\");\r\nvar SciChartJSDarkv2Theme_1 = require(\"../Charting/Themes/SciChartJSDarkv2Theme\");\r\nvar SciChartJSLightTheme_1 = require(\"../Charting/Themes/SciChartJSLightTheme\");\r\nvar NumericAxis_1 = require(\"../Charting/Visuals/Axis/NumericAxis\");\r\nvar loader_1 = require(\"../Charting/Visuals/loader\");\r\nvar PieSegment_1 = require(\"../Charting/Visuals/SciChartPieSurface/PieSegment/PieSegment\");\r\nvar SciChartPieSurface_1 = require(\"../Charting/Visuals/SciChartPieSurface/SciChartPieSurface\");\r\nvar SciChartSurface_1 = require(\"../Charting/Visuals/SciChartSurface\");\r\nvar BaseType_1 = require(\"../types/BaseType\");\r\nvar LayoutMangerType_1 = require(\"../types/LayoutMangerType\");\r\nvar LayoutStrategyType_1 = require(\"../types/LayoutStrategyType\");\r\nvar buildAnnotations_1 = require(\"./buildAnnotations\");\r\nvar buildAxis_1 = require(\"./buildAxis\");\r\nvar buildModifiers_1 = require(\"./buildModifiers\");\r\nvar buildSeries_1 = require(\"./buildSeries\");\r\nvar chartBuilder_1 = require(\"./chartBuilder\");\r\nvar classFactory_1 = require(\"./classFactory\");\r\nvar ThemeProviderType_1 = require(\"../types/ThemeProviderType\");\r\nvar perfomance_1 = require(\"../utils/perfomance\");\r\n// register themes\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.ThemeProvider, ThemeProviderType_1.EThemeProviderType.Light, function () { return new SciChartJSLightTheme_1.SciChartJSLightTheme(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.ThemeProvider, ThemeProviderType_1.EThemeProviderType.DarkV2, function () { return new SciChartJSDarkv2Theme_1.SciChartJSDarkv2Theme(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.ThemeProvider, ThemeProviderType_1.EThemeProviderType.Dark, function () { return new SciChartJSDarkTheme_1.SciChartJSDarkTheme(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.ThemeProvider, ThemeProviderType_1.EThemeProviderType.Navy, function () { return new SciChartJsNavyTheme_1.SciChartJsNavyTheme(); }, true);\r\n// register Layout managers\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutManager, LayoutMangerType_1.ELayoutManagerType.Default, function (options) { return new LayoutManager_1.LayoutManager(options); }, true);\r\n// TODO builder api support for VerticalGroup and synced layoutmanagers\r\n// registerType(EBaseType.LayoutManager, ELayoutManagerType.Synchronised, (options?: any) => new SynchronizedLayoutManager(options), true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutManager, LayoutMangerType_1.ELayoutManagerType.CentralAxes, function (options) { return new CentralAxesLayoutManager_1.CentralAxesLayoutManager(options); }, true);\r\n// register Layout Strategies\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.BottomInner, function (options) { return new BottomAlignedInnerAxisLayoutStrategy_1.BottomAlignedInnerAxisLayoutStrategy(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.BottomOuter, function (options) { return new BottomAlignedOuterAxisLayoutStrategy_1.BottomAlignedOuterAxisLayoutStrategy(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.BottomStacked, function (options) { return new BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy_1.BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.LeftInner, function (options) { return new LeftAlignedInnerAxisLayoutStrategy_1.LeftAlignedInnerAxisLayoutStrategy(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.LeftOuter, function (options) { return new LeftAlignedOuterAxisLayoutStrategy_1.LeftAlignedOuterAxisLayoutStrategy(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.LeftStacked, function (options) { return new LeftAlignedOuterVerticallyStackedAxisLayoutStrategy_1.LeftAlignedOuterVerticallyStackedAxisLayoutStrategy(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.RightInner, function (options) { return new RightAlignedInnerAxisLayoutStrategy_1.RightAlignedInnerAxisLayoutStrategy(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.RightOuter, function (options) { return new RightAlignedOuterAxisLayoutStrategy_1.RightAlignedOuterAxisLayoutStrategy(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.RightStacked, function (options) { return new RightAlignedOuterVerticallyStackedAxisLayoutStrategy_1.RightAlignedOuterVerticallyStackedAxisLayoutStrategy(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.TopInner, function (options) { return new TopAlignedInnerAxisLayoutStrategy_1.TopAlignedInnerAxisLayoutStrategy(options); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.TopOuter, function (options) { return new TopAlignedOuterAxisLayoutStrategy_1.TopAlignedOuterAxisLayoutStrategy(); }, true);\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.LayoutStrategy, LayoutStrategyType_1.ELayoutStrategyType.TopStacked, function (options) { return new TopAlignedOuterHorizontallyStackedAxisLayoutStrategy_1.TopAlignedOuterHorizontallyStackedAxisLayoutStrategy(); }, true);\r\n// register loaders\r\n(0, classFactory_1.registerType)(BaseType_1.EBaseType.Loader, \"Default\", function () { return new loader_1.DefaultSciChartLoader(); }, true);\r\n/**\r\n * Construct a chart with {@link SciChartSurface} using a {@link ISciChart2DDefinition} which can be pure data.\r\n * @remarks This method is async and must be awaited\r\n * @param divElementId The Div Element ID where the {@link SciChartSurface} will reside\r\n * @param definition the {@link ISciChart2DDefinition}\r\n */\r\nvar build2DChart = function (divElementId, definition) { return __awaiter(void 0, void 0, void 0, function () {\r\n var wasmChart, wasmContext, sciChartSurface, mark;\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (typeof definition === \"string\") {\r\n definition = JSON.parse(definition, chartBuilder_1.chartReviver);\r\n }\r\n if (!(definition === null || definition === void 0 ? void 0 : definition.createSingle)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, SciChartSurface_1.SciChartSurface.createSingle(divElementId, definition === null || definition === void 0 ? void 0 : definition.surface)];\r\n case 1:\r\n wasmChart = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, SciChartSurface_1.SciChartSurface.create(divElementId, definition === null || definition === void 0 ? void 0 : definition.surface)];\r\n case 3:\r\n wasmChart = _b.sent();\r\n _b.label = 4;\r\n case 4:\r\n wasmContext = wasmChart.wasmContext, sciChartSurface = wasmChart.sciChartSurface;\r\n mark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.SetupStart, { contextId: sciChartSurface.id });\r\n configure2DSurface(definition, sciChartSurface, wasmContext);\r\n if (!definition.onCreated) return [3 /*break*/, 6];\r\n if (typeof definition.onCreated === \"string\") {\r\n sciChartSurface.onCreatedName = definition.onCreated;\r\n definition.onCreated = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OnCreateFunction, definition.onCreated);\r\n }\r\n return [4 /*yield*/, definition.onCreated(sciChartSurface)];\r\n case 5:\r\n _b.sent();\r\n _b.label = 6;\r\n case 6:\r\n // TODO consider if this makes sense:\r\n // if suspended, allows to execute onCreated before doing actual rendering\r\n // if (definition.surface?.createSuspended ?? SciChartDefaults.createSuspended) {\r\n // sciChartSurface.resume();\r\n // }\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.SetupEnd, {\r\n contextId: sciChartSurface.id,\r\n relatedId: (_a = mark === null || mark === void 0 ? void 0 : mark.detail) === null || _a === void 0 ? void 0 : _a.relatedId\r\n });\r\n return [2 /*return*/, { wasmContext: wasmContext, sciChartSurface: sciChartSurface }];\r\n }\r\n });\r\n}); };\r\nexports.build2DChart = build2DChart;\r\n/**\r\n * Construct a chart with {@link SciChartPieSurface} using a {@link ISciChartPieDefinition} which can be pure data.\r\n * @remarks This method is async and must be awaited\r\n * @param divElementId The Div Element ID where the {@link SciChartPieSurface} will reside\r\n * @param definition the {@link ISciChartPieDefinition}\r\n */\r\nvar buildPieChart = function (divElementId, definition) { return __awaiter(void 0, void 0, void 0, function () {\r\n var scps, _i, _a, segmentOption, segment;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (typeof definition === \"string\") {\r\n definition = JSON.parse(definition, chartBuilder_1.chartReviver);\r\n }\r\n return [4 /*yield*/, SciChartPieSurface_1.SciChartPieSurface.create(divElementId, definition === null || definition === void 0 ? void 0 : definition.surface)];\r\n case 1:\r\n scps = _b.sent();\r\n if (definition === null || definition === void 0 ? void 0 : definition.segments) {\r\n for (_i = 0, _a = definition === null || definition === void 0 ? void 0 : definition.segments; _i < _a.length; _i++) {\r\n segmentOption = _a[_i];\r\n segment = new PieSegment_1.PieSegment(segmentOption);\r\n scps.pieSegments.add(segment);\r\n }\r\n }\r\n if (definition.onCreated) {\r\n if (typeof definition.onCreated === \"string\") {\r\n scps.onCreatedName = definition.onCreated;\r\n // @ts-ignore\r\n definition.onCreated = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OnCreateFunction, definition.onCreated);\r\n }\r\n // @ts-ignore\r\n definition.onCreated(scps);\r\n }\r\n return [2 /*return*/, scps];\r\n }\r\n });\r\n}); };\r\nexports.buildPieChart = buildPieChart;\r\nfunction configure2DSurface(definition, sciChartSurface, wasmContext) {\r\n var _a, _b, _c, _d, _e;\r\n if (definition.xAxes) {\r\n (_a = sciChartSurface.xAxes).add.apply(_a, (0, buildAxis_1.buildAxes)(wasmContext, definition.xAxes));\r\n }\r\n if (sciChartSurface.xAxes.size() === 0 && !definition.subCharts) {\r\n sciChartSurface.xAxes.add(new NumericAxis_1.NumericAxis(wasmContext));\r\n }\r\n if (definition.yAxes) {\r\n (_b = sciChartSurface.yAxes).add.apply(_b, (0, buildAxis_1.buildAxes)(wasmContext, definition.yAxes));\r\n }\r\n if (sciChartSurface.yAxes.size() === 0 && !definition.subCharts) {\r\n sciChartSurface.yAxes.add(new NumericAxis_1.NumericAxis(wasmContext));\r\n }\r\n if (definition.series) {\r\n (_c = sciChartSurface.renderableSeries).add.apply(_c, (0, buildSeries_1.buildSeries)(wasmContext, definition.series, definition.sharedData));\r\n }\r\n if (definition.modifiers) {\r\n (_d = sciChartSurface.chartModifiers).add.apply(_d, (0, buildModifiers_1.buildModifiers)(definition.modifiers));\r\n }\r\n if (definition.annotations) {\r\n (_e = sciChartSurface.annotations).add.apply(_e, (0, buildAnnotations_1.buildAnnotations)(definition.annotations));\r\n }\r\n if (definition.subCharts && !sciChartSurface.isSubSurface) {\r\n for (var _i = 0, _f = definition.subCharts; _i < _f.length; _i++) {\r\n var subChartDefinition = _f[_i];\r\n var subSurface = sciChartSurface.addSubChart(subChartDefinition.surface);\r\n configure2DSurface(subChartDefinition, subSurface, wasmContext);\r\n }\r\n }\r\n}\r\nexports.configure2DSurface = configure2DSurface;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.chartBuilder = exports.ensureRegistrations = exports.configureChart = exports.buildChart = exports.chartReviver = void 0;\r\nvar NumberRange_1 = require(\"../Core/NumberRange\");\r\nvar Thickness_1 = require(\"../Core/Thickness\");\r\nvar SciChartSurfaceType_1 = require(\"../types/SciChartSurfaceType\");\r\nvar buildAnnotations_1 = require(\"./buildAnnotations\");\r\nvar buildAxis_1 = require(\"./buildAxis\");\r\nvar buildDataSeries_1 = require(\"./buildDataSeries\");\r\nvar buildModifiers_1 = require(\"./buildModifiers\");\r\nvar buildSeries_1 = require(\"./buildSeries\");\r\nvar buildSurface_1 = require(\"./buildSurface\");\r\n// import { chartReviver } from \"./chartReviver\";\r\nvar classFactory_1 = require(\"./classFactory\");\r\n/**\r\n * The reviver function needed when parsing definitions to JSON\r\n */\r\nfunction chartReviver(key, value) {\r\n switch (key) {\r\n case \"visibleRange\":\r\n case \"visibleRangeLimit\":\r\n case \"growBy\":\r\n return new NumberRange_1.NumberRange(value.min, value.max);\r\n case \"padding\":\r\n var t = value;\r\n return new Thickness_1.Thickness(t.top, t.right, t.bottom, t.left);\r\n default:\r\n // handle NaN serialization/deserialization since NaN is stringified as \"null\"\r\n return value === null ? NaN : value;\r\n }\r\n}\r\nexports.chartReviver = chartReviver;\r\n/**\r\n * Builds an entire chart from a definition that can be pure data.\r\n * @param divElementId The Div Element ID where the {@link SciChartSurface} will reside\r\n * @param definition a {@link TSurfaceDefinition } or a string which will be parsed to it.\r\n * @returns\r\n */\r\nvar buildChart = function (divElementId, definition) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (typeof definition === \"string\") {\r\n definition = JSON.parse(definition, chartReviver);\r\n }\r\n if (!definition) {\r\n definition = {};\r\n }\r\n if (!(\"type\" in definition)) return [3 /*break*/, 6];\r\n if (!(definition.type === SciChartSurfaceType_1.ESciChartSurfaceType.Default2D)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, (0, buildSurface_1.build2DChart)(divElementId, definition.options)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n if (!(definition.type === SciChartSurfaceType_1.ESciChartSurfaceType.Pie2D)) return [3 /*break*/, 4];\r\n return [4 /*yield*/, (0, buildSurface_1.buildPieChart)(divElementId, definition.options)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n case 4: \r\n // @ts-ignore\r\n throw new Error(\"Surface type: \".concat(definition.type, \" is not yet supported by the builder api\"));\r\n case 5: return [3 /*break*/, 8];\r\n case 6: return [4 /*yield*/, (0, buildSurface_1.build2DChart)(divElementId, definition)];\r\n case 7: return [2 /*return*/, _a.sent()];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nexports.buildChart = buildChart;\r\n/**\r\n * Configures an existing surface using a definition.\r\n * This is useful if you need to use the wasmContext in methods or classes you use in your definition\r\n * @param sciChartSurface\r\n * @param wasmContext The webassemply context. Pass undefined for a pie surface.\r\n * @param definition\r\n */\r\nvar configureChart = function (sciChartSurface, wasmContext, definition) {\r\n if (typeof definition === \"string\") {\r\n definition = JSON.parse(definition, chartReviver);\r\n }\r\n if (!definition) {\r\n definition = {};\r\n }\r\n if (\"type\" in definition) {\r\n if (definition.type === SciChartSurfaceType_1.ESciChartSurfaceType.Default2D) {\r\n // TODO check the definition type matches the surface\r\n (0, buildSurface_1.configure2DSurface)(definition.options, sciChartSurface, wasmContext);\r\n }\r\n else if (definition.type === SciChartSurfaceType_1.ESciChartSurfaceType.Pie2D) {\r\n //return await buildPieChart(divElementId, definition.options);\r\n }\r\n else {\r\n // @ts-ignore\r\n throw new Error(\"Surface type: \".concat(definition.type, \" is not yet supported by the builder api\"));\r\n }\r\n }\r\n else {\r\n (0, buildSurface_1.configure2DSurface)(definition, sciChartSurface, wasmContext);\r\n }\r\n};\r\nexports.configureChart = configureChart;\r\n/**\r\n * This is just something to call to ensure that all the registrations are run before a surface is created\r\n */\r\nvar ensureRegistrations = function () { };\r\nexports.ensureRegistrations = ensureRegistrations;\r\nexports.chartBuilder = {\r\n /** @inheritdoc */\r\n buildChart: exports.buildChart,\r\n /** @inheritdoc */\r\n chartReviver: chartReviver,\r\n /** @inheritdoc */\r\n build2DChart: buildSurface_1.build2DChart,\r\n /** @inheritdoc */\r\n buildPieChart: buildSurface_1.buildPieChart,\r\n /** @inheritdoc */\r\n configureChart: exports.configureChart,\r\n /** @inheritdoc */\r\n buildSeries: buildSeries_1.buildSeries,\r\n /** @inheritdoc */\r\n buildDataSeries: buildDataSeries_1.buildDataSeries,\r\n /** @inheritdoc */\r\n buildModifiers: buildModifiers_1.buildModifiers,\r\n /** @inheritdoc */\r\n buildAxes: buildAxis_1.buildAxes,\r\n /** @inheritdoc */\r\n buildAnnotations: buildAnnotations_1.buildAnnotations,\r\n /** @inheritdoc */\r\n registerType: classFactory_1.registerType,\r\n /** @inheritdoc */\r\n registerWasmType: classFactory_1.registerWasmType,\r\n /** @inheritdoc */\r\n registerFunction: classFactory_1.registerFunction\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSubTypes = exports.createType = exports.getFunction = exports.registerFunction = exports.registerWasmType = exports.registerType = void 0;\r\n// tslint:disable: ban-types\r\nvar constructorMap = new Map();\r\n/**\r\n * Register a function that returns an object of the specified type.\r\n * @param baseType The {@link EBaseType} of the object that is being registered.\r\n * @param type The name of the type, which should be a subtype of the baseType.\r\n * For custom types, use the actual type name, not the \"Custom\" value on the subType enum.\r\n * @param constructor A function that takes an optional options argument and returns an instance of the desired type.\r\n * @param overWrite Whether to override an existing registration for the type. Default false.\r\n */\r\nvar registerType = function (baseType, type, constructor, overWrite) {\r\n if (overWrite === void 0) { overWrite = false; }\r\n var typeName = baseType + \":\" + type;\r\n if (constructorMap.has(typeName) && !overWrite) {\r\n throw new Error(\"Type \" + typeName + \" is already registered. Call with overWrite: true if you intended to replace it.\");\r\n }\r\n constructorMap.set(typeName, { func: constructor });\r\n};\r\nexports.registerType = registerType;\r\n/**\r\n * Register a function that requires a webAssemblyContext to return an object of the specified type.\r\n * @param baseType The {@link EBaseType} of the object that is being registered.\r\n * @param type The name of the type, which should be a subtype of the baseType.\r\n * For custom types, use the actual type name, not the \"Custom\" value on the subType enum.\r\n * @param constructor A function that takes a {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart | SciChart 3D WebAssembly Context}\r\n * and an optional options argument and returns an instance of the desired type.\r\n * @param overWrite Whether to override an existing registration for the type. Default false.\r\n */\r\nvar registerWasmType = function (baseType, type, constructor, overWrite) {\r\n if (overWrite === void 0) { overWrite = false; }\r\n var typeName = baseType + \":\" + type;\r\n if (constructorMap.has(typeName) && !overWrite) {\r\n throw new Error(\"Type \" + typeName + \" is already registered. Call with overWrite: true if you intended to replace it.\");\r\n }\r\n constructorMap.set(typeName, { wasm: true, func: constructor });\r\n};\r\nexports.registerWasmType = registerWasmType;\r\n/**\r\n * Register a pure function\r\n * @param baseType The base type for, which indicates where the function will be used, Either OptionFunction or OnCreated\r\n * @param type The name of the function\r\n * @param constructor the function to register\r\n * @param overWrite Whether to override an existing registration for the type name. Default false.\r\n */\r\nvar registerFunction = function (baseType, type, constructor, overWrite) {\r\n if (overWrite === void 0) { overWrite = false; }\r\n var typeName = baseType + \":\" + type;\r\n if (constructorMap.has(typeName) && !overWrite) {\r\n throw new Error(\"Function \" + typeName + \" is already registered. Call with overWrite: true if you intended to replace it.\");\r\n }\r\n constructorMap.set(typeName, { func: constructor });\r\n};\r\nexports.registerFunction = registerFunction;\r\nvar getFunction = function (baseType, type) {\r\n var typeName = baseType + \":\" + type;\r\n var elem = constructorMap.get(typeName);\r\n if (elem) {\r\n return elem.func;\r\n }\r\n else {\r\n throw new Error(\"Nothing registered for \" + typeName);\r\n }\r\n};\r\nexports.getFunction = getFunction;\r\nvar createType = function (baseType, type, wasmContext, options) {\r\n var typeName = baseType + \":\" + type;\r\n var elem = constructorMap.get(typeName);\r\n if (elem) {\r\n var wasm = elem.wasm, func = elem.func;\r\n if (wasm) {\r\n return func(wasmContext, options);\r\n }\r\n else {\r\n return func(options);\r\n }\r\n }\r\n else {\r\n throw new Error(\"Nothing registered for \" + typeName);\r\n }\r\n};\r\nexports.createType = createType;\r\nvar getSubTypes = function (baseType) {\r\n var keys = Array.from(constructorMap.keys());\r\n return keys\r\n .map(function (k) { return k.split(\":\"); })\r\n .filter(function (a) { return a[0] === baseType; })\r\n .map(function (a) { return a[1]; });\r\n};\r\nexports.getSubTypes = getSubTypes;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AnnotationHoverModifier = void 0;\r\nvar IAnnotation_1 = require(\"../../Charting/Visuals/Annotations/IAnnotation\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar PointerEventsMediatorModifier_1 = require(\"./PointerEventsMediatorModifier\");\r\n/**\r\n * Enables hover detection on annotations.\r\n * Accepts {@link IAnnotationHoverModifierOptions}\r\n */\r\nvar AnnotationHoverModifier = /** @class */ (function (_super) {\r\n __extends(AnnotationHoverModifier, _super);\r\n function AnnotationHoverModifier(options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.AnnotationHover;\r\n _this.enableHoverProperty = true;\r\n return _this;\r\n }\r\n AnnotationHoverModifier.prototype.getAllTargets = function () {\r\n var visibleAnnotations = this.parentSurface.annotations.asArray().filter(function (annotation) { return !annotation.isHidden; });\r\n var svgAnnotations = visibleAnnotations.filter(function (annotation) { return annotation.isSvgAnnotation; });\r\n var renderContextAnnotations = visibleAnnotations.filter(function (annotation) { return !annotation.isSvgAnnotation; });\r\n var svgBackgroundAnnotations = svgAnnotations.filter(function (annotation) { return annotation.annotationLayer === IAnnotation_1.EAnnotationLayer.Background; });\r\n var svgForegroundAnnotations = svgAnnotations.filter(function (annotation) { return annotation.annotationLayer === IAnnotation_1.EAnnotationLayer.AboveChart; });\r\n var renderContextBackgroundAnnotations = renderContextAnnotations.filter(function (annotation) { return annotation.annotationLayer === IAnnotation_1.EAnnotationLayer.Background; });\r\n var renderContextAnnotationsBelowChart = renderContextAnnotations.filter(function (annotation) { return annotation.annotationLayer === IAnnotation_1.EAnnotationLayer.BelowChart; });\r\n var renderContextAnnotationsAboveChart = renderContextAnnotations.filter(function (annotation) { return annotation.annotationLayer === IAnnotation_1.EAnnotationLayer.AboveChart; });\r\n return __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], svgBackgroundAnnotations, true), renderContextBackgroundAnnotations, true), renderContextAnnotationsBelowChart, true), renderContextAnnotationsAboveChart, true), svgForegroundAnnotations, true);\r\n };\r\n return AnnotationHoverModifier;\r\n}(PointerEventsMediatorModifier_1.PointerEventsMediatorModifier));\r\nexports.AnnotationHoverModifier = AnnotationHoverModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChartModifierBase = exports.EModifierType = void 0;\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar ExecuteOn_1 = require(\"../../types/ExecuteOn\");\r\nvar guid_1 = require(\"../../utils/guid\");\r\nvar SciChartSurfaceBase_1 = require(\"../Visuals/SciChartSurfaceBase\");\r\nvar constants_1 = require(\"./constants\");\r\nvar EModifierType;\r\n(function (EModifierType) {\r\n EModifierType[\"Chart2DModifier\"] = \"2D Chart Modifier\";\r\n EModifierType[\"Chart3DModifier\"] = \"3D Chart Modifier\";\r\n EModifierType[\"MultiChart2DModifier\"] = \"Multiple 2D Chart Modifier\";\r\n})(EModifierType = exports.EModifierType || (exports.EModifierType = {}));\r\n/**\r\n * Defines a base class to a Chart Modifier - a class which provides Zoom, Pan, Tooltip or interaction behavior\r\n * to SciChart - High Performance Realtime {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n */\r\nvar ChartModifierBase = /** @class */ (function (_super) {\r\n __extends(ChartModifierBase, _super);\r\n function ChartModifierBase(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this) || this;\r\n _this.isEnabledProperty = true;\r\n _this.executeOnProperty = ExecuteOn_1.EExecuteOn.MouseLeftButton;\r\n /**\r\n * Stores info about active pointerdown events\r\n */\r\n _this.activePointerEvents = new Map();\r\n _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n _this.executeOnProperty = (_b = options === null || options === void 0 ? void 0 : options.executeOn) !== null && _b !== void 0 ? _b : _this.executeOn;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.applyTheme = function (themeProvider) {\r\n // TODO: override to apply theme\r\n };\r\n Object.defineProperty(ChartModifierBase.prototype, \"parentSurface\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.parentSurfaceProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChartModifierBase.prototype, \"isEnabled\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isEnabledProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isEnabled) {\r\n this.isEnabledProperty = isEnabled;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_ENABLED);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChartModifierBase.prototype, \"isAttached\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isAttachedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChartModifierBase.prototype, \"receiveHandledEvents\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.receiveHandledEventsProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (receiveHandledEvents) {\r\n this.receiveHandledEventsProperty = receiveHandledEvents;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.RECEIVE_HANDLED_EVENTS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChartModifierBase.prototype, \"executeOn\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.executeOnProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (operationType) {\r\n this.executeOnProperty = operationType;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.EXECUTE_ON);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChartModifierBase.prototype, \"canReceiveMouseEvents\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isEnabled && this.isAttached && this.parentSurfaceProperty !== undefined;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.onAttach = function () {\r\n // Override in derived class to be notified of attached\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.onDetach = function () {\r\n // Override in derived class to be notified of detached\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.onAttachSeries = function (rs) {\r\n // Override in derived class to be notified of attached\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.onDetachSeries = function (rs) {\r\n // Override in derived class to be notified of detached\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.onAttachSubSurface = function (subChart) {\r\n // Override in derived class to be notified of attached\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.onDetachSubSurface = function (subChart) {\r\n // Override in derived class to be notified of detached\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.onParentSurfaceRendered = function () {\r\n // Override in derived class to be notified when render pass is finished\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierMouseDown = function (args) {\r\n // Override in derived class to be notified of mouse down\r\n if (this.executeOn === ExecuteOn_1.EExecuteOn.MouseMiddleButton) {\r\n // Don't scroll browser if middle button is being used for the modifier\r\n args.nativeEvent.preventDefault();\r\n }\r\n var isTouchEvent = args.pointerType === \"touch\" || args.pointerType === \"pen\";\r\n if (isTouchEvent) {\r\n this.activePointerEvents.set(args.pointerId, args);\r\n }\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierMouseMove = function (args) {\r\n this.updatePointerInfo(args);\r\n // Override in derived class to be notified of mouse move\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierMouseUp = function (args) {\r\n var isTouchEvent = args.pointerType === \"touch\" || args.pointerType === \"pen\";\r\n if (isTouchEvent) {\r\n this.activePointerEvents.delete(args.pointerId);\r\n }\r\n // Override in derived class to be notified of mouse up\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierMouseWheel = function (args) {\r\n // Override in derived class to be notified of mouse wheel\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierDoubleClick = function (args) {\r\n // Override in derived class to be notified of mouse double click\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierMouseEnter = function (args) {\r\n // Override in derived class to be notified of mouse enter\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierMouseLeave = function (args) {\r\n this.activePointerEvents.delete(args.pointerId);\r\n // Override in derived class to be notified of mouse leave\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierDrop = function (args) {\r\n // Override in derived class to be notified of drop event\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.modifierPointerCancel = function (args) {\r\n this.activePointerEvents.delete(args.pointerId);\r\n // Override in derived class to be notified of mouse leave\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.setParentSurface = function (parentSurface) {\r\n if (!parentSurface) {\r\n this.parentSurfaceProperty = undefined;\r\n }\r\n else {\r\n if (parentSurface.surfaceType === SciChartSurfaceBase_1.ESurfaceType.SciChartSurfaceType &&\r\n this.modifierType === EModifierType.Chart3DModifier) {\r\n throw new Error(\"A 3D Chart Modifier cannot be added to a 2D SciChartSurface. Please check surfaceType and ModifierType properties for modifierType\");\r\n }\r\n if (parentSurface.surfaceType === SciChartSurfaceBase_1.ESurfaceType.SciChart3DSurfaceType &&\r\n this.modifierType === EModifierType.Chart2DModifier) {\r\n throw new Error(\"A 2D Chart Modifier cannot be added to a 3D SciChartSurface. Please check surfaceType and ModifierType properties for modifierType\");\r\n }\r\n this.parentSurfaceProperty = parentSurface;\r\n }\r\n this.isAttachedProperty = this.parentSurfaceProperty !== undefined;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PARENT_SURFACE);\r\n };\r\n /** @inheritDoc */\r\n ChartModifierBase.prototype.delete = function () {\r\n // Override in child class\r\n };\r\n /**\r\n * Notifies the parent surface that a property has changed by calling {@link invalidateParentCallback}\r\n * @param propertyName the property name which has changed\r\n */\r\n ChartModifierBase.prototype.notifyPropertyChanged = function (propertyName) {\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n ChartModifierBase.prototype.updatePointerInfo = function (args) {\r\n var _a;\r\n // store position of primary pointer\r\n // activePointerEvents are set on mousedown/mouseup if this is a touch event. In this case only track the first one\r\n if (this.activePointerEvents.size === 0 || this.activePointerEvents.keys().next().value === args.pointerId) {\r\n this.mousePoint = args.mousePoint;\r\n }\r\n // get previous coordinates of the current pointer\r\n this.previousPoint = (_a = this.activePointerEvents.get(args.pointerId)) === null || _a === void 0 ? void 0 : _a.mousePoint;\r\n // update saved pointer coordinates\r\n if (this.activePointerEvents.has(args.pointerId)) {\r\n this.activePointerEvents.set(args.pointerId, args);\r\n }\r\n };\r\n /**\r\n * Checks if event conditions should trigger the modifier action\r\n * @param args current event info as {@link ModifierMouseArgs}\r\n *\r\n * @remarks Can be used in some of the modifiers to add/override constraints\r\n */\r\n ChartModifierBase.prototype.getIsActionAllowed = function (args) {\r\n return true;\r\n };\r\n return ChartModifierBase;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.ChartModifierBase = ChartModifierBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.scaleAxes = exports.getActiveAxes = exports.testIsOverAxes = exports.ChartModifierBase2D = void 0;\r\nvar XyDirection_1 = require(\"../../types/XyDirection\");\r\nvar pointUtil_1 = require(\"../../utils/pointUtil\");\r\nvar AxisCore_1 = require(\"../Visuals/Axis/AxisCore\");\r\nvar ChartModifierBase_1 = require(\"./ChartModifierBase\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * Defines a base class to a ChartModifier2D - a class which provides Zoom, Pan, Tooltip or interaction behavior\r\n * to SciChart - High Performance Realtime {@link https://www.scichart.com/javascript-chart-features | 2D JavaScript Charts}\r\n */\r\nvar ChartModifierBase2D = /** @class */ (function (_super) {\r\n __extends(ChartModifierBase2D, _super);\r\n /**\r\n * Creates an instance of the {@link ChartModifierBase2D}\r\n * @param options optional parameters via {@link IChartModifierBaseOptions} which can be passed to configure the modifier\r\n */\r\n function ChartModifierBase2D(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, options) || this;\r\n _this.xyDirection = XyDirection_1.EXyDirection.XyDirection;\r\n _this.changedPropertiesList = [];\r\n _this.xAxisIdProperty = AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.yAxisIdProperty = AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n // used to track if registered types were used for function properties, so they can be serialized\r\n _this.typeMap = new Map();\r\n _this.xyDirection = (_a = options === null || options === void 0 ? void 0 : options.xyDirection) !== null && _a !== void 0 ? _a : _this.xyDirection;\r\n _this.modifierGroup = (_b = options === null || options === void 0 ? void 0 : options.modifierGroup) !== null && _b !== void 0 ? _b : _this.modifierGroup;\r\n _this.xAxisIdProperty = (_c = options === null || options === void 0 ? void 0 : options.xAxisId) !== null && _c !== void 0 ? _c : _this.xAxisIdProperty;\r\n _this.yAxisIdProperty = (_d = options === null || options === void 0 ? void 0 : options.yAxisId) !== null && _d !== void 0 ? _d : _this.yAxisIdProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(ChartModifierBase2D.prototype, \"modifierType\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return ChartModifierBase_1.EModifierType.Chart2DModifier;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChartModifierBase2D.prototype, \"xAxisId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.xAxisIdProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (xAxisId) {\r\n this.xAxisIdProperty = xAxisId;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X_AXIS_ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChartModifierBase2D.prototype, \"yAxisId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.yAxisIdProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (yAxisId) {\r\n this.yAxisIdProperty = yAxisId;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Y_AXIS_ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets all series on the parent surface.\r\n * @protected\r\n * @remarks This function allows mocking in tests\r\n */\r\n ChartModifierBase2D.prototype.getAllSeries = function () {\r\n return this.parentSurface.renderableSeries.asArray();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ChartModifierBase2D.prototype.toJSON = function () {\r\n var options = {\r\n id: this.id,\r\n modifierGroup: this.modifierGroup,\r\n executeOn: this.executeOn,\r\n xyDirection: this.xyDirection,\r\n xAxisId: this.xAxisId,\r\n yAxisId: this.yAxisId\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n ChartModifierBase2D.prototype.testPropertyChanged = function (propertyName) {\r\n return this.changedPropertiesList.includes(propertyName);\r\n };\r\n ChartModifierBase2D.prototype.notifyPropertyChanged = function (propertyName) {\r\n if (!this.changedPropertiesList.includes(propertyName)) {\r\n this.changedPropertiesList.push(propertyName);\r\n }\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n };\r\n /**\r\n * Grows the Axis by a fraction around the mouse point\r\n * @param mousePoint the X,Y location of the mouse at the time of the operation\r\n * @param axis the Axis to grow or shrink\r\n * @param fraction the fraction, e.g. 0.1 grows the axis by 10%\r\n */\r\n ChartModifierBase2D.prototype.growBy = function (mousePoint, axis, fraction) {\r\n var isHorizontalAxis = axis.isHorizontalAxis, isAxisFlipped = axis.isAxisFlipped, viewRect = axis.viewRect, flippedCoordinates = axis.flippedCoordinates;\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n var size = isHorizontalAxis ? viewRect.width : viewRect.height;\r\n if (axis.isStackedAxis && this.parentSurface) {\r\n size = isHorizontalAxis ? seriesViewRect.width : seriesViewRect.height;\r\n }\r\n var coord = isHorizontalAxis ? mousePoint.x : mousePoint.y;\r\n // Compute relative fractions to expand or contract the axis VisibleRange by\r\n var lowFraction = (coord / size) * fraction;\r\n var highFraction = (1 - coord / size) * fraction;\r\n // We flip zoom for vertical chart or flippedCoordinates\r\n var flipZoom = (isAxisFlipped && !flippedCoordinates) || (!isAxisFlipped && flippedCoordinates);\r\n if (flipZoom) {\r\n axis.zoomBy(highFraction, lowFraction);\r\n }\r\n else {\r\n axis.zoomBy(lowFraction, highFraction);\r\n }\r\n };\r\n return ChartModifierBase2D;\r\n}(ChartModifierBase_1.ChartModifierBase));\r\nexports.ChartModifierBase2D = ChartModifierBase2D;\r\nvar testIsOverAxes = function (xAxisArr, mousePoint) {\r\n var result = false;\r\n xAxisArr.forEach(function (x) {\r\n if (x.viewRect) {\r\n var _a = x.viewRect, left = _a.left, right = _a.right, top_1 = _a.top, bottom = _a.bottom;\r\n if ((0, pointUtil_1.testIsInBounds)(mousePoint.x, mousePoint.y, left, bottom, right, top_1)) {\r\n result = true;\r\n }\r\n }\r\n });\r\n return result;\r\n};\r\nexports.testIsOverAxes = testIsOverAxes;\r\nvar getActiveAxes = function (xAxisArr, mousePoint) {\r\n var result = [];\r\n xAxisArr.forEach(function (x) {\r\n if (x.viewRect) {\r\n var _a = x.viewRect, left = _a.left, right = _a.right, top_2 = _a.top, bottom = _a.bottom;\r\n if ((0, pointUtil_1.testIsInBounds)(mousePoint.x, mousePoint.y, left, bottom, right, top_2)) {\r\n result.push(x);\r\n }\r\n }\r\n });\r\n return result;\r\n};\r\nexports.getActiveAxes = getActiveAxes;\r\nvar scaleAxes = function (axes, initialVisibleRanges, delta, isMoreThanHalf) {\r\n axes.forEach(function (currentAxis, index) {\r\n var initialRange = initialVisibleRanges[index];\r\n currentAxis.scale(initialRange, delta, isMoreThanHalf);\r\n });\r\n};\r\nexports.scaleAxes = scaleAxes;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.adjustTooltipPosition = exports.calcTooltipSize = exports.CursorModifier = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar MousePosition_1 = require(\"../../types/MousePosition\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar IDataSeries_1 = require(\"../Model/IDataSeries\");\r\nvar AnnotationBase_1 = require(\"../Visuals/Annotations/AnnotationBase\");\r\nvar CursorTooltipSvgAnnotation_1 = require(\"../Visuals/Annotations/CursorTooltipSvgAnnotation\");\r\nvar LineAnnotation_1 = require(\"../Visuals/Annotations/LineAnnotation\");\r\nvar SciChartSurfaceBase_1 = require(\"../Visuals/SciChartSurfaceBase\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * The CursorModifier provides tooltip and cursor behavior on a 2D {@link SciChartSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the CursorModifier to a {@link SciChartSurface} and add tooltip behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new CursorModifier());\r\n * ```\r\n */\r\nvar CursorModifier = /** @class */ (function (_super) {\r\n __extends(CursorModifier, _super);\r\n /**\r\n * Creates an instance of the CursorModifier\r\n *\r\n * If number of renderable series is more then 10 and showTooltip enabled consider passing {@link TCursorTooltipDataTemplate} or {@link TCursorTooltipSvgTemplate} to reduce the output for the tooltip\r\n *\r\n * @param options Optional parameters {@link ICursorModifierOptions} used to configure the modifier\r\n */\r\n function CursorModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.Cursor;\r\n /**\r\n * Get or set a function which generates the svg for the entire tooltip. Note that the repositioning of the tooltip to keep it within the chart is normally done in this function.\r\n * To retain this functionality in your own template function, include the following:\r\n * ```ts\r\n * // valuesWithLabels is the result of the tooltipDataTemplate function, which is the text content of the tooltip as an array of strings\r\n * const { width, height } = calcTooltipSize(valuesWithLabels);\r\n * // this calculates and sets svgAnnotation.xCoordShift and svgAnnotation.yCoordShift. Do not set x1 or y1 at this point.\r\n * adjustTooltipPosition(width, height, svgAnnotation);\r\n * ```\r\n */\r\n _this.tooltipSvgTemplate = defaultTooltipTemplate;\r\n /**\r\n * Gets or sets the crosshair line strokethickness\r\n */\r\n _this.crosshairStrokeThickness = 2;\r\n /**\r\n * Gets or sets the crosshair line dash array\r\n */\r\n _this.crosshairStrokeDashArray = [];\r\n /**\r\n * Gets or sets the tooltip container background color as an HTML Color code\r\n */\r\n _this.tooltipContainerBackground = \"#228B22\";\r\n /**\r\n * Gets or sets the tooltip text color as an HTML Color code\r\n */\r\n _this.tooltipTextStroke = \"#fff\";\r\n /**\r\n * Gets or sets whether we should display the tooltip. Default is false\r\n */\r\n _this.showTooltip = false;\r\n /**\r\n * Gets or sets both axis label text color as an HTML Color code\r\n */\r\n _this.axisLabelStroke = \"#fff\";\r\n /**\r\n * Gets or sets both axis label fill as an HTML Color code.\r\n */\r\n _this.axisLabelFill = \"#228B22\";\r\n /**\r\n * Gets or sets the xAxis label text color as an HTML Color code\r\n */\r\n _this.xAxisLabelStroke = undefined;\r\n /**\r\n * Gets or sets the xAxis label fill as an HTML Color code.\r\n */\r\n _this.xAxisLabelFill = undefined;\r\n /**\r\n * Gets or sets the xAxis label text color as an HTML Color code\r\n */\r\n _this.yAxisLabelStroke = undefined;\r\n /**\r\n * Gets or sets the yAxis label fill as an HTML Color code.\r\n */\r\n _this.yAxisLabelFill = undefined;\r\n /**\r\n * Gets or sets the legend X offset\r\n */\r\n _this.tooltipLegendOffsetX = 0;\r\n /**\r\n * Gets or sets the legend Y offset\r\n */\r\n _this.tooltipLegendOffsetY = 0;\r\n /**\r\n * If this is set greater than the default of zero, the toolip will only show values for points in this radius, rather than all points on the vertical line\r\n */\r\n _this.hitTestRadius = 0;\r\n _this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n _this.crosshairStrokeProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.cursorLineBrush;\r\n _this.tooltipShadowProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.shadowEffectColor;\r\n _this.includedSeriesMap = new Map();\r\n _this.showXLineProperty = true;\r\n _this.showYLineProperty = true;\r\n _this.showAxisLabelsProperty = true;\r\n if (options === null || options === void 0 ? void 0 : options.tooltipSvgTemplate) {\r\n if (typeof options.tooltipSvgTemplate === \"string\") {\r\n _this.typeMap.set(\"tooltipSvgTemplate\", options.tooltipSvgTemplate);\r\n // @ts-ignore\r\n options.tooltipSvgTemplate = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.tooltipSvgTemplate);\r\n }\r\n }\r\n _this.tooltipSvgTemplate = (_a = options === null || options === void 0 ? void 0 : options.tooltipSvgTemplate) !== null && _a !== void 0 ? _a : _this.tooltipSvgTemplate;\r\n _this.crosshairStrokeThickness = (_b = options === null || options === void 0 ? void 0 : options.crosshairStrokeThickness) !== null && _b !== void 0 ? _b : _this.crosshairStrokeThickness;\r\n _this.crosshairStrokeDashArray = (_c = options === null || options === void 0 ? void 0 : options.crosshairStrokeDashArray) !== null && _c !== void 0 ? _c : _this.crosshairStrokeDashArray;\r\n _this.crosshairStroke = (_d = options === null || options === void 0 ? void 0 : options.crosshairStroke) !== null && _d !== void 0 ? _d : _this.crosshairStroke;\r\n _this.tooltipContainerBackground = (_e = options === null || options === void 0 ? void 0 : options.tooltipContainerBackground) !== null && _e !== void 0 ? _e : _this.tooltipContainerBackground;\r\n _this.tooltipTextStroke = (_f = options === null || options === void 0 ? void 0 : options.tooltipTextStroke) !== null && _f !== void 0 ? _f : _this.tooltipTextStroke;\r\n _this.tooltipShadow = (_g = options === null || options === void 0 ? void 0 : options.tooltipShadow) !== null && _g !== void 0 ? _g : _this.tooltipShadowProperty;\r\n _this.showTooltip = (_h = options === null || options === void 0 ? void 0 : options.showTooltip) !== null && _h !== void 0 ? _h : _this.showTooltip;\r\n _this.showAxisLabels = (_j = options === null || options === void 0 ? void 0 : options.showAxisLabels) !== null && _j !== void 0 ? _j : _this.showAxisLabels;\r\n _this.axisLabelFill = (_k = options === null || options === void 0 ? void 0 : options.axisLabelFill) !== null && _k !== void 0 ? _k : _this.axisLabelFill;\r\n _this.axisLabelStroke = (_l = options === null || options === void 0 ? void 0 : options.axisLabelStroke) !== null && _l !== void 0 ? _l : _this.axisLabelStroke;\r\n _this.xAxisLabelStroke = (_m = options === null || options === void 0 ? void 0 : options.xAxisLabelStroke) !== null && _m !== void 0 ? _m : _this.xAxisLabelStroke;\r\n _this.xAxisLabelFill = (_o = options === null || options === void 0 ? void 0 : options.xAxisLabelFill) !== null && _o !== void 0 ? _o : _this.xAxisLabelFill;\r\n _this.yAxisLabelStroke = (_p = options === null || options === void 0 ? void 0 : options.yAxisLabelStroke) !== null && _p !== void 0 ? _p : _this.yAxisLabelStroke;\r\n _this.yAxisLabelFill = (_q = options === null || options === void 0 ? void 0 : options.yAxisLabelFill) !== null && _q !== void 0 ? _q : _this.yAxisLabelFill;\r\n _this.placementDivIdProperty = (_r = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _r !== void 0 ? _r : _this.placementDivIdProperty;\r\n if (options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) {\r\n if (typeof options.tooltipLegendTemplate === \"string\") {\r\n _this.typeMap.set(\"tooltipLegendTemplate\", options.tooltipLegendTemplate);\r\n // @ts-ignore\r\n options.tooltipLegendTemplate = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.tooltipLegendTemplate);\r\n }\r\n }\r\n _this.tooltipLegendTemplate =\r\n (_s = options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) !== null && _s !== void 0 ? _s : _this.tooltipLegendTemplate;\r\n _this.tooltipLegendOffsetX = (_t = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetX) !== null && _t !== void 0 ? _t : _this.tooltipLegendOffsetX;\r\n _this.tooltipLegendOffsetY = (_u = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetY) !== null && _u !== void 0 ? _u : _this.tooltipLegendOffsetY;\r\n if (options === null || options === void 0 ? void 0 : options.tooltipDataTemplate) {\r\n if (typeof options.tooltipDataTemplate === \"string\") {\r\n _this.typeMap.set(\"tooltipDataTemplate\", options.tooltipDataTemplate);\r\n // @ts-ignore\r\n options.tooltipDataTemplate = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.tooltipDataTemplate);\r\n }\r\n }\r\n _this.tooltipDataTemplateProperty =\r\n (_v = options === null || options === void 0 ? void 0 : options.tooltipDataTemplate) !== null && _v !== void 0 ? _v : _this.tooltipDataTemplateProperty;\r\n _this.showXLine = (_w = options === null || options === void 0 ? void 0 : options.showXLine) !== null && _w !== void 0 ? _w : _this.showXLine;\r\n _this.showYLine = (_x = options === null || options === void 0 ? void 0 : options.showYLine) !== null && _x !== void 0 ? _x : _this.showYLine;\r\n _this.hitTestRadius = (_y = options === null || options === void 0 ? void 0 : options.hitTestRadius) !== null && _y !== void 0 ? _y : _this.hitTestRadius;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.applyTheme = function (themeProvider) {\r\n if (!this.testPropertyChanged(constants_1.PROPERTY.CROSSHAIR_STROKE)) {\r\n this.crosshairStroke = themeProvider.cursorLineBrush;\r\n }\r\n if (!this.testPropertyChanged(constants_1.PROPERTY.TOOLTIP_SHADOW)) {\r\n this.tooltipShadow = themeProvider.shadowEffectColor;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.onAttach = function () {\r\n var _a;\r\n _super.prototype.onAttach.call(this);\r\n var xAxisLabelFill = this.xAxisLabelFill ? this.xAxisLabelFill : this.axisLabelFill;\r\n var yAxisLabelFill = this.yAxisLabelFill ? this.yAxisLabelFill : this.axisLabelFill;\r\n var xAxisLabelStroke = this.xAxisLabelStroke ? this.xAxisLabelStroke : this.axisLabelStroke;\r\n var yAxisLabelStroke = this.yAxisLabelStroke ? this.yAxisLabelStroke : this.axisLabelStroke;\r\n if (this.showXLine) {\r\n this.xLineAnnotation = this.newLineAnnotation(xAxisLabelFill, xAxisLabelStroke);\r\n this.parentSurface.modifierAnnotations.add(this.xLineAnnotation);\r\n }\r\n if (this.showYLine) {\r\n this.yLineAnnotation = this.newLineAnnotation(yAxisLabelFill, yAxisLabelStroke);\r\n this.parentSurface.modifierAnnotations.add(this.yLineAnnotation);\r\n }\r\n this.tooltipAnnotation = new CursorTooltipSvgAnnotation_1.CursorTooltipSvgAnnotation({\r\n cursorModifier: this,\r\n xCoordinateMode: AnnotationBase_1.ECoordinateMode.Pixel,\r\n yCoordinateMode: AnnotationBase_1.ECoordinateMode.Pixel,\r\n tooltipSvgTemplate: (_a = this.tooltipSvgTemplate) !== null && _a !== void 0 ? _a : defaultTooltipTemplate,\r\n containerBackground: this.tooltipContainerBackground,\r\n textStroke: this.tooltipTextStroke,\r\n tooltipLegendTemplate: this.tooltipLegendTemplate,\r\n tooltipLegendOffsetX: this.tooltipLegendOffsetX,\r\n tooltipLegendOffsetY: this.tooltipLegendOffsetY,\r\n xAxisId: this.xAxisId,\r\n yAxisId: this.yAxisId,\r\n placementDivId: this.placementDivId\r\n });\r\n this.parentSurface.modifierAnnotations.add(this.tooltipAnnotation);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.onDetach = function () {\r\n _super.prototype.onDetach.call(this);\r\n if (this.xLineAnnotation) {\r\n this.parentSurface.modifierAnnotations.remove(this.xLineAnnotation, true);\r\n }\r\n if (this.yLineAnnotation) {\r\n this.parentSurface.modifierAnnotations.remove(this.yLineAnnotation, true);\r\n }\r\n this.parentSurface.modifierAnnotations.remove(this.tooltipAnnotation, true);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.onAttachSeries = function (rs) {\r\n this.tooltipAnnotation.seriesInfos = this.getSeriesInfos();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.onDetachSeries = function (rs) {\r\n this.tooltipAnnotation.seriesInfos = this.getSeriesInfos();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.modifierMouseMove = function (args) {\r\n // If this is on a subchart, only respond to events from the active subchart\r\n if (this.parentSurface.isSubSurface && !args.isActiveSubChartEvent)\r\n return;\r\n this.activePointerEvents.set(args.pointerId, args);\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n var translatedMousePoint;\r\n if (!this.mousePoint) {\r\n this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n }\r\n else {\r\n translatedMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(this.mousePoint, this.parentSurface.seriesViewRect);\r\n if (!translatedMousePoint) {\r\n this.mousePosition = MousePosition_1.EMousePosition.AxisArea;\r\n }\r\n else {\r\n this.mousePosition = MousePosition_1.EMousePosition.SeriesArea;\r\n }\r\n }\r\n var isActionAllowed = this.getIsActionAllowed(args);\r\n if (isActionAllowed) {\r\n this.update();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.modifierMouseLeave = function (args) {\r\n _super.prototype.modifierMouseLeave.call(this, args);\r\n this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n this.update();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.onParentSurfaceRendered = function () {\r\n this.update();\r\n };\r\n Object.defineProperty(CursorModifier.prototype, \"crosshairStroke\", {\r\n /**\r\n * Gets or sets the crosshair line Stroke color as an HTML Color code\r\n */\r\n get: function () {\r\n return this.crosshairStrokeProperty;\r\n },\r\n /**\r\n * Gets or sets the crosshair line Stroke color as an HTML Color code\r\n */\r\n set: function (value) {\r\n if (this.crosshairStrokeProperty !== value) {\r\n this.crosshairStrokeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CROSSHAIR_STROKE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorModifier.prototype, \"tooltipShadow\", {\r\n /**\r\n * Gets or sets the tooltip shadow color as an HTML Color code\r\n */\r\n get: function () {\r\n return this.tooltipShadowProperty;\r\n },\r\n /**\r\n * Gets or sets the tooltip shadow color as an HTML Color code\r\n */\r\n set: function (value) {\r\n if (this.tooltipShadowProperty !== value) {\r\n this.tooltipShadowProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_SHADOW);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorModifier.prototype, \"showXLine\", {\r\n /**\r\n * Gets or sets whether we should display the X Line. Default is true\r\n */\r\n get: function () {\r\n return this.showXLineProperty;\r\n },\r\n /**\r\n * Gets or sets whether we should display the X Line. Default is true\r\n */\r\n set: function (value) {\r\n if (this.showXLineProperty !== value) {\r\n this.showXLineProperty = value;\r\n if (this.showXLineProperty && !this.xLineAnnotation) {\r\n var xAxisLabelFill = this.xAxisLabelFill ? this.xAxisLabelFill : this.axisLabelFill;\r\n var xAxisLabelStroke = this.xAxisLabelStroke ? this.xAxisLabelStroke : this.axisLabelStroke;\r\n this.xLineAnnotation = this.newLineAnnotation(xAxisLabelFill, xAxisLabelStroke);\r\n this.parentSurface.modifierAnnotations.add(this.xLineAnnotation);\r\n }\r\n else if (!this.showXLineProperty && this.xLineAnnotation) {\r\n this.parentSurface.modifierAnnotations.remove(this.xLineAnnotation);\r\n this.xLineAnnotation = (0, Deleter_1.deleteSafe)(this.xLineAnnotation);\r\n }\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X_LINE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorModifier.prototype, \"showYLine\", {\r\n /**\r\n * Gets or sets whether we should display the Y Line. Default is true\r\n */\r\n get: function () {\r\n return this.showYLineProperty;\r\n },\r\n /**\r\n * Gets or sets whether we should display the Y Line. Default is true\r\n */\r\n set: function (value) {\r\n if (this.showYLineProperty !== value) {\r\n this.showYLineProperty = value;\r\n if (this.showYLineProperty && !this.yLineAnnotation) {\r\n var yAxisLabelFill = this.yAxisLabelFill ? this.yAxisLabelFill : this.axisLabelFill;\r\n var yAxisLabelStroke = this.yAxisLabelStroke ? this.yAxisLabelStroke : this.axisLabelStroke;\r\n this.yLineAnnotation = this.newLineAnnotation(yAxisLabelFill, yAxisLabelStroke);\r\n this.parentSurface.modifierAnnotations.add(this.yLineAnnotation);\r\n }\r\n else if (!this.showYLineProperty && this.yLineAnnotation) {\r\n this.parentSurface.modifierAnnotations.remove(this.yLineAnnotation);\r\n this.yLineAnnotation = (0, Deleter_1.deleteSafe)(this.yLineAnnotation);\r\n }\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Y_LINE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorModifier.prototype, \"showAxisLabels\", {\r\n /**\r\n * Gets or sets whether we should display the Axis Labels. Default is true\r\n */\r\n get: function () {\r\n return this.showAxisLabelsProperty;\r\n },\r\n /**\r\n * Gets or sets whether we should display the Axis Labels. Default is true\r\n */\r\n set: function (value) {\r\n if (this.showAxisLabelsProperty !== value) {\r\n this.showAxisLabelsProperty = value;\r\n if (this.xLineAnnotation) {\r\n this.xLineAnnotation.showLabel = this.showAxisLabelsProperty;\r\n }\r\n if (this.yLineAnnotation) {\r\n this.yLineAnnotation.showLabel = this.showAxisLabelsProperty;\r\n }\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_LABELS);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorModifier.prototype, \"placementDivId\", {\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n get: function () {\r\n return this.placementDivIdProperty;\r\n },\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n set: function (value) {\r\n if (this.placementDivIdProperty !== value) {\r\n this.placementDivIdProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PLACEMENT_DIV_ID);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.includeSeries = function (series, isIncluded) {\r\n this.includedSeriesMap.set(series, isIncluded);\r\n if (this.isAttached) {\r\n this.tooltipAnnotation.seriesInfos = this.getSeriesInfos();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorModifier.prototype.getIncludedRenderableSeries = function () {\r\n var _this = this;\r\n var regularSeries = this.parentSurface.renderableSeries\r\n .asArray()\r\n .filter(function (rs) { return !rs.isStacked && rs.isVisible && _this.testIsIncludedSeries(rs); });\r\n var stackedSeries = this.parentSurface.renderableSeries.asArray().filter(function (el) { return el.isStacked; });\r\n var allSeries = regularSeries;\r\n stackedSeries.forEach(function (rs) {\r\n rs.getVisibleSeries().forEach(function (childRs) {\r\n if (_this.testIsIncludedSeries(childRs)) {\r\n allSeries.push(childRs);\r\n }\r\n });\r\n });\r\n return allSeries;\r\n };\r\n Object.defineProperty(CursorModifier.prototype, \"tooltipDataTemplate\", {\r\n /**\r\n * Gets or sets the tooltipDataTemplate, which allows to customize content for the tooltip\r\n */\r\n get: function () {\r\n return this.tooltipDataTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipDataTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_DATA_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Override hitTestRenderableSeries and add a custom logic here\r\n * @param rs\r\n * @param mousePoint\r\n */\r\n CursorModifier.prototype.hitTestRenderableSeries = function (rs, mousePoint) {\r\n if (!mousePoint) {\r\n return undefined;\r\n }\r\n if (this.hitTestRadius <= 0) {\r\n return rs.hitTestProvider.hitTestXSlice(mousePoint.x, mousePoint.y);\r\n }\r\n else {\r\n return rs.hitTestProvider.hitTestDataPoint(mousePoint.x, mousePoint.y, this.hitTestRadius);\r\n }\r\n };\r\n /**\r\n * Returns current mouse position\r\n */\r\n CursorModifier.prototype.getMousePosition = function () {\r\n return this.mousePosition;\r\n };\r\n /** @inheritDoc */\r\n CursorModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n axisLabelFill: this.axisLabelFill,\r\n axisLabelStroke: this.axisLabelStroke,\r\n xAxisLabelFill: this.xAxisLabelFill,\r\n xAxisLabelStroke: this.xAxisLabelStroke,\r\n yAxisLabelFill: this.yAxisLabelFill,\r\n yAxisLabelStroke: this.yAxisLabelStroke,\r\n crosshairStroke: this.crosshairStroke,\r\n crosshairStrokeDashArray: this.crosshairStrokeDashArray,\r\n crosshairStrokeThickness: this.crosshairStrokeThickness,\r\n hitTestRadius: this.hitTestRadius,\r\n placementDivId: this.placementDivId,\r\n showAxisLabels: this.showAxisLabels,\r\n showTooltip: this.showTooltip,\r\n showXLine: this.showXLine,\r\n showYLine: this.showYLine,\r\n tooltipContainerBackground: this.tooltipContainerBackground,\r\n tooltipDataTemplate: this.typeMap.get(\"tooltipDataTemplate\"),\r\n tooltipLegendOffsetX: this.tooltipLegendOffsetX,\r\n tooltipLegendOffsetY: this.tooltipLegendOffsetY,\r\n tooltipLegendTemplate: this.typeMap.get(\"tooltipLegendTemplate\"),\r\n tooltipSvgTemplate: this.typeMap.get(\"tooltipSvgTemplate\"),\r\n tooltipTextStroke: this.tooltipTextStroke,\r\n tooltipShadow: this.tooltipShadow\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n CursorModifier.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n if (propertyName === constants_1.PROPERTY.X_AXIS_ID) {\r\n this.tooltipAnnotation.xAxisId = this.xAxisId;\r\n if (this.xLineAnnotation) {\r\n this.xLineAnnotation.xAxisId = this.xAxisId;\r\n }\r\n if (this.yLineAnnotation) {\r\n this.yLineAnnotation.xAxisId = this.xAxisId;\r\n }\r\n }\r\n if (propertyName === constants_1.PROPERTY.Y_AXIS_ID) {\r\n this.tooltipAnnotation.yAxisId = this.yAxisId;\r\n if (this.xLineAnnotation) {\r\n this.xLineAnnotation.yAxisId = this.yAxisId;\r\n }\r\n if (this.yLineAnnotation) {\r\n this.yLineAnnotation.yAxisId = this.yAxisId;\r\n }\r\n }\r\n };\r\n CursorModifier.prototype.getSeriesInfos = function () {\r\n var _this = this;\r\n return this.getIncludedRenderableSeries()\r\n .map(function (rs) {\r\n var hitTestInfo = _this.hitTestRenderableSeries(rs, _this.mousePoint);\r\n if (!hitTestInfo) {\r\n return undefined;\r\n }\r\n return rs.getSeriesInfo(hitTestInfo);\r\n })\r\n .filter(function (rs) { return rs !== undefined; });\r\n };\r\n CursorModifier.prototype.update = function () {\r\n if (this.mousePosition !== MousePosition_1.EMousePosition.SeriesArea) {\r\n if (this.xLineAnnotation) {\r\n this.xLineAnnotation.isHidden = true;\r\n }\r\n if (this.yLineAnnotation) {\r\n this.yLineAnnotation.isHidden = true;\r\n }\r\n this.tooltipAnnotation.isHidden = true;\r\n this.tooltipAnnotation.seriesInfos = [];\r\n if (this.placementDivId) {\r\n this.tooltipAnnotation.delete();\r\n }\r\n return;\r\n }\r\n var translatedMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(this.mousePoint, this.parentSurface.seriesViewRect);\r\n if (this.xLineAnnotation) {\r\n this.xLineAnnotation.isHidden = false;\r\n }\r\n if (this.yLineAnnotation) {\r\n this.yLineAnnotation.isHidden = false;\r\n }\r\n if (this.showTooltip) {\r\n this.tooltipAnnotation.isHidden = false;\r\n }\r\n if (translatedMousePoint) {\r\n var x = (0, translate_1.translateToNotScaled)(translatedMousePoint.x);\r\n var y = (0, translate_1.translateToNotScaled)(translatedMousePoint.y);\r\n if (this.xLineAnnotation) {\r\n this.xLineAnnotation.y1 = 0;\r\n }\r\n if (this.yLineAnnotation) {\r\n this.yLineAnnotation.x1 = 0;\r\n }\r\n if (this.isVerticalChart()) {\r\n if (this.xLineAnnotation) {\r\n this.xLineAnnotation.y2 = (0, translate_1.translateToNotScaled)(this.parentSurface.seriesViewRect.right);\r\n this.xLineAnnotation.x1 = y;\r\n this.xLineAnnotation.x2 = y;\r\n }\r\n if (this.yLineAnnotation) {\r\n this.yLineAnnotation.x2 = (0, translate_1.translateToNotScaled)(this.parentSurface.seriesViewRect.bottom);\r\n this.yLineAnnotation.y1 = x;\r\n this.yLineAnnotation.y2 = x;\r\n }\r\n }\r\n else {\r\n if (this.xLineAnnotation) {\r\n this.xLineAnnotation.y2 = (0, translate_1.translateToNotScaled)(this.parentSurface.seriesViewRect.bottom);\r\n this.xLineAnnotation.x1 = x;\r\n this.xLineAnnotation.x2 = x;\r\n }\r\n if (this.yLineAnnotation) {\r\n this.yLineAnnotation.x2 = (0, translate_1.translateToNotScaled)(this.parentSurface.seriesViewRect.right);\r\n this.yLineAnnotation.y1 = y;\r\n this.yLineAnnotation.y2 = y;\r\n }\r\n }\r\n if (this.showTooltip) {\r\n this.tooltipAnnotation.x1 = x;\r\n this.tooltipAnnotation.y1 = y;\r\n }\r\n if (this.showTooltip || this.tooltipLegendTemplate) {\r\n this.tooltipAnnotation.seriesInfos = this.getSeriesInfos();\r\n }\r\n }\r\n };\r\n CursorModifier.prototype.newLineAnnotation = function (axisLabelFill, axisLabelStroke) {\r\n return new LineAnnotation_1.LineAnnotation({\r\n xCoordinateMode: AnnotationBase_1.ECoordinateMode.Pixel,\r\n yCoordinateMode: AnnotationBase_1.ECoordinateMode.Pixel,\r\n strokeThickness: this.crosshairStrokeThickness,\r\n strokeDashArray: this.crosshairStrokeDashArray,\r\n stroke: this.crosshairStroke,\r\n isHidden: true,\r\n showLabel: this.showAxisLabels,\r\n axisLabelFill: axisLabelFill,\r\n axisLabelStroke: axisLabelStroke,\r\n xAxisId: this.xAxisId,\r\n yAxisId: this.yAxisId\r\n });\r\n };\r\n /**\r\n * Test if the series is included or excluded, by default it is included\r\n * @param series\r\n * @private\r\n */\r\n CursorModifier.prototype.testIsIncludedSeries = function (series) {\r\n return this.includedSeriesMap.get(series) !== false;\r\n };\r\n CursorModifier.prototype.isVerticalChart = function () {\r\n var _a, _b;\r\n var xAxis = ((_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.getXAxisById(this.xAxisId)) || ((_b = this.parentSurface) === null || _b === void 0 ? void 0 : _b.xAxes.get(0));\r\n if (xAxis) {\r\n return xAxis.isVerticalChart;\r\n }\r\n return false;\r\n };\r\n return CursorModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.CursorModifier = CursorModifier;\r\n/** @ignore */\r\nvar defaultTooltipDataTemplate = function (seriesInfos, tooltipTitle) {\r\n var valuesWithLabels = [];\r\n if (tooltipTitle) {\r\n valuesWithLabels.push(tooltipTitle);\r\n }\r\n seriesInfos.forEach(function (si, index) {\r\n if (si.isHit) {\r\n if (si.seriesName) {\r\n valuesWithLabels.push(si.seriesName);\r\n }\r\n else if (seriesInfos.length > 1) {\r\n valuesWithLabels.push(\"Series #\".concat(index + 1));\r\n }\r\n if (si.dataSeriesType === IDataSeries_1.EDataSeriesType.Ohlc) {\r\n var ohlcSeriesInfo = si;\r\n valuesWithLabels.push(\"X: \".concat(ohlcSeriesInfo.formattedXValue));\r\n valuesWithLabels.push(\"Open: \".concat(ohlcSeriesInfo.formattedOpenValue));\r\n valuesWithLabels.push(\"Highest: \".concat(ohlcSeriesInfo.formattedHighValue));\r\n valuesWithLabels.push(\"Lowest: \".concat(ohlcSeriesInfo.formattedLowValue));\r\n valuesWithLabels.push(\"Close: \".concat(ohlcSeriesInfo.formattedCloseValue));\r\n }\r\n else if (si.dataSeriesType === IDataSeries_1.EDataSeriesType.Xyy) {\r\n // Band Series\r\n var xyySeriesInfo = si;\r\n valuesWithLabels.push(\"X: \".concat(xyySeriesInfo.formattedXValue));\r\n valuesWithLabels.push(\"Y: \".concat(xyySeriesInfo.formattedYValue));\r\n valuesWithLabels.push(\"Y1: \".concat(xyySeriesInfo.formattedY1Value));\r\n }\r\n else if (si.dataSeriesType === IDataSeries_1.EDataSeriesType.Xyz) {\r\n // Bubble Series\r\n var xyzSeriesInfo = si;\r\n valuesWithLabels.push(\"X: \".concat(xyzSeriesInfo.formattedXValue));\r\n valuesWithLabels.push(\"Y: \".concat(xyzSeriesInfo.formattedYValue));\r\n valuesWithLabels.push(\"Z: \".concat(xyzSeriesInfo.formattedZValue));\r\n }\r\n else if ([IDataSeries_1.EDataSeriesType.HeatmapUniform, IDataSeries_1.EDataSeriesType.HeatmapNonUniform].includes(si.dataSeriesType)) {\r\n // Heatmap Series\r\n var heatmapSeriesInfo = si;\r\n valuesWithLabels.push(\"X: \".concat(heatmapSeriesInfo.formattedXValue));\r\n valuesWithLabels.push(\"Y: \".concat(heatmapSeriesInfo.formattedYValue));\r\n if (heatmapSeriesInfo.zValue !== null && heatmapSeriesInfo.zValue !== undefined) {\r\n valuesWithLabels.push(\"Z: \".concat(heatmapSeriesInfo.formattedZValue));\r\n }\r\n }\r\n else {\r\n var xySeriesInfo = si;\r\n valuesWithLabels.push(\"X: \".concat(xySeriesInfo.formattedXValue, \" Y: \").concat(xySeriesInfo.formattedYValue));\r\n }\r\n }\r\n });\r\n return valuesWithLabels;\r\n};\r\n/** @ignore */\r\nvar defaultTooltipTemplate = function (seriesInfos, svgAnnotation) {\r\n var _a;\r\n var id = \"id_\".concat(Date.now());\r\n var tooltipDataTemplate = (_a = svgAnnotation.cursorModifier.tooltipDataTemplate) !== null && _a !== void 0 ? _a : defaultTooltipDataTemplate;\r\n var valuesWithLabels = tooltipDataTemplate(seriesInfos, svgAnnotation.title);\r\n if (valuesWithLabels.length === 0) {\r\n return \"\";\r\n }\r\n // tooltip size\r\n var _b = (0, exports.calcTooltipSize)(valuesWithLabels, 13), width = _b.width, height = _b.height;\r\n // adjust position\r\n (0, exports.adjustTooltipPosition)(width, height, svgAnnotation);\r\n var valuesBlock = \"\";\r\n valuesWithLabels.forEach(function (val, index) {\r\n valuesBlock += \"\".concat(val, \"\");\r\n });\r\n var rectHeight = \"95%\";\r\n if (svgAnnotation.yCoordShift < 0) {\r\n // Fix the issue where the rect would be too small if the height was enormous\r\n var maxHeight = (0, translate_1.translateToNotScaled)(svgAnnotation.parentSurface.seriesViewRect.height) - svgAnnotation.y1;\r\n if (height > maxHeight) {\r\n rectHeight = (height - 5).toFixed(0);\r\n }\r\n }\r\n var tooltipFill = svgAnnotation.containerBackground;\r\n var tooltipStroke = svgAnnotation.textStroke;\r\n var shadowColor = svgAnnotation.cursorModifier.tooltipShadow;\r\n var blur = \"\";\r\n if (shadowColor !== undefined) {\r\n var shadowRGBA = (0, parseColor_1.parseColorToTArgb)(shadowColor);\r\n blur = \"\\n \");\r\n }\r\n return \"\\n \\n \\n \\n \").concat(blur, \"\\n \\n \\n \\n \\n \\n \").concat(valuesBlock, \"\\n \\n \");\r\n};\r\n/** Calculate the width and height of the tooltip based on the content array */\r\nvar calcTooltipSize = function (valuesWithLabels, fontSize) {\r\n if (fontSize === void 0) { fontSize = 13; }\r\n var textLength = valuesWithLabels.reduce(function (prev, cur) { return (cur.length > prev ? cur.length : prev); }, 0);\r\n var width = textLength * 8 + 20;\r\n var height = fontSize * 1.2 * valuesWithLabels.length + 16;\r\n return { width: width, height: height };\r\n};\r\nexports.calcTooltipSize = calcTooltipSize;\r\n/** Relocate the tooltip so that it is always within the seriesViewRect */\r\nvar adjustTooltipPosition = function (width, height, svgAnnotation) {\r\n var seriesViewRect = svgAnnotation.parentSurface.seriesViewRect;\r\n var xCoord = svgAnnotation.x1;\r\n var yCoord = svgAnnotation.y1;\r\n var xCoordShift = (0, translate_1.translateToNotScaled)(seriesViewRect.width) - xCoord < width ? -width : 5;\r\n var yCoordShift = (0, translate_1.translateToNotScaled)(seriesViewRect.height) - yCoord < height ? -height : 5;\r\n svgAnnotation.xCoordShift = xCoordShift;\r\n svgAnnotation.yCoordShift = yCoordShift;\r\n};\r\nexports.adjustTooltipPosition = adjustTooltipPosition;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CustomChartModifier2D = void 0;\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\n/**\r\n * Base class for custom Chart Modifiers (allows custom zooming, panning, interaction behaviour) on 2D Charts\r\n */\r\nvar CustomChartModifier2D = /** @class */ (function (_super) {\r\n __extends(CustomChartModifier2D, _super);\r\n /**\r\n * @inheritDoc\r\n * @param options\r\n */\r\n function CustomChartModifier2D(options) {\r\n var _this = _super.call(this, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = ChartModifierType_1.EChart2DModifierType.Custom;\r\n return _this;\r\n }\r\n return CustomChartModifier2D;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.CustomChartModifier2D = CustomChartModifier2D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataPointInfo = void 0;\r\nvar DataPointInfo = /** @class */ (function () {\r\n function DataPointInfo(renderableSeries, metadata, index) {\r\n this.renderableSeriesProperty = renderableSeries;\r\n this.indexProperty = index;\r\n this.metadataProperty = metadata;\r\n }\r\n Object.defineProperty(DataPointInfo.prototype, \"metadata\", {\r\n get: function () {\r\n return this.metadataProperty;\r\n },\r\n set: function (metadata) {\r\n this.metadataProperty = metadata;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataPointInfo.prototype, \"index\", {\r\n get: function () {\r\n return this.indexProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataPointInfo.prototype, \"xValue\", {\r\n get: function () {\r\n return this.dataSeries.getNativeXValues().get(this.index);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataPointInfo.prototype, \"yValue\", {\r\n get: function () {\r\n return this.dataSeries.getNativeYValues().get(this.index);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataPointInfo.prototype, \"renderableSeries\", {\r\n get: function () {\r\n return this.renderableSeriesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataPointInfo.prototype, \"dataSeries\", {\r\n get: function () {\r\n return this.renderableSeries.dataSeries;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataPointInfo.prototype, \"seriesName\", {\r\n get: function () {\r\n return this.dataSeries.dataSeriesName;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DataPointInfo;\r\n}());\r\nexports.DataPointInfo = DataPointInfo;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataPointSelectionChangedArgs = void 0;\r\n/**\r\n * Arguments passed into the callback for {@link DataPointSelectionModifier.selectionChanged} event\r\n */\r\nvar DataPointSelectionChangedArgs = /** @class */ (function () {\r\n /**\r\n * Creates an instance of DataPointSelectionChangedArgs -\r\n * arguments passed into the callback for {@link DataPointSelectionModifier.selectionChanged} event\r\n * @param source\r\n * @param selectedDataPoints\r\n */\r\n function DataPointSelectionChangedArgs(source, selectedDataPoints) {\r\n this.source = source;\r\n this.selectedDataPoints = selectedDataPoints;\r\n }\r\n return DataPointSelectionChangedArgs;\r\n}());\r\nexports.DataPointSelectionChangedArgs = DataPointSelectionChangedArgs;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataPointSelectionModifier = exports.ESelectionMode = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar pointUtil_1 = require(\"../../utils/pointUtil\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar IDataSeries_1 = require(\"../Model/IDataSeries\");\r\nvar IPointMetadata_1 = require(\"../Model/IPointMetadata\");\r\nvar BaseHitTestProvider_1 = require(\"../Visuals/RenderableSeries/HitTest/BaseHitTestProvider\");\r\nvar RubberBandSvgRect_1 = require(\"../Visuals/RubberBandSvgRect/RubberBandSvgRect\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\nvar constants_1 = require(\"./constants\");\r\nvar DataPointInfo_1 = require(\"./DataPointInfo\");\r\nvar DataPointSelectionChangedArgs_1 = require(\"./DataPointSelectionChangedArgs\");\r\nvar RubberBandXyZoomModifier_1 = require(\"./RubberBandXyZoomModifier\");\r\n/**\r\n * Defines constants which represents different selection modes of {@link DataPointSelectionModifier}\r\n */\r\nvar ESelectionMode;\r\n(function (ESelectionMode) {\r\n /**\r\n * Points which the user selects are combined with previously selected points.\r\n */\r\n ESelectionMode[\"Union\"] = \"Union\";\r\n /**\r\n * Points which the user selects become selected, Exclusive-Or (XOR) the current selection\r\n */\r\n ESelectionMode[\"Inverse\"] = \"Inverse\";\r\n /**\r\n * Points which the user selects become selected. Previously collected points are cleared or replaced by these.\r\n */\r\n ESelectionMode[\"Replace\"] = \"Replace\";\r\n})(ESelectionMode = exports.ESelectionMode || (exports.ESelectionMode = {}));\r\nvar DataPointSelectionModifier = /** @class */ (function (_super) {\r\n __extends(DataPointSelectionModifier, _super);\r\n /**\r\n * Creates an instances of DataPointSelectionModifier\r\n * @param options Optional parameters of type {@link IDataPointSelectionModifierOptions} used to configure the modifier\r\n */\r\n function DataPointSelectionModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.DataPointSelection;\r\n /**\r\n * A selection-changed EventHandler. See {@link EventHandler} for how to subscribe to and be\r\n * notified when any {@link IRenderableSeries | Series} is selected or unselected\r\n */\r\n _this.selectionChanged = new EventHandler_1.EventHandler();\r\n _this.includedSeriesMap = new Map();\r\n _this.selectedDataPointsMap = new Map();\r\n _this.selectionHasChanged = false;\r\n _this.allowClickSelect = (_a = options === null || options === void 0 ? void 0 : options.allowClickSelect) !== null && _a !== void 0 ? _a : true;\r\n _this.allowDragSelect = (_b = options === null || options === void 0 ? void 0 : options.allowDragSelect) !== null && _b !== void 0 ? _b : true;\r\n if (options === null || options === void 0 ? void 0 : options.selectionStroke) {\r\n _this.selectionStroke = options.selectionStroke;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.selectionFill) {\r\n _this.selectionFill = options === null || options === void 0 ? void 0 : options.selectionFill;\r\n }\r\n _this.selectionStrokeThicknessProperty = (_c = options === null || options === void 0 ? void 0 : options.selectionStrokeThickness) !== null && _c !== void 0 ? _c : 1;\r\n if (options === null || options === void 0 ? void 0 : options.onSelectionChanged) {\r\n if (typeof options.onSelectionChanged === \"string\") {\r\n _this.typeMap.set(\"onSelectionChanged\", options.onSelectionChanged);\r\n // @ts-ignore\r\n _this.selectionChanged.subscribe((0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onSelectionChanged));\r\n }\r\n else {\r\n // @ts-ignore\r\n _this.selectionChanged.subscribe(options.onSelectionChanged);\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.getSelectionMode) {\r\n if (typeof options.getSelectionMode === \"string\") {\r\n _this.typeMap.set(\"getSelectionMode\", options.getSelectionMode);\r\n // @ts-ignore\r\n _this.getSelectionMode = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.getSelectionMode);\r\n }\r\n else {\r\n // @ts-ignore\r\n _this.getSelectionMode = options.getSelectionMode;\r\n }\r\n }\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.applyTheme = function (themeProvider) {\r\n if (!this.testPropertyChanged(constants_1.PROPERTY.SELECTION_FILL)) {\r\n this.selectionFill = themeProvider.rubberBandFillBrush;\r\n }\r\n if (!this.testPropertyChanged(constants_1.PROPERTY.SELECTION_STROKE)) {\r\n this.selectionStroke = themeProvider.rubberBandStrokeBrush;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.onAttach = function () {\r\n var _this = this;\r\n var _a, _b;\r\n _super.prototype.onAttach.call(this);\r\n this.selectionRect = new RubberBandSvgRect_1.RubberBandSvgRect((_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.domSvgContainer, this.selectionFill, this.selectionStroke, this.selectionStrokeThickness);\r\n this.clearSelectedDataPoints();\r\n (_b = this.getAllSeries()) === null || _b === void 0 ? void 0 : _b.forEach(function (rs) { return _this.onAttachSeries(rs); });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.onDetach = function () {\r\n var _this = this;\r\n var _a;\r\n _super.prototype.onDetach.call(this);\r\n this.selectionRect = (0, Deleter_1.deleteSafe)(this.selectionRect);\r\n this.clearSelectedDataPoints();\r\n (_a = this.getAllSeries()) === null || _a === void 0 ? void 0 : _a.forEach(function (rs) { return _this.onDetachSeries(rs); });\r\n };\r\n Object.defineProperty(DataPointSelectionModifier.prototype, \"selectedDataPoints\", {\r\n /**\r\n * An array of currently selected series which can be observed by subscribing to the {@link selectionChanged} {@link EventHandler | event handler}\r\n * @remarks See documentation for how to subscribe to changes\r\n */\r\n get: function () {\r\n return Array.from(this.selectedDataPointsMap.values());\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.onAttachSeries = function (rs) {\r\n _super.prototype.onAttachSeries.call(this, rs);\r\n if (!rs.dataSeries ||\r\n // TODO: Heatmap series not supported\r\n rs.dataSeries.type === IDataSeries_1.EDataSeriesType.HeatmapUniform) {\r\n return;\r\n }\r\n // Build selected points list from attached series\r\n var baseDataSeries = rs.dataSeries;\r\n // Add metadata to series\r\n if (!baseDataSeries.hasMetadataGenerator()) {\r\n baseDataSeries.setMetadataGenerator(new IPointMetadata_1.TemplateMetadataGenerator({ isSelected: false }));\r\n }\r\n for (var i = 0; i < baseDataSeries.getMetadataLength(); i++) {\r\n var metadata = baseDataSeries.getMetadataAt(i);\r\n if (metadata === null || metadata === void 0 ? void 0 : metadata.isSelected) {\r\n var dataPoint = new DataPointInfo_1.DataPointInfo(rs, metadata, i);\r\n this.addSelectedDataPoint(rs, i, dataPoint);\r\n }\r\n }\r\n this.raiseSelectionChanged(false);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.onDetachSeries = function (rs) {\r\n _super.prototype.onDetachSeries.call(this, rs);\r\n if (!rs.dataSeries) {\r\n return;\r\n }\r\n // Remove selected points from selected points list\r\n this.removeSelectedDataPointsForSeries(rs);\r\n this.raiseSelectionChanged(false);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.modifierMouseDown = function (args) {\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call DataPointSelectionModifier.modifierMouseDown if not attached\");\r\n }\r\n // Point coordinates relative to series view rectangle.\r\n var translatedPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect);\r\n if (!translatedPoint) {\r\n return;\r\n }\r\n this.startPoint = translatedPoint;\r\n this.isClicked = true;\r\n args.handled = true;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.modifierMouseMove = function (args) {\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n if (this.isClicked) {\r\n this.endPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(Rect_1.Rect.clipPointToRect(args.mousePoint, seriesViewRect), seriesViewRect);\r\n var _a = (0, RubberBandXyZoomModifier_1.getRubberBandRect)(this.startPoint, this.endPoint, this.xyDirection, this.parentSurface.seriesViewRect), x = _a.x, right = _a.right, y = _a.y, bottom = _a.bottom;\r\n this.selectionRect.isHidden = !this.allowDragSelect;\r\n this.selectionRect.x1 = (0, translate_1.translateToNotScaled)(x);\r\n this.selectionRect.x2 = (0, translate_1.translateToNotScaled)(right);\r\n this.selectionRect.y1 = (0, translate_1.translateToNotScaled)(y);\r\n this.selectionRect.y2 = (0, translate_1.translateToNotScaled)(bottom);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.modifierMouseUp = function (args) {\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call DataPointSelectionModifier.modifierMouseUp if not attached\");\r\n }\r\n if (this.isClicked) {\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n this.endPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(Rect_1.Rect.clipPointToRect(args.mousePoint, seriesViewRect), seriesViewRect);\r\n var rect = (0, RubberBandXyZoomModifier_1.getRubberBandRect)(this.startPoint, this.endPoint, this.xyDirection, this.parentSurface.seriesViewRect);\r\n var isAreaSelection = rect.width >= 3 && rect.height >= 3 && this.allowDragSelect;\r\n var selectionMode = this.getSelectionMode(args, isAreaSelection);\r\n // Process selection\r\n if (isAreaSelection && this.allowDragSelect) {\r\n this.selectManyPoints(rect, selectionMode);\r\n }\r\n else if (this.allowClickSelect) {\r\n this.selectSinglePoint(args.mousePoint, selectionMode);\r\n }\r\n this.isClicked = false;\r\n this.selectionRect.isHidden = true;\r\n }\r\n };\r\n Object.defineProperty(DataPointSelectionModifier.prototype, \"selectionStrokeThickness\", {\r\n /**\r\n * Gets or sets the strokeThickness of the selection rect when the user drags on the chart\r\n */\r\n get: function () {\r\n return this.selectionStrokeThicknessProperty;\r\n },\r\n /**\r\n * Gets or sets the strokeThickness of the selection rect when the user drags on the chart\r\n */\r\n set: function (selectionStrokeThickness) {\r\n this.selectionStrokeThicknessProperty = selectionStrokeThickness;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SELECTION_STROKE_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataPointSelectionModifier.prototype, \"selectionStroke\", {\r\n /**\r\n * Gets or sets the stroke of the selection rect when the user drags on the chart\r\n */\r\n get: function () {\r\n return this.selectionStrokeProperty;\r\n },\r\n /**\r\n * Gets or sets the stroke of the selection rect when the user drags on the chart\r\n */\r\n set: function (selectionStroke) {\r\n this.selectionStrokeProperty = selectionStroke;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SELECTION_STROKE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataPointSelectionModifier.prototype, \"selectionFill\", {\r\n /**\r\n * Gets or sets the fill of the selection rect when the user drags on the chart\r\n */\r\n get: function () {\r\n return this.selectionFillProperty;\r\n },\r\n /**\r\n * Gets or sets the fill of the selection rect when the user drags on the chart\r\n */\r\n set: function (selectionFill) {\r\n this.selectionFillProperty = selectionFill;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SELECTION_FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.getIncludedRenderableSeries = function () {\r\n var _this = this;\r\n return this.getAllSeries().filter(function (rs) { return _this.includedSeriesMap.get(rs) !== false; });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DataPointSelectionModifier.prototype.includeSeries = function (series, isIncluded) {\r\n if (!isIncluded) {\r\n this.includedSeriesMap.set(series, isIncluded);\r\n }\r\n if (isIncluded) {\r\n this.includedSeriesMap.delete(series);\r\n }\r\n };\r\n Object.defineProperty(DataPointSelectionModifier.prototype, \"includedSeries\", {\r\n /**\r\n * Used internally for tests. Gets a Map of included series\r\n * @remarks Series include flag set to false means excluded. Series not present or flag=true means included\r\n */\r\n get: function () {\r\n return this.includedSeriesMap;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets the current {@link ESelectionMode} to use - e.g. Union, Replace - depending on {@link TModifierKeys}\r\n * and if the selection is area selection or not. This function can be overridden by the\r\n * {@link IDataPointSelectionModifierOptions.getSelectionMode}\r\n * @remarks Default behaviour is {@link ESelectionMode.Replace}, or {@link ESelectionMode.Union} when CTRL pressed,\r\n * or {@link ESelectionMode.Inverse} when Shift pressed\r\n * @param modifierKeys The {@link TModifierKeys} e.g. if Ctrl, Shift or Alt are pressed\r\n * @param isAreaSelection When true, the user has selected a rectangle or area, not clicked a single point\r\n * @protected\r\n */\r\n DataPointSelectionModifier.prototype.getSelectionMode = function (modifierKeys, isAreaSelection) {\r\n if (modifierKeys.ctrlKey) {\r\n // Union when area selection and CTRL else Inverse\r\n return ESelectionMode.Union;\r\n }\r\n else if (modifierKeys.shiftKey) {\r\n // When shift Inverse\r\n return ESelectionMode.Inverse;\r\n }\r\n // Default mode is Replace\r\n return ESelectionMode.Replace;\r\n };\r\n DataPointSelectionModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n allowClickSelect: this.allowClickSelect,\r\n allowDragSelect: this.allowDragSelect,\r\n getSelectionMode: this.typeMap.get(\"getSelectionMode\"),\r\n onSelectionChanged: this.typeMap.get(\"onSelectionChanged\"),\r\n selectionFill: this.selectionFill,\r\n selectionStroke: this.selectionStroke,\r\n selectionStrokeThickness: this.selectionStrokeThickness\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n DataPointSelectionModifier.prototype.delete = function () {\r\n this.selectionChanged.unsubscribeAll();\r\n this.selectionRect = (0, Deleter_1.deleteSafe)(this.selectionRect);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * Selects all points inside the {@link Rect}, according to the {@link ESelectionMode} passed in\r\n * @param rect\r\n * @param selectionMode\r\n * @protected\r\n */\r\n DataPointSelectionModifier.prototype.selectManyPoints = function (rect, selectionMode) {\r\n var _this = this;\r\n if (this.parentSurface) {\r\n var multiSelect = selectionMode !== ESelectionMode.Replace;\r\n if (!multiSelect) {\r\n this.deselectAllPoints(false);\r\n }\r\n // Perform an area selection on all series\r\n this.getIncludedRenderableSeries()\r\n .filter(function (rs) { return rs.isVisible && rs.dataSeries; })\r\n .forEach(function (rs, index) {\r\n var xCalc = rs.xAxis.getCurrentCoordinateCalculator();\r\n var yCalc = rs.yAxis.getCurrentCoordinateCalculator();\r\n // Find the bounds of the data inside the rectangle\r\n var leftXData, rightXData;\r\n if (xCalc.getDataValue(_this.startPoint.x) <= xCalc.getDataValue(_this.endPoint.x)) {\r\n leftXData = xCalc.getDataValue(_this.startPoint.x);\r\n rightXData = xCalc.getDataValue(_this.endPoint.x);\r\n }\r\n else {\r\n leftXData = xCalc.getDataValue(_this.endPoint.x);\r\n rightXData = xCalc.getDataValue(_this.startPoint.x);\r\n }\r\n var bottomYData, topYData;\r\n if (yCalc.getDataValue(_this.startPoint.y) <= yCalc.getDataValue(_this.endPoint.y)) {\r\n bottomYData = yCalc.getDataValue(_this.startPoint.y);\r\n topYData = yCalc.getDataValue(_this.endPoint.y);\r\n }\r\n else {\r\n bottomYData = yCalc.getDataValue(_this.endPoint.y);\r\n topYData = yCalc.getDataValue(_this.startPoint.y);\r\n }\r\n if (rs.dataSeries.type === IDataSeries_1.EDataSeriesType.HeatmapUniform) {\r\n // TODO: Heatmap series\r\n }\r\n else {\r\n var baseDataSeries = rs.dataSeries;\r\n for (var i = 0; i < baseDataSeries.count(); i++) {\r\n var x = baseDataSeries.getNativeXValues().get(i);\r\n var y = baseDataSeries.getNativeYValues().get(i);\r\n if ((0, pointUtil_1.testIsInBounds)(x, y, leftXData, topYData, rightXData, bottomYData)) {\r\n var metadata = baseDataSeries.getMetadataAt(i);\r\n if (selectionMode !== ESelectionMode.Inverse) {\r\n metadata.isSelected = true;\r\n _this.addSelectedDataPoint(rs, i, new DataPointInfo_1.DataPointInfo(rs, metadata, i));\r\n }\r\n else {\r\n if (metadata.isSelected) {\r\n metadata.isSelected = false;\r\n _this.removeSelectedDataPoint(rs, i);\r\n }\r\n else {\r\n metadata.isSelected = true;\r\n _this.addSelectedDataPoint(rs, i, new DataPointInfo_1.DataPointInfo(rs, metadata, i));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n this.raiseSelectionChanged(true);\r\n }\r\n };\r\n /**\r\n * Performs selection of a single point with the desired {@link ESelectionMode}\r\n * @param point\r\n * @param selectionMode\r\n * @protected\r\n */\r\n DataPointSelectionModifier.prototype.selectSinglePoint = function (point, selectionMode) {\r\n var _this = this;\r\n if (this.parentSurface) {\r\n // Perform hit-test at the x-y point\r\n var hitTestResults = this.getIncludedRenderableSeries()\r\n .filter(function (rs) { return rs.isVisible && rs.dataSeries; }) // todo && included series\r\n .map(function (rs) { return ({\r\n renderableSeries: rs,\r\n hitTestInfo: rs.hitTestProvider.hitTestForDataPointSelectionModifier(point.x, point.y, BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS)\r\n }); });\r\n var multiSelect = selectionMode !== ESelectionMode.Replace;\r\n if (!multiSelect) {\r\n this.deselectAllPoints(false);\r\n }\r\n hitTestResults.forEach(function (htResult) {\r\n var ht = htResult.hitTestInfo;\r\n var rs = htResult.renderableSeries;\r\n if (!ht.isHit) {\r\n return;\r\n }\r\n // Metadata can't be auto-created if the renderableSeries is added to the surface without a dataSeries\r\n if (!ht.metadata) {\r\n console.warn(\"Cannot select datapoint for series \".concat(ht.dataSeriesName, \" as it does not have metadata. To solve this either:\\nConfigure metadata when you create the series or when you add data eg renderableSeries.dataSeries = new XyDataSeries(wasmContext, { metadata: { isSelected: false }}), or:\\nAdd the DataPointSelectionModifier after all series have had their dataSeries set.\"));\r\n return;\r\n }\r\n if (selectionMode === ESelectionMode.Union) {\r\n // Always select in union\r\n ht.metadata.isSelected = true;\r\n var newDataPointInfo = new DataPointInfo_1.DataPointInfo(ht.associatedSeries, ht.metadata, ht.dataSeriesIndex);\r\n _this.addSelectedDataPoint(ht.associatedSeries, ht.dataSeriesIndex, newDataPointInfo);\r\n }\r\n else {\r\n // Toggle selection\r\n ht.metadata.isSelected = !ht.metadata.isSelected;\r\n if (ht.metadata.isSelected) {\r\n _this.addSelectedDataPoint(rs, ht.dataSeriesIndex, new DataPointInfo_1.DataPointInfo(ht.associatedSeries, ht.metadata, ht.dataSeriesIndex));\r\n }\r\n else {\r\n _this.removeSelectedDataPoint(rs, ht.dataSeriesIndex);\r\n }\r\n }\r\n });\r\n this.raiseSelectionChanged(true);\r\n }\r\n };\r\n /**\r\n * Deselects all points\r\n * @param invalidate When true (default=true) raise {@link selectionChanged} event and redraw the parent {@link SciChartSurface}\r\n * @protected\r\n */\r\n DataPointSelectionModifier.prototype.deselectAllPoints = function (invalidate) {\r\n if (invalidate === void 0) { invalidate = true; }\r\n // Deselect all datapoints\r\n this.selectedDataPoints.forEach(function (dp) {\r\n if (dp.renderableSeries && dp.metadata) {\r\n dp.metadata.isSelected = false;\r\n }\r\n });\r\n this.clearSelectedDataPoints();\r\n if (invalidate) {\r\n this.raiseSelectionChanged(true);\r\n }\r\n };\r\n DataPointSelectionModifier.prototype.addSelectedDataPoint = function (rs, index, value) {\r\n this.selectedDataPointsMap.set(getKey(rs, index), value);\r\n this.selectionHasChanged = true;\r\n };\r\n DataPointSelectionModifier.prototype.removeSelectedDataPoint = function (rs, index) {\r\n this.selectedDataPointsMap.delete(getKey(rs, index));\r\n this.selectionHasChanged = true;\r\n };\r\n DataPointSelectionModifier.prototype.clearSelectedDataPoints = function () {\r\n if (this.selectedDataPointsMap.size > 0) {\r\n this.selectionHasChanged = true;\r\n }\r\n this.selectedDataPointsMap.clear();\r\n };\r\n DataPointSelectionModifier.prototype.removeSelectedDataPointsForSeries = function (rs) {\r\n var _this = this;\r\n this.selectedDataPointsMap.forEach(function (dp, key) {\r\n if (dp.renderableSeries === rs) {\r\n _this.selectedDataPointsMap.delete(key);\r\n _this.selectionHasChanged = true;\r\n }\r\n });\r\n };\r\n DataPointSelectionModifier.prototype.raiseSelectionChanged = function (invalidate) {\r\n var _a;\r\n if (this.selectionHasChanged) {\r\n this.selectionChanged.raiseEvent(new DataPointSelectionChangedArgs_1.DataPointSelectionChangedArgs(this, this.selectedDataPoints));\r\n this.selectionHasChanged = false;\r\n if (invalidate) {\r\n (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n }\r\n }\r\n };\r\n return DataPointSelectionModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.DataPointSelectionModifier = DataPointSelectionModifier;\r\nvar getKey = function (rs, index) { return \"\".concat(rs.id, \"_\").concat(index); };\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LegendModifier = void 0;\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar SciChartLegend_1 = require(\"../Visuals/Legend/SciChartLegend\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\n/**\r\n * The LegendModifier provides interactive legend behavior on a 2D {@link SciChartSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the LegendModifier to a {@link SciChartSurface} and add tooltip behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new LegendModifier());\r\n * ```\r\n */\r\nvar LegendModifier = /** @class */ (function (_super) {\r\n __extends(LegendModifier, _super);\r\n /**\r\n * Creates an instance of the LegendModifier\r\n * @param options Optional parameters {@link ILegendModifierOptions} used to configure the modifier\r\n */\r\n function LegendModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.Legend;\r\n /**\r\n * An event handler raised when a {@link SciChartLegend} row checkbox is checked or unchecked\r\n */\r\n _this.isCheckedChanged = new EventHandler_1.EventHandler();\r\n _this.includedSeriesMap = new Map();\r\n _this.legendItemCheckedChanged = _this.legendItemCheckedChanged.bind(_this);\r\n _this.sciChartLegend = (_a = options === null || options === void 0 ? void 0 : options.legend) !== null && _a !== void 0 ? _a : new SciChartLegend_1.SciChartLegend(options);\r\n _this.sciChartLegend.showCheckboxes = (_b = options === null || options === void 0 ? void 0 : options.showCheckboxes) !== null && _b !== void 0 ? _b : _this.sciChartLegend.showCheckboxes;\r\n _this.sciChartLegend.showSeriesMarkers = (_c = options === null || options === void 0 ? void 0 : options.showSeriesMarkers) !== null && _c !== void 0 ? _c : _this.sciChartLegend.showSeriesMarkers;\r\n _this.sciChartLegend.legendItemCheckedChangedCallback = _this.legendItemCheckedChanged;\r\n if (options === null || options === void 0 ? void 0 : options.isCheckedChangedCallback) {\r\n _this.isCheckedChanged.subscribe(function (arg) {\r\n return options.isCheckedChangedCallback(arg.series, arg.isChecked);\r\n });\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n LegendModifier.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n this.sciChartLegend.applyTheme();\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.onAttachSeries = function (rs) {\r\n _super.prototype.onAttachSeries.call(this, rs);\r\n this.sciChartLegend.setRenderableSeriesArray(this.getIncludedRenderableSeries());\r\n this.sciChartLegend.setInvalidateParentSurface(this.parentSurface.invalidateElement);\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.onDetachSeries = function (rs) {\r\n _super.prototype.onDetachSeries.call(this, rs);\r\n this.sciChartLegend.setRenderableSeriesArray(this.getIncludedRenderableSeries());\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.onParentSurfaceRendered = function () {\r\n _super.prototype.onParentSurfaceRendered.call(this);\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.onAttach = function () {\r\n _super.prototype.onAttach.call(this);\r\n this.sciChartLegend.attachTo(this.parentSurface);\r\n this.sciChartLegend.setRenderableSeriesArray(this.getIncludedRenderableSeries());\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.onDetach = function () {\r\n var _a, _b;\r\n _super.prototype.onDetach.call(this);\r\n (_a = this.sciChartLegend) === null || _a === void 0 ? void 0 : _a.setRenderableSeriesArray([]);\r\n (_b = this.sciChartLegend) === null || _b === void 0 ? void 0 : _b.detach();\r\n this.sciChartLegend = undefined;\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.includeSeries = function (series, isIncluded) {\r\n var _a;\r\n var valueChanged = (this.includedSeriesMap.get(series) === undefined && !isIncluded) ||\r\n (this.includedSeriesMap.get(series) === true && !isIncluded) ||\r\n (this.includedSeriesMap.get(series) === false && isIncluded);\r\n if (valueChanged) {\r\n this.includedSeriesMap.set(series, isIncluded);\r\n if (this.isAttached) {\r\n this.sciChartLegend.setRenderableSeriesArray(this.getIncludedRenderableSeries());\r\n }\r\n (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n }\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.getIncludedRenderableSeries = function () {\r\n var _this = this;\r\n // For the legend we need to show also not visible series and series with out data\r\n var regularSeries = this.parentSurface.renderableSeries\r\n .asArray()\r\n .filter(function (rs) { return !rs.isStacked && _this.testIsIncludedSeries(rs); });\r\n var stackedSeries = this.parentSurface.renderableSeries.asArray().filter(function (rs) { return rs.isStacked; });\r\n var result = regularSeries;\r\n stackedSeries.forEach(function (rs) {\r\n rs.asArray().forEach(function (childRs) {\r\n if (_this.testIsIncludedSeries(childRs)) {\r\n result.push(childRs);\r\n }\r\n });\r\n });\r\n return result;\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n margin: this.sciChartLegend.margin,\r\n orientation: this.sciChartLegend.orientation,\r\n placement: this.sciChartLegend.placement,\r\n showCheckboxes: this.sciChartLegend.showCheckboxes,\r\n showLegend: this.sciChartLegend.showLegend,\r\n showSeriesMarkers: this.sciChartLegend.showSeriesMarkers\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n LegendModifier.prototype.delete = function () {\r\n _super.prototype.delete.call(this);\r\n this.onDetach();\r\n };\r\n /**\r\n * Callback called from inner {@link SciChartLegend} when a checkbox is checked or unchecked\r\n * @param series\r\n * @param isChecked\r\n * @protected\r\n */\r\n LegendModifier.prototype.legendItemCheckedChanged = function (series, isChecked) {\r\n var _a;\r\n (_a = this.isCheckedChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent({ series: series, isChecked: isChecked });\r\n };\r\n /**\r\n * Test if the series is included or excluded, by default it is included\r\n * @param series\r\n * @private\r\n */\r\n LegendModifier.prototype.testIsIncludedSeries = function (series) {\r\n return this.includedSeriesMap.get(series) !== false;\r\n };\r\n return LegendModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.LegendModifier = LegendModifier;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModifierArgsBase = void 0;\r\n/**\r\n * The base class for arguments passed to {@link ChartModifierBase} methods\r\n */\r\nvar ModifierArgsBase = /** @class */ (function () {\r\n function ModifierArgsBase() {\r\n /**\r\n * Gets or sets whether the event is handled\r\n * @remarks\r\n * Set handled to true if you want to prevent the event from propagating to subsequent modifiers in the\r\n * parent {@link SciChartSurfaceBase.chartModifiers} collection\r\n *\r\n * If handled is true, the events no longer propagate. To override this behaviour set {@link ChartModifierBase.receiveHandledEvents} to true\r\n */\r\n this.handled = false;\r\n }\r\n return ModifierArgsBase;\r\n}());\r\nexports.ModifierArgsBase = ModifierArgsBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModifierMouseArgs = void 0;\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar Point_1 = require(\"../../Core/Point\");\r\nvar DpiHelper_1 = require(\"../Visuals/TextureManager/DpiHelper\");\r\nvar ModifierArgsBase_1 = require(\"./ModifierArgsBase\");\r\n/**\r\n * Mouse arguments passed to {@link ChartModifierBase} methods\r\n */\r\nvar ModifierMouseArgs = /** @class */ (function (_super) {\r\n __extends(ModifierMouseArgs, _super);\r\n /**\r\n * Creates an instance of {@link ModifierMouseArgs}\r\n * @param mousePoint the mouse point as an X,Y location\r\n * @param options optional parameters to configure the args\r\n */\r\n function ModifierMouseArgs(mousePoint, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this) || this;\r\n /**\r\n * Identifies if the event comes from an active sub chart\r\n * Useful for SubChartSurfaces with modifierGroups\r\n * for SciChartSurface returns always True\r\n */\r\n _this.isActiveSubChartEvent = true;\r\n _this.mousePoint = mousePoint;\r\n _this.button = options === null || options === void 0 ? void 0 : options.button;\r\n _this.mouseWheelDelta = (_a = options === null || options === void 0 ? void 0 : options.mouseWheelDelta) !== null && _a !== void 0 ? _a : 0;\r\n _this.pointerId = options === null || options === void 0 ? void 0 : options.pointerId;\r\n _this.pointerType = options === null || options === void 0 ? void 0 : options.pointerType;\r\n _this.target = options === null || options === void 0 ? void 0 : options.target;\r\n _this.isMaster = options === null || options === void 0 ? void 0 : options.isMaster;\r\n _this.modifierGroup = options === null || options === void 0 ? void 0 : options.modifierGroup;\r\n _this.shiftKey = options === null || options === void 0 ? void 0 : options.shiftKey;\r\n _this.altKey = options === null || options === void 0 ? void 0 : options.altKey;\r\n _this.ctrlKey = options === null || options === void 0 ? void 0 : options.ctrlKey;\r\n _this.nativeEvent = options === null || options === void 0 ? void 0 : options.nativeEvent;\r\n return _this;\r\n }\r\n /**\r\n * Creates a {@link ModifierMouseArgs} instance from Javascript {@link MouseEvent}\r\n * @param mouseEvent the Javascript {@link MouseEvent}\r\n */\r\n ModifierMouseArgs.fromMouseEvent = function (mouseEvent) {\r\n Guard_1.Guard.notNull(mouseEvent, \"mouseEvent\");\r\n var mousePoint = new Point_1.Point(mouseEvent.offsetX * DpiHelper_1.DpiHelper.PIXEL_RATIO, mouseEvent.offsetY * DpiHelper_1.DpiHelper.PIXEL_RATIO);\r\n var options = {\r\n target: mouseEvent.target,\r\n isMaster: true,\r\n shiftKey: mouseEvent.shiftKey,\r\n ctrlKey: mouseEvent.ctrlKey,\r\n altKey: mouseEvent.altKey,\r\n nativeEvent: mouseEvent\r\n };\r\n return new ModifierMouseArgs(mousePoint, options);\r\n };\r\n /**\r\n * Creates a {@link ModifierMouseArgs} instance from Javascript {@link WheelEvent}\r\n * @param wheelEvent the Javascript {@link WheelEvent}\r\n */\r\n ModifierMouseArgs.fromWheelEvent = function (wheelEvent) {\r\n Guard_1.Guard.notNull(wheelEvent, \"wheelEvent\");\r\n var mousePoint = new Point_1.Point(wheelEvent.offsetX * DpiHelper_1.DpiHelper.PIXEL_RATIO, wheelEvent.offsetY * DpiHelper_1.DpiHelper.PIXEL_RATIO);\r\n var options = {\r\n mouseWheelDelta: wheelEvent.deltaY,\r\n target: wheelEvent.target,\r\n isMaster: true,\r\n shiftKey: wheelEvent.shiftKey,\r\n ctrlKey: wheelEvent.ctrlKey,\r\n altKey: wheelEvent.altKey,\r\n nativeEvent: wheelEvent\r\n };\r\n return new ModifierMouseArgs(mousePoint, options);\r\n };\r\n /**\r\n * Creates a {@link ModifierMouseArgs} instance from Javascript {@link PointerEvent}\r\n * @param pointerEvent the Javascript {@link PointerEvent}\r\n */\r\n ModifierMouseArgs.fromPointerEvent = function (pointerEvent) {\r\n Guard_1.Guard.notNull(pointerEvent, \"pointerEvent\");\r\n var mousePoint = new Point_1.Point(pointerEvent.offsetX * DpiHelper_1.DpiHelper.PIXEL_RATIO, pointerEvent.offsetY * DpiHelper_1.DpiHelper.PIXEL_RATIO);\r\n var options = {\r\n button: pointerEvent.button,\r\n pointerId: pointerEvent.pointerId,\r\n pointerType: pointerEvent.pointerType,\r\n target: pointerEvent.target,\r\n isMaster: true,\r\n shiftKey: pointerEvent.shiftKey,\r\n ctrlKey: pointerEvent.ctrlKey,\r\n altKey: pointerEvent.altKey,\r\n nativeEvent: pointerEvent\r\n };\r\n return new ModifierMouseArgs(mousePoint, options);\r\n };\r\n /**\r\n * Copies or clones a {@link ModifierMouseArgs}\r\n * @param args the {@link ModifierMouseArgs} instance\r\n * @param modifierGroup the Modifier Group / string ID for sharing mouse events\r\n * @param masterViewport the master viewport or parent chart issuing mouse events\r\n * @param slaveViewport the slave viewport or child chart receiving mouse events\r\n */\r\n ModifierMouseArgs.copy = function (args, modifierGroup, masterViewport, slaveViewport, masterData) {\r\n var mousePoint = args.mousePoint;\r\n if (masterViewport && slaveViewport) {\r\n var sourceX = args.mousePoint.x - masterViewport.x;\r\n var sourceY = args.mousePoint.y - masterViewport.y;\r\n var scaleX = slaveViewport.width / masterViewport.width;\r\n var scaleY = slaveViewport.height / masterViewport.height;\r\n mousePoint = new Point_1.Point(slaveViewport.x + sourceX * scaleX, slaveViewport.y + sourceY * scaleY);\r\n }\r\n return __assign(__assign({}, args), { isMaster: false, masterData: masterData, handled: false, modifierGroup: modifierGroup, mousePoint: mousePoint });\r\n };\r\n ModifierMouseArgs.copyForSubChart = function (args, modifierGroup, masterViewport, slaveViewport, masterData) {\r\n var mousePoint = args.mousePoint;\r\n if (masterViewport && slaveViewport) {\r\n var scaleX = slaveViewport.width / masterViewport.width;\r\n var scaleY = slaveViewport.height / masterViewport.height;\r\n mousePoint = new Point_1.Point((args.mousePoint.x - masterViewport.x) * scaleX + slaveViewport.x, (args.mousePoint.y - masterViewport.y) * scaleY + slaveViewport.y);\r\n }\r\n return __assign(__assign({}, args), { isMaster: false, masterData: masterData, handled: false, modifierGroup: modifierGroup, mousePoint: mousePoint });\r\n };\r\n return ModifierMouseArgs;\r\n}(ModifierArgsBase_1.ModifierArgsBase));\r\nexports.ModifierMouseArgs = ModifierMouseArgs;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseWheelZoomModifier = exports.EActionType = void 0;\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar XyDirection_1 = require(\"../../types/XyDirection\");\r\nvar ZoomState_1 = require(\"../../types/ZoomState\");\r\nvar includedAxis_1 = require(\"../../utils/includedAxis\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar AxisBase2D_1 = require(\"../Visuals/Axis/AxisBase2D\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\n/**\r\n * Defines enumeration constants for the zoom or pan action on {@link MouseWheelZoomModifier}\r\n */\r\nvar EActionType;\r\n(function (EActionType) {\r\n /**\r\n * Zooms in and out when the Mouse Wheel event occurs\r\n */\r\n EActionType[EActionType[\"Zoom\"] = 0] = \"Zoom\";\r\n /**\r\n * Pans when the Mouse Wheel event occurs\r\n */\r\n EActionType[EActionType[\"Pan\"] = 1] = \"Pan\";\r\n})(EActionType = exports.EActionType || (exports.EActionType = {}));\r\n/**\r\n * The MouseWheelZoomModifier provides Mouse wheel zooming behavior on a 2D {@link SciChartSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the MouseWheelZoomModifier to a {@link SciChartSurface} and add Mouse-wheel zoom behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new MouseWheelZoomModifier());\r\n * ```\r\n *\r\n * The speed of mouse-wheel zoom can be modified via the {@link MouseWheelZoomModifier.growFactor} property.\r\n */\r\nvar MouseWheelZoomModifier = /** @class */ (function (_super) {\r\n __extends(MouseWheelZoomModifier, _super);\r\n /**\r\n * Creates an instance of MouseWheelZoomModifier\r\n * @param options Optional parameters to configure the modifier via {@link IMouseWheelZoomModifierOptions}\r\n */\r\n function MouseWheelZoomModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.MouseWheelZoom;\r\n /**\r\n * Modifies the speed of mousewheel zoom, for example growFactor = 0.001 means each mousewheel 'click'\r\n * zooms the chart 0.1%\r\n */\r\n _this.growFactor = 0.001;\r\n /**\r\n * Defines whether the Mouse Wheel zooms or pans. See {@link EActionType} for options\r\n */\r\n _this.actionType = EActionType.Zoom;\r\n /**\r\n * Whether the modifier applies when the mouse is over the area where series are drawn (ie not over the axes). Default true.\r\n */\r\n _this.applyToSeriesViewRect = true;\r\n /**\r\n * Whether the modifier applies when the mouse is over the axes. Default true.\r\n */\r\n _this.applyToAxes = true;\r\n _this.includedXAxisMap = new Map();\r\n _this.includedYAxisMap = new Map();\r\n _this.growFactor = (_a = options === null || options === void 0 ? void 0 : options.growFactor) !== null && _a !== void 0 ? _a : _this.growFactor;\r\n _this.actionType = (_b = options === null || options === void 0 ? void 0 : options.actionType) !== null && _b !== void 0 ? _b : _this.actionType;\r\n _this.applyToSeriesViewRect = (_c = options === null || options === void 0 ? void 0 : options.applyToSeriesViewRect) !== null && _c !== void 0 ? _c : _this.applyToSeriesViewRect;\r\n _this.applyToAxes = (_d = options === null || options === void 0 ? void 0 : options.applyToAxes) !== null && _d !== void 0 ? _d : _this.applyToAxes;\r\n if (_this.actionType === EActionType.Pan && _this.xyDirection === XyDirection_1.EXyDirection.XyDirection) {\r\n console.warn(\"SciChart MouseWheelZoomModifier: actionType=Pan and xyDirection=Xy conflict. Auto setting XyDirection to X\");\r\n _this.xyDirection = XyDirection_1.EXyDirection.XDirection;\r\n }\r\n if (((_e = options === null || options === void 0 ? void 0 : options.includedXAxisIds) === null || _e === void 0 ? void 0 : _e.length) > 0 && ((_f = options === null || options === void 0 ? void 0 : options.excludedXAxisIds) === null || _f === void 0 ? void 0 : _f.length) > 0) {\r\n throw new Error(\"You either should use includedXAxisIds or excludedXAxisIds\");\r\n }\r\n if (((_g = options === null || options === void 0 ? void 0 : options.includedYAxisIds) === null || _g === void 0 ? void 0 : _g.length) > 0 && ((_h = options === null || options === void 0 ? void 0 : options.excludedYAxisIds) === null || _h === void 0 ? void 0 : _h.length) > 0) {\r\n throw new Error(\"You either should use includedYAxisIds or excludedYAxisIds\");\r\n }\r\n (_j = options === null || options === void 0 ? void 0 : options.includedXAxisIds) === null || _j === void 0 ? void 0 : _j.forEach(function (id) {\r\n _this.includedXAxisMap.set(id, true);\r\n });\r\n (_k = options === null || options === void 0 ? void 0 : options.includedYAxisIds) === null || _k === void 0 ? void 0 : _k.forEach(function (id) {\r\n _this.includedYAxisMap.set(id, true);\r\n });\r\n (_l = options === null || options === void 0 ? void 0 : options.excludedXAxisIds) === null || _l === void 0 ? void 0 : _l.forEach(function (id) {\r\n _this.includedXAxisMap.set(id, false);\r\n });\r\n (_m = options === null || options === void 0 ? void 0 : options.excludedYAxisIds) === null || _m === void 0 ? void 0 : _m.forEach(function (id) {\r\n _this.includedYAxisMap.set(id, false);\r\n });\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n MouseWheelZoomModifier.prototype.modifierMouseWheel = function (args) {\r\n var _this = this;\r\n _super.prototype.modifierMouseWheel.call(this, args);\r\n var zoomPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect);\r\n if (zoomPoint && this.applyToSeriesViewRect) {\r\n if (this.actionType === EActionType.Zoom) {\r\n args.handled = this.performZoom(zoomPoint, args.mouseWheelDelta);\r\n }\r\n else if (this.actionType === EActionType.Pan) {\r\n args.handled = this.performPan(args.mouseWheelDelta);\r\n }\r\n }\r\n else if (this.applyToAxes) {\r\n var targetAxes = [];\r\n if ([XyDirection_1.EXyDirection.XDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n targetAxes.push.apply(targetAxes, this.getIncludedXAxis());\r\n }\r\n if ([XyDirection_1.EXyDirection.YDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n targetAxes.push.apply(targetAxes, this.getIncludedYAxis());\r\n }\r\n var activeAxes = (0, ChartModifierBase2D_1.getActiveAxes)(targetAxes, args.mousePoint);\r\n if (activeAxes.length > 0) {\r\n args.handled = true;\r\n if (this.actionType === EActionType.Zoom) {\r\n var fraction_1 = this.growFactor * args.mouseWheelDelta;\r\n var mousePoint_1 = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect, true);\r\n activeAxes.forEach(function (axis) {\r\n _this.growBy(mousePoint_1, axis, fraction_1);\r\n });\r\n }\r\n else if (this.actionType === EActionType.Pan) {\r\n activeAxes.forEach(function (axis) {\r\n var size = _this.getAxisSize(axis);\r\n var pixels = args.mouseWheelDelta * _this.growFactor * size;\r\n axis.scroll(pixels, AxisBase2D_1.EClipMode.None);\r\n });\r\n }\r\n }\r\n }\r\n if (args.handled) {\r\n this.parentSurface.setZoomState(ZoomState_1.EZoomState.UserZooming);\r\n }\r\n };\r\n /**\r\n * Performs the zoom operation around the mouse point\r\n * @param mousePoint The X,Y location of the mouse at the time of the zoom\r\n * @param wheelDelta the MouseWheel delta\r\n */\r\n MouseWheelZoomModifier.prototype.performZoom = function (mousePoint, wheelDelta) {\r\n var _this = this;\r\n var fraction = this.growFactor * wheelDelta;\r\n var anyUpdated = false;\r\n if ([XyDirection_1.EXyDirection.XDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n this.getIncludedXAxis().forEach(function (axis) {\r\n _this.growBy(mousePoint, axis, fraction);\r\n anyUpdated = true;\r\n });\r\n }\r\n if ([XyDirection_1.EXyDirection.YDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n this.getIncludedYAxis().forEach(function (axis) {\r\n _this.growBy(mousePoint, axis, fraction);\r\n anyUpdated = true;\r\n });\r\n }\r\n return anyUpdated;\r\n };\r\n /**\r\n * Performs a pan operation\r\n * @param wheelDelta the MouseWheel delta\r\n */\r\n MouseWheelZoomModifier.prototype.performPan = function (wheelDelta) {\r\n var _this = this;\r\n var anyUpdated = false;\r\n if ([XyDirection_1.EXyDirection.XDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n this.getIncludedXAxis().forEach(function (axis) {\r\n var size = _this.getAxisSize(axis);\r\n var pixels = wheelDelta * _this.growFactor * size;\r\n axis.scroll(pixels, AxisBase2D_1.EClipMode.None);\r\n anyUpdated = true;\r\n });\r\n }\r\n if ([XyDirection_1.EXyDirection.YDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n this.getIncludedYAxis().forEach(function (axis) {\r\n var size = _this.getAxisSize(axis);\r\n var pixels = wheelDelta * _this.growFactor * size;\r\n axis.scroll(pixels, AxisBase2D_1.EClipMode.None);\r\n anyUpdated = true;\r\n });\r\n }\r\n return anyUpdated;\r\n };\r\n /** @inheritDoc */\r\n MouseWheelZoomModifier.prototype.includeXAxis = function (axis, isIncluded) {\r\n this.includedXAxisMap.set(axis.id, isIncluded);\r\n };\r\n /** @inheritDoc */\r\n MouseWheelZoomModifier.prototype.includeYAxis = function (axis, isIncluded) {\r\n this.includedYAxisMap.set(axis.id, isIncluded);\r\n };\r\n /** @inheritDoc */\r\n MouseWheelZoomModifier.prototype.includeAllAxes = function () {\r\n this.includedXAxisMap.clear();\r\n };\r\n /** @inheritDoc */\r\n MouseWheelZoomModifier.prototype.getIncludedXAxis = function () {\r\n return (0, includedAxis_1.getIncludedAxis)(this.parentSurface.xAxes.asArray(), this.includedXAxisMap);\r\n };\r\n /** @inheritDoc */\r\n MouseWheelZoomModifier.prototype.getIncludedYAxis = function () {\r\n return (0, includedAxis_1.getIncludedAxis)(this.parentSurface.yAxes.asArray(), this.includedYAxisMap);\r\n };\r\n MouseWheelZoomModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n actionType: this.actionType,\r\n growFactor: this.growFactor,\r\n applyToSeriesViewRect: this.applyToSeriesViewRect,\r\n applyToAxes: this.applyToAxes,\r\n includedXAxisIds: Array.from(this.includedXAxisMap.entries())\r\n .filter(function (a) { return a[1]; })\r\n .map(function (a) { return a[0]; }),\r\n includedYAxisIds: Array.from(this.includedYAxisMap.entries())\r\n .filter(function (a) { return a[1]; })\r\n .map(function (a) { return a[0]; }),\r\n excludedXAxisIds: Array.from(this.includedXAxisMap.entries())\r\n .filter(function (a) { return !a[1]; })\r\n .map(function (a) { return a[0]; }),\r\n excludedYAxisIds: Array.from(this.includedYAxisMap.entries())\r\n .filter(function (a) { return !a[1]; })\r\n .map(function (a) { return a[0]; })\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /**\r\n * Gets the axis size for scroll calculations\r\n * @param axis\r\n * @protected\r\n */\r\n MouseWheelZoomModifier.prototype.getAxisSize = function (axis) {\r\n var size = axis.isHorizontalAxis ? axis.viewRect.width : axis.viewRect.height;\r\n if (Math.abs(size) < 0.00000001 && this.parentSurface) {\r\n size = axis.isHorizontalAxis\r\n ? this.parentSurface.seriesViewRect.width\r\n : this.parentSurface.seriesViewRect.height;\r\n }\r\n return size;\r\n };\r\n return MouseWheelZoomModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.MouseWheelZoomModifier = MouseWheelZoomModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OverviewRangeSelectionModifier = void 0;\r\nvar NumberRangeAnimator_1 = require(\"../../Core/Animations/NumberRangeAnimator\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar XyDirection_1 = require(\"../../types/XyDirection\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar AnnotationBase_1 = require(\"../Visuals/Annotations/AnnotationBase\");\r\nvar OverviewCustomResizableAnnotation_1 = require(\"../Visuals/Annotations/OverviewCustomResizableAnnotation\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\n/**\r\n * The OverviewRangeSelectionModifier provides drag-rectangle to zoom behavior on a 2D {@link SciChartSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the OverviewRangeSelectionModifier to a {@link SciChartSurface} and add drag to zoom behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new OverviewRangeSelectionModifier());\r\n * ```\r\n */\r\nvar OverviewRangeSelectionModifier = /** @class */ (function (_super) {\r\n __extends(OverviewRangeSelectionModifier, _super);\r\n /**\r\n * Creates an instance of a OverviewRangeSelectionModifier\r\n * @param options Optional parameters used to configure the modifier\r\n */\r\n function OverviewRangeSelectionModifier(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.OverviewRangeSelection;\r\n _this.animationDuration = 1000;\r\n _this.animate = true;\r\n _this.isClicked = false;\r\n _this.onSelectedAreaChanged = options === null || options === void 0 ? void 0 : options.onSelectedAreaChanged;\r\n _this.xAxisId = (_a = options === null || options === void 0 ? void 0 : options.xAxisId) !== null && _a !== void 0 ? _a : _this.xAxisId;\r\n _this.yAxisId = (_b = options === null || options === void 0 ? void 0 : options.yAxisId) !== null && _b !== void 0 ? _b : _this.yAxisId;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n OverviewRangeSelectionModifier.prototype.onAttach = function () {\r\n _super.prototype.onAttach.call(this);\r\n this.updateSelectionAnnotation();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OverviewRangeSelectionModifier.prototype.modifierMouseDown = function (args) {\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call OverviewRangeSelectionModifier.modifierMouseDown if not attached\");\r\n }\r\n var pointFromTrans = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect);\r\n if (pointFromTrans) {\r\n this.isClicked = true;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OverviewRangeSelectionModifier.prototype.modifierMouseUp = function (args) {\r\n var _this = this;\r\n var _a;\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call OverviewRangeSelectionModifier.modifierMouseUp if not attached\");\r\n }\r\n if (this.isClicked) {\r\n args.handled = true;\r\n (_a = this.overviewPositionAnimation) === null || _a === void 0 ? void 0 : _a.cancel();\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n this.pointTo = (0, translate_1.translateFromCanvasToSeriesViewRect)(Rect_1.Rect.clipPointToRect(args.mousePoint, seriesViewRect), seriesViewRect);\r\n this.isClicked = false;\r\n var xAxis = this.parentSurface.getXAxisById(this.xAxisId);\r\n var xCalc = xAxis.getCurrentCoordinateCalculator();\r\n var clickedXDataValue = xCalc.getDataValue(xAxis.isHorizontalAxis ? this.pointTo.x : this.pointTo.y);\r\n var delta = clickedXDataValue - (this.rangeSelectionAnnotation.x1 + this.rangeSelectionAnnotation.x2) / 2;\r\n var initialCoordinatesRange = new NumberRange_1.NumberRange(this.rangeSelectionAnnotation.x1, this.rangeSelectionAnnotation.x2);\r\n var finalCoordinatesRange = new NumberRange_1.NumberRange(this.rangeSelectionAnnotation.x1 + delta, this.rangeSelectionAnnotation.x2 + delta);\r\n var updateAnnotationCoordinates = function (currentRange) {\r\n var _a, _b, _c;\r\n (_a = _this.rangeSelectionAnnotation) === null || _a === void 0 ? void 0 : _a.setCoordinates({ x1: currentRange.min, x2: currentRange.max });\r\n _this.annotationBeforeSelectedAreaProperty.x2 = (_b = _this.rangeSelectionAnnotation) === null || _b === void 0 ? void 0 : _b.x1;\r\n _this.annotationAfterSelectedAreaProperty.x1 = (_c = _this.rangeSelectionAnnotation) === null || _c === void 0 ? void 0 : _c.x2;\r\n _this.onSelectedAreaChanged(new NumberRange_1.NumberRange(_this.rangeSelectionAnnotation.x1, _this.rangeSelectionAnnotation.x2));\r\n };\r\n if (this.animate) {\r\n this.overviewPositionAnimation = NumberRangeAnimator_1.NumberRangeAnimator.animate(initialCoordinatesRange, finalCoordinatesRange, this.animationDuration, updateAnnotationCoordinates, null);\r\n this.parentSurface.addAnimation(this.overviewPositionAnimation);\r\n }\r\n else {\r\n updateAnnotationCoordinates(finalCoordinatesRange);\r\n }\r\n }\r\n };\r\n Object.defineProperty(OverviewRangeSelectionModifier.prototype, \"rangeSelectionAnnotation\", {\r\n // PROPERTIES\r\n /**\r\n * Gets the annotation used for range selection\r\n */\r\n get: function () {\r\n return this.rangeSelectionAnnotationProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OverviewRangeSelectionModifier.prototype, \"unselectedsvgString\", {\r\n /**\r\n * Gets the svg string for the unselected part of the range\r\n */\r\n get: function () {\r\n return this.annotationBeforeSelectedAreaProperty.svgString;\r\n },\r\n /**\r\n * Sets the svg string for the unselected part of the range\r\n */\r\n set: function (svgString) {\r\n this.annotationBeforeSelectedAreaProperty.svgString = svgString;\r\n this.annotationAfterSelectedAreaProperty.svgString = svgString;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OverviewRangeSelectionModifier.prototype, \"selectedArea\", {\r\n /**\r\n * Gets or sets the selected area ranges of the modifier\r\n */\r\n get: function () {\r\n return this.selectedAreaProperty;\r\n },\r\n /**\r\n * Gets or sets the selected area ranges of the modifier\r\n */\r\n set: function (value) {\r\n var _a, _b, _c, _d, _e, _f;\r\n this.selectedAreaProperty = value;\r\n var xAxis = (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.getXAxisById(this.xAxisId);\r\n if (!xAxis) {\r\n return;\r\n }\r\n (_b = this.rangeSelectionAnnotation) === null || _b === void 0 ? void 0 : _b.setCoordinates({ x1: value.min, x2: value.max });\r\n (_c = this.annotationBeforeSelectedAreaProperty) === null || _c === void 0 ? void 0 : _c.setCoordinates({\r\n x1: xAxis.visibleRange.min,\r\n x2: (_d = this.rangeSelectionAnnotation) === null || _d === void 0 ? void 0 : _d.x1\r\n });\r\n (_e = this.annotationAfterSelectedAreaProperty) === null || _e === void 0 ? void 0 : _e.setCoordinates({\r\n x1: (_f = this.rangeSelectionAnnotation) === null || _f === void 0 ? void 0 : _f.x2,\r\n x2: xAxis.visibleRange.max\r\n });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n OverviewRangeSelectionModifier.prototype.createAnnotation = function (options) {\r\n return new OverviewCustomResizableAnnotation_1.OverviewCustomResizableAnnotation(options);\r\n };\r\n OverviewRangeSelectionModifier.prototype.updateSelectionAnnotation = function () {\r\n var _this = this;\r\n var _a;\r\n if (this.parentSurface) {\r\n var onDrag = function () {\r\n var _a;\r\n (_a = _this.overviewPositionAnimation) === null || _a === void 0 ? void 0 : _a.cancel();\r\n var selectedArea = new NumberRange_1.NumberRange(_this.rangeSelectionAnnotation.x1, _this.rangeSelectionAnnotation.x2);\r\n _this.selectedAreaProperty = selectedArea;\r\n _this.annotationBeforeSelectedAreaProperty.x2 = _this.rangeSelectionAnnotation.x1;\r\n _this.annotationAfterSelectedAreaProperty.x1 = _this.rangeSelectionAnnotation.x2;\r\n _this.onSelectedAreaChanged(selectedArea);\r\n };\r\n var xAxis = (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.getXAxisById(this.xAxisId);\r\n var commonAnnotationProperties = {\r\n xAxisId: this.xAxisId,\r\n yAxisId: this.yAxisId,\r\n opacity: 0.5,\r\n y1: 0,\r\n y2: 1,\r\n xCoordinateMode: AnnotationBase_1.ECoordinateMode.DataValue,\r\n yCoordinateMode: AnnotationBase_1.ECoordinateMode.Relative,\r\n resizeDirections: XyDirection_1.EXyDirection.XDirection\r\n };\r\n var dragBox = this.createAnnotation(__assign(__assign({}, commonAnnotationProperties), { x1: this.selectedArea.min, x2: this.selectedArea.max, isEditable: true, svgString: defaultSelectionAnnotationSvgString, onDrag: onDrag }));\r\n var annotationBeforeSelectedArea = this.createAnnotation(__assign(__assign({}, commonAnnotationProperties), { x1: xAxis.visibleRange.min, x2: this.selectedArea.min, svgString: defaultUnSelectedAnnotationSvgString }));\r\n var annotationAfterSelectedArea = this.createAnnotation(__assign(__assign({}, commonAnnotationProperties), { x1: this.selectedArea.max, x2: xAxis.visibleRange.max, svgString: defaultUnSelectedAnnotationSvgString }));\r\n if (xAxis.isHorizontalAxis) {\r\n dragBox.adornerSvgStringTemplate = horizontalAdornerSvgTemplate;\r\n annotationBeforeSelectedArea.minWidth = 0;\r\n annotationAfterSelectedArea.minWidth = 0;\r\n }\r\n else {\r\n dragBox.adornerSvgStringTemplate = verticalAdornerSvgTemplate;\r\n annotationBeforeSelectedArea.minHeight = 0;\r\n annotationAfterSelectedArea.minHeight = 0;\r\n }\r\n this.rangeSelectionAnnotationProperty = (0, Deleter_1.deleteSafe)(this.rangeSelectionAnnotation);\r\n this.annotationBeforeSelectedAreaProperty = (0, Deleter_1.deleteSafe)(this.annotationBeforeSelectedAreaProperty);\r\n this.annotationAfterSelectedAreaProperty = (0, Deleter_1.deleteSafe)(this.annotationAfterSelectedAreaProperty);\r\n this.parentSurface.modifierAnnotations.remove(this.rangeSelectionAnnotation);\r\n this.parentSurface.modifierAnnotations.remove(this.annotationBeforeSelectedAreaProperty);\r\n this.parentSurface.modifierAnnotations.remove(this.annotationAfterSelectedAreaProperty);\r\n this.parentSurface.modifierAnnotations.add(dragBox);\r\n this.parentSurface.modifierAnnotations.add(annotationBeforeSelectedArea);\r\n this.parentSurface.modifierAnnotations.add(annotationAfterSelectedArea);\r\n this.rangeSelectionAnnotationProperty = dragBox;\r\n this.annotationBeforeSelectedAreaProperty = annotationBeforeSelectedArea;\r\n this.annotationAfterSelectedAreaProperty = annotationAfterSelectedArea;\r\n }\r\n };\r\n return OverviewRangeSelectionModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.OverviewRangeSelectionModifier = OverviewRangeSelectionModifier;\r\n/** @ignore */\r\nvar horizontalAdornerSvgTemplate = function (x1, y1, x2, y2) {\r\n var colorLine = \"black\";\r\n var gridpHandleFill = \"#2e2e2e\";\r\n var gripHandleHalfWidth = 3;\r\n var gripHandleHeight = \"40%\";\r\n var gripHandleYCoord = \"30%\";\r\n var width = x2 - x1;\r\n var height = y2 - y1;\r\n return \"\\n \\n \\n \\n \\n \\n \\n \");\r\n};\r\n/** @ignore */\r\nvar verticalAdornerSvgTemplate = function (x1, y1, x2, y2) {\r\n var colorLine = \"black\";\r\n var gridpHandleFill = \"#2e2e2e\";\r\n var gripHandleWidth = \"40%\";\r\n var gripHandleHalfHeight = 3;\r\n var gripHandleXCoord = \"30%\";\r\n var width = x2 - x1;\r\n var height = y2 - y1;\r\n return \"\\n \\n \\n \\n \\n \\n \\n \");\r\n};\r\nvar defaultSelectionAnnotationSvgString = \"\\n \\n \\n\";\r\nvar defaultUnSelectedAnnotationSvgString = \"\\n \\n \\n \";\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PinchZoomModifier = void 0;\r\nvar Point_1 = require(\"../../Core/Point\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar XyDirection_1 = require(\"../../types/XyDirection\");\r\nvar ZoomState_1 = require(\"../../types/ZoomState\");\r\nvar includedAxis_1 = require(\"../../utils/includedAxis\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\n/**\r\n * The PinchZoomModifier provides ability to zoom by pinch gesture on a 2D {@link SciChartSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the PinchZoomModifier to a {@link SciChartSurface} and add pinch zoom behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new PinchZoomModifier());\r\n * ```\r\n *\r\n * It is also necessary to set “touch-action: none” on the chart div element.\r\n */\r\nvar PinchZoomModifier = /** @class */ (function (_super) {\r\n __extends(PinchZoomModifier, _super);\r\n /**\r\n * Creates an instance of a PinchZoomModifier\r\n * @param options Optional parameters used to configure the modifier\r\n */\r\n function PinchZoomModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\r\n _this = _super.call(this, options) || this;\r\n /**\r\n * Defines the sensitivity of zooming in horizontal direction\r\n */\r\n _this.horizontalGrowFactor = 0.005;\r\n /**\r\n * Defines the sensitivity of zooming in vertical direction\r\n */\r\n _this.verticalGrowFactor = 0.005;\r\n _this.includedXAxisMap = new Map();\r\n _this.includedYAxisMap = new Map();\r\n /**\r\n * returns a point equidistant to the provided ones\r\n * @param firstPoint the X,Y location of the first active pointer\r\n * @param secondPoint the X,Y location of the second active pointer\r\n */\r\n _this.getMiddlePoint = function (firstPoint, secondPoint) {\r\n return new Point_1.Point((firstPoint.x + secondPoint.x) / 2, (firstPoint.y + secondPoint.y) / 2);\r\n };\r\n _this.type = ChartModifierType_1.EChart2DModifierType.PinchZoom;\r\n if (((_a = options === null || options === void 0 ? void 0 : options.includedXAxisIds) === null || _a === void 0 ? void 0 : _a.length) > 0 && ((_b = options === null || options === void 0 ? void 0 : options.excludedXAxisIds) === null || _b === void 0 ? void 0 : _b.length) > 0) {\r\n throw new Error(\"You either should use includedXAxisIds or excludedXAxisIds\");\r\n }\r\n if (((_c = options === null || options === void 0 ? void 0 : options.includedYAxisIds) === null || _c === void 0 ? void 0 : _c.length) > 0 && ((_d = options === null || options === void 0 ? void 0 : options.excludedYAxisIds) === null || _d === void 0 ? void 0 : _d.length) > 0) {\r\n throw new Error(\"You either should use includedYAxisIds or excludedYAxisIds\");\r\n }\r\n (_e = options === null || options === void 0 ? void 0 : options.includedXAxisIds) === null || _e === void 0 ? void 0 : _e.forEach(function (id) {\r\n _this.includedXAxisMap.set(id, true);\r\n });\r\n (_f = options === null || options === void 0 ? void 0 : options.includedYAxisIds) === null || _f === void 0 ? void 0 : _f.forEach(function (id) {\r\n _this.includedYAxisMap.set(id, true);\r\n });\r\n (_g = options === null || options === void 0 ? void 0 : options.excludedXAxisIds) === null || _g === void 0 ? void 0 : _g.forEach(function (id) {\r\n _this.includedXAxisMap.set(id, false);\r\n });\r\n (_h = options === null || options === void 0 ? void 0 : options.excludedYAxisIds) === null || _h === void 0 ? void 0 : _h.forEach(function (id) {\r\n _this.includedYAxisMap.set(id, false);\r\n });\r\n _this.horizontalGrowFactor = (_j = options === null || options === void 0 ? void 0 : options.horizontalGrowFactor) !== null && _j !== void 0 ? _j : _this.horizontalGrowFactor;\r\n _this.verticalGrowFactor = (_k = options === null || options === void 0 ? void 0 : options.verticalGrowFactor) !== null && _k !== void 0 ? _k : _this.verticalGrowFactor;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n PinchZoomModifier.prototype.modifierMouseDown = function (args) {\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call PinchZoomModifier.modifierMouseDown if not attached\");\r\n }\r\n var translatedPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect);\r\n if (!translatedPoint) {\r\n return;\r\n }\r\n var isTouchEvent = args.pointerType === \"touch\" || args.pointerType === \"pen\";\r\n if (isTouchEvent) {\r\n this.activePointerEvents.set(args.pointerId, args);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PinchZoomModifier.prototype.modifierMouseMove = function (args) {\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n var isActionAllowed = this.getIsActionAllowed(args);\r\n if (isActionAllowed) {\r\n this.parentSurface.setZoomState(ZoomState_1.EZoomState.UserZooming);\r\n this.performModifierAction(args);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PinchZoomModifier.prototype.modifierMouseUp = function (args) {\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n this.removeFromActiveTouchEvents(args);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PinchZoomModifier.prototype.modifierPointerCancel = function (args) {\r\n _super.prototype.modifierPointerCancel.call(this, args);\r\n this.removeFromActiveTouchEvents(args);\r\n };\r\n PinchZoomModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n horizontalGrowFactor: this.horizontalGrowFactor,\r\n verticalGrowFactor: this.verticalGrowFactor,\r\n includedXAxisIds: Array.from(this.includedXAxisMap.entries())\r\n .filter(function (a) { return a[1]; })\r\n .map(function (a) { return a[0]; }),\r\n includedYAxisIds: Array.from(this.includedYAxisMap.entries())\r\n .filter(function (a) { return a[1]; })\r\n .map(function (a) { return a[0]; }),\r\n excludedXAxisIds: Array.from(this.includedXAxisMap.entries())\r\n .filter(function (a) { return !a[1]; })\r\n .map(function (a) { return a[0]; }),\r\n excludedYAxisIds: Array.from(this.includedYAxisMap.entries())\r\n .filter(function (a) { return !a[1]; })\r\n .map(function (a) { return a[0]; })\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n PinchZoomModifier.prototype.includeXAxis = function (axis, isIncluded) {\r\n this.includedXAxisMap.set(axis.id, isIncluded);\r\n };\r\n /** @inheritDoc */\r\n PinchZoomModifier.prototype.includeYAxis = function (axis, isIncluded) {\r\n this.includedYAxisMap.set(axis.id, isIncluded);\r\n };\r\n /** @inheritDoc */\r\n PinchZoomModifier.prototype.includeAllAxes = function () {\r\n this.includedXAxisMap.clear();\r\n };\r\n /** @inheritDoc */\r\n PinchZoomModifier.prototype.getIncludedXAxis = function () {\r\n return (0, includedAxis_1.getIncludedAxis)(this.parentSurface.xAxes.asArray(), this.includedXAxisMap);\r\n };\r\n /** @inheritDoc */\r\n PinchZoomModifier.prototype.getIncludedYAxis = function () {\r\n return (0, includedAxis_1.getIncludedAxis)(this.parentSurface.yAxes.asArray(), this.includedYAxisMap);\r\n };\r\n /**\r\n * Performs the zoom operation around the mouse point\r\n * @param mousePoint The X,Y location of the mouse at the time of the zoom\r\n * @param horizontalPinchDelta horizontal pinch delta\r\n * @param verticalPinchDelta vertical pinch delta\r\n */\r\n PinchZoomModifier.prototype.performZoom = function (mousePoint, horizontalPinchDelta, verticalPinchDelta, horizontalGrowFactor, verticalGrowFactor) {\r\n var _this = this;\r\n var horizontalFraction = horizontalGrowFactor * horizontalPinchDelta;\r\n var verticalFraction = verticalGrowFactor * verticalPinchDelta;\r\n if ([XyDirection_1.EXyDirection.XDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n this.getIncludedXAxis().forEach(function (axis) {\r\n _this.growBy(mousePoint, axis, horizontalFraction);\r\n });\r\n }\r\n if ([XyDirection_1.EXyDirection.YDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n this.getIncludedYAxis().forEach(function (axis) {\r\n _this.growBy(mousePoint, axis, verticalFraction);\r\n });\r\n }\r\n };\r\n /**\r\n * Handles pointer event becoming inactive\r\n * @param args pointer event properties\r\n */\r\n PinchZoomModifier.prototype.removeFromActiveTouchEvents = function (args) {\r\n // Remove this event from the target's cache\r\n this.activePointerEvents.delete(args.pointerId);\r\n // reset distance values\r\n if (this.activePointerEvents.size < 2) {\r\n this.previousHorizontalTouchPointsDistance = undefined;\r\n this.previousVerticalTouchPointsDistance = undefined;\r\n }\r\n };\r\n PinchZoomModifier.prototype.performModifierAction = function (args) {\r\n var _a = Array.from(this.activePointerEvents.values()), firstTouchPoint = _a[0].mousePoint, secondTouchPoint = _a[1].mousePoint;\r\n // Calculate projections of distance between the touch points\r\n var currentHorizontalTouchPointsDistance = Math.abs(firstTouchPoint.x - secondTouchPoint.x);\r\n var currentVerticalTouchPointsDistance = Math.abs(firstTouchPoint.y - secondTouchPoint.y);\r\n var zoomCenterMousePoint = this.getMiddlePoint(firstTouchPoint, secondTouchPoint);\r\n var zoomPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(zoomCenterMousePoint, this.parentSurface.seriesViewRect);\r\n if (zoomPoint &&\r\n this.previousHorizontalTouchPointsDistance !== undefined &&\r\n this.previousVerticalTouchPointsDistance !== undefined) {\r\n var horizontalDistanceDiff = this.previousHorizontalTouchPointsDistance - currentHorizontalTouchPointsDistance;\r\n var verticalDistanceDiff = this.previousVerticalTouchPointsDistance - currentVerticalTouchPointsDistance;\r\n // TODO add limits in distance between pointers\r\n // const minHorizontalDiff = 10;\r\n // if (horizontalDistanceDiff > minHorizontalDiff && verticalDistanceDiff > minHorizontalDiff) {\r\n // }\r\n this.performZoom(zoomPoint, horizontalDistanceDiff, verticalDistanceDiff, this.horizontalGrowFactor, this.verticalGrowFactor);\r\n }\r\n // Cache the distance for the next move event\r\n this.previousHorizontalTouchPointsDistance = currentHorizontalTouchPointsDistance;\r\n this.previousVerticalTouchPointsDistance = currentVerticalTouchPointsDistance;\r\n };\r\n PinchZoomModifier.prototype.getIsActionAllowed = function (args) {\r\n var isTouchEvent = args.pointerType === \"touch\" || args.pointerType === \"pen\";\r\n // check for pinch gestures if there are multiple active touches\r\n return isTouchEvent && this.activePointerEvents.size >= 2;\r\n };\r\n return PinchZoomModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.PinchZoomModifier = PinchZoomModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PointerEventsMediatorModifier = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar ChartModifierBase2D_1 = require(\"../../Charting/ChartModifiers/ChartModifierBase2D\");\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar HoverMode_1 = require(\"../../types/HoverMode\");\r\nvar MousePosition_1 = require(\"../../types/MousePosition\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar PointerEventsMediatorModifier = /** @class */ (function (_super) {\r\n __extends(PointerEventsMediatorModifier, _super);\r\n function PointerEventsMediatorModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, options) || this;\r\n _this.notifyOutEvent = true;\r\n _this.notifyPositionUpdate = false;\r\n _this.hoverChanged = new EventHandler_1.EventHandler();\r\n _this.previousHoveredEntities = [];\r\n _this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n _this.enableHoverProperty = false;\r\n _this.hoverModeProperty = HoverMode_1.EHoverMode.AbsoluteTopmost;\r\n _this.enableHoverProperty = (_a = options === null || options === void 0 ? void 0 : options.enableHover) !== null && _a !== void 0 ? _a : _this.enableHoverProperty;\r\n _this.hoverModeProperty = (_b = options === null || options === void 0 ? void 0 : options.hoverMode) !== null && _b !== void 0 ? _b : _this.hoverModeProperty;\r\n _this.notifyOutEvent = (_c = options === null || options === void 0 ? void 0 : options.notifyOutEvent) !== null && _c !== void 0 ? _c : _this.notifyOutEvent;\r\n _this.notifyPositionUpdate = (_d = options === null || options === void 0 ? void 0 : options.notifyPositionUpdate) !== null && _d !== void 0 ? _d : _this.notifyPositionUpdate;\r\n if (options === null || options === void 0 ? void 0 : options.onHover) {\r\n if (typeof options.onHover === \"string\") {\r\n _this.typeMap.set(\"onHover\", options.onHover);\r\n options.onHover = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onHover);\r\n }\r\n _this.hoverChanged.subscribe(options === null || options === void 0 ? void 0 : options.onHover);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.targets) {\r\n if (Array.isArray(options.targets) && typeof options.targets[0] !== \"string\") {\r\n // Treat as array of refs\r\n _this.targets = options.targets;\r\n }\r\n else if (Array.isArray(options.targets) && typeof options.targets[0] === \"string\") {\r\n // Treat as array of ids\r\n var targetIds = options.targets;\r\n _this.includeList = new Map(targetIds.map(function (id) { return [id, true]; }));\r\n _this.targetsSelector = function () { return _this.getAllTargets().filter(function (entity) { return _this.includeList.get(entity.id); }); };\r\n }\r\n else if (typeof options.targets === \"string\") {\r\n _this.typeMap.set(\"targetsSelector\", options.targets);\r\n options.targets = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.targets);\r\n _this.targetsSelector = options.targets;\r\n }\r\n else {\r\n _this.targetsSelector = options.targets;\r\n }\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(PointerEventsMediatorModifier.prototype, \"hoverMode\", {\r\n /**\r\n * The mode defining the rules for detecting a hover event\r\n */\r\n get: function () {\r\n return this.hoverModeProperty;\r\n },\r\n /**\r\n * The mode defining the rules for detecting a hover event\r\n */\r\n set: function (value) {\r\n this.hoverModeProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PointerEventsMediatorModifier.prototype.toJSON = function () {\r\n var _a;\r\n var inheritedOptions = _super.prototype.toJSON.call(this).options;\r\n var ownOptions = {\r\n hoverMode: this.hoverMode,\r\n enableHover: this.enableHoverProperty,\r\n notifyOutEvent: this.notifyOutEvent,\r\n notifyPositionUpdate: this.notifyPositionUpdate,\r\n onHover: this.typeMap.get(\"onHover\"),\r\n targets: this.includeList\r\n ? Array.from(this.includeList)\r\n .filter(function (_a) {\r\n var _ = _a[0], value = _a[1];\r\n return value;\r\n })\r\n .map(function (_a) {\r\n var key = _a[0];\r\n return key;\r\n })\r\n : this.typeMap.get(\"targetsSelector\") || ((_a = this.targets) === null || _a === void 0 ? void 0 : _a.map(function (_a) {\r\n var id = _a.id;\r\n return id;\r\n }))\r\n };\r\n return {\r\n type: this.type,\r\n options: __assign(__assign({}, inheritedOptions), ownOptions)\r\n };\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PointerEventsMediatorModifier.prototype.modifierMouseMove = function (args) {\r\n // If this is on a subchart, only respond to events from the active subchart\r\n if (this.parentSurface.isSubSurface && !args.isActiveSubChartEvent)\r\n return;\r\n this.activePointerEvents.set(args.pointerId, args);\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n var translatedMousePoint;\r\n if (!this.mousePoint) {\r\n this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n return;\r\n }\r\n else {\r\n translatedMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(this.mousePoint, this.parentSurface.seriesViewRect);\r\n if (!translatedMousePoint) {\r\n this.mousePosition = MousePosition_1.EMousePosition.AxisArea;\r\n }\r\n else {\r\n this.mousePosition = MousePosition_1.EMousePosition.SeriesArea;\r\n }\r\n }\r\n var isActionAllowed = this.getIsActionAllowed(args);\r\n if (isActionAllowed) {\r\n if (this.enableHoverProperty) {\r\n this.performHoverAction(args);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PointerEventsMediatorModifier.prototype.modifierMouseLeave = function (args) {\r\n _super.prototype.modifierMouseLeave.call(this, args);\r\n this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n if (this.enableHoverProperty) {\r\n // TODO extract into a method\r\n var includedTargets = this.getIncludedTargets();\r\n var size = includedTargets.length;\r\n var currentTarget = null;\r\n var isHovered = false;\r\n for (var i = size - 1; i > -1; --i) {\r\n currentTarget = includedTargets[i];\r\n this.performHoverOnEntity(currentTarget, args, isHovered);\r\n }\r\n var shouldNotifyUnhover = this.previousHoveredEntities.length > 0;\r\n if (shouldNotifyUnhover) {\r\n this.hoverChanged.raiseEvent({\r\n sender: this,\r\n mouseArgs: args,\r\n hoveredEntities: [],\r\n includedEntities: includedTargets,\r\n unhoveredEntities: this.previousHoveredEntities,\r\n previousHoveredEntities: this.previousHoveredEntities\r\n });\r\n }\r\n this.previousHoveredEntities = [];\r\n }\r\n };\r\n /** @inheritDoc */\r\n PointerEventsMediatorModifier.prototype.modifierPointerCancel = function (args) {\r\n this.modifierMouseLeave(args);\r\n };\r\n PointerEventsMediatorModifier.prototype.getIncludedTargets = function () {\r\n var _a, _b, _c;\r\n return (_c = (_a = this.targets) !== null && _a !== void 0 ? _a : (_b = this.targetsSelector) === null || _b === void 0 ? void 0 : _b.call(this, this)) !== null && _c !== void 0 ? _c : this.getAllTargets();\r\n };\r\n PointerEventsMediatorModifier.prototype.performHoverAction = function (args) {\r\n var _this = this;\r\n var includedEntities = this.getIncludedTargets();\r\n var currentlyHoveredEntities = [];\r\n var unhoveredEntities = [];\r\n if (this.hoverMode === HoverMode_1.EHoverMode.TopmostIncluded) {\r\n var size = includedEntities.length;\r\n for (var i = size - 1; i > -1; --i) {\r\n var currentTarget = includedEntities[i];\r\n var isHovered = currentTarget.checkIsWithinBounds(args);\r\n if (isHovered) {\r\n currentlyHoveredEntities.push(currentTarget);\r\n this.performHoverOnEntity(currentTarget, args, isHovered);\r\n break;\r\n }\r\n }\r\n // reset hover state\r\n this.previousHoveredEntities.forEach(function (target) {\r\n if (target !== currentlyHoveredEntities[0]) {\r\n unhoveredEntities.push(target);\r\n _this.performHoverOnEntity(target, args, false);\r\n }\r\n });\r\n }\r\n else if (this.hoverMode === HoverMode_1.EHoverMode.AbsoluteTopmost) {\r\n var allTargets = this.getAllTargets();\r\n var size = allTargets.length;\r\n var _loop_1 = function (i) {\r\n var currentTarget = allTargets[i];\r\n var isHovered = currentTarget.checkIsWithinBounds(args);\r\n if (isHovered) {\r\n var isIncluded = includedEntities.find(function (entity) { return entity === currentTarget; });\r\n if (isIncluded) {\r\n currentlyHoveredEntities.push(currentTarget);\r\n this_1.performHoverOnEntity(currentTarget, args, isHovered);\r\n }\r\n return \"break\";\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = size - 1; i > -1; --i) {\r\n var state_1 = _loop_1(i);\r\n if (state_1 === \"break\")\r\n break;\r\n }\r\n // reset hover state\r\n this.previousHoveredEntities.forEach(function (target) {\r\n if (target !== currentlyHoveredEntities[0]) {\r\n unhoveredEntities.push(target);\r\n _this.performHoverOnEntity(target, args, false);\r\n }\r\n });\r\n }\r\n else if (this.hoverMode === HoverMode_1.EHoverMode.Multi) {\r\n var size = includedEntities.length;\r\n for (var i = size - 1; i > -1; --i) {\r\n var currentTarget = includedEntities[i];\r\n var isHovered = currentTarget.checkIsWithinBounds(args);\r\n var wasHovered = currentTarget.isHovered;\r\n if (isHovered) {\r\n currentlyHoveredEntities.push(currentTarget);\r\n this.performHoverOnEntity(currentTarget, args, isHovered);\r\n }\r\n else if (wasHovered) {\r\n unhoveredEntities.push(currentTarget);\r\n // reset hover state if was hovered\r\n this.performHoverOnEntity(currentTarget, args, isHovered);\r\n }\r\n }\r\n }\r\n var shouldNotifyHover = currentlyHoveredEntities.length > this.previousHoveredEntities.length ||\r\n (unhoveredEntities.length && currentlyHoveredEntities.length === this.previousHoveredEntities.length);\r\n var shouldNotifyUnhover = this.notifyOutEvent && unhoveredEntities.length;\r\n // mouse moved\r\n var shouldNotifyPositionUpdate = this.notifyPositionUpdate && currentlyHoveredEntities.length;\r\n // execute callback only if any of entities were/are hovered\r\n if (shouldNotifyHover || shouldNotifyPositionUpdate || shouldNotifyUnhover) {\r\n this.hoverChanged.raiseEvent({\r\n sender: this,\r\n mouseArgs: args,\r\n hoveredEntities: currentlyHoveredEntities,\r\n previousHoveredEntities: this.previousHoveredEntities,\r\n includedEntities: includedEntities,\r\n unhoveredEntities: unhoveredEntities\r\n });\r\n }\r\n this.previousHoveredEntities = currentlyHoveredEntities;\r\n };\r\n PointerEventsMediatorModifier.prototype.performHoverOnEntity = function (target, args, isHovered) {\r\n target.hover({\r\n args: args,\r\n isHovered: isHovered,\r\n notifyOutEvent: this.notifyOutEvent,\r\n notifyPositionUpdate: this.notifyPositionUpdate\r\n });\r\n };\r\n return PointerEventsMediatorModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.PointerEventsMediatorModifier = PointerEventsMediatorModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.updateRolloverModifierProps = exports.calcTooltipPositions = exports.calcTooltipProps = exports.RolloverModifier = exports.TOOLTIP_SPACING = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar MousePosition_1 = require(\"../../types/MousePosition\");\r\nvar SeriesType_1 = require(\"../../types/SeriesType\");\r\nvar tooltip_1 = require(\"../../utils/tooltip\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar IThemeProvider_1 = require(\"../Themes/IThemeProvider\");\r\nvar AnnotationBase_1 = require(\"../Visuals/Annotations/AnnotationBase\");\r\nvar LineAnnotation_1 = require(\"../Visuals/Annotations/LineAnnotation\");\r\nvar RolloverLegendSvgAnnotation_1 = require(\"../Visuals/Annotations/RolloverLegendSvgAnnotation\");\r\nvar RolloverMarkerSvgAnnotation_1 = require(\"../Visuals/Annotations/RolloverMarkerSvgAnnotation\");\r\nvar RolloverTooltipSvgAnnotation_1 = require(\"../Visuals/Annotations/RolloverTooltipSvgAnnotation\");\r\nvar SciChartSurfaceBase_1 = require(\"../Visuals/SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../Visuals/TextureManager/DpiHelper\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\nvar constants_1 = require(\"./constants\");\r\n/** @ignore */\r\nexports.TOOLTIP_SPACING = 4;\r\n/**\r\n * The RolloverModifier provides tooltip and cursor behavior on a 2D {@link SciChartSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the RolloverModifier to a {@link SciChartSurface} and add tooltip behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new RolloverModifier());\r\n * ```\r\n */\r\nvar RolloverModifier = /** @class */ (function (_super) {\r\n __extends(RolloverModifier, _super);\r\n /**\r\n * Creates an instance of the RolloverModifier\r\n * @param options Optional parameters {@link IRolloverModifierOptions} used to configure the modifier\r\n */\r\n function RolloverModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.Rollover;\r\n /**\r\n * Gets or sets the legend X offset\r\n */\r\n _this.tooltipLegendOffsetX = 0;\r\n /**\r\n * Gets or sets the legend Y offset\r\n */\r\n _this.tooltipLegendOffsetY = 0;\r\n /**\r\n * Gets or sets the snapToDataPoint flag. If True the {@link RolloverModifier} line snaps to\r\n * the nearest data-point of the first visible renderable series\r\n */\r\n _this.snapToDataPoint = false;\r\n /**\r\n * If this is set greater than the default of zero, the toolip will only show values for points in this radius, rather than all points on the vertical line\r\n */\r\n _this.hitTestRadius = 0;\r\n _this.showRolloverLineProperty = true;\r\n _this.showTooltipProperty = true;\r\n _this.absoluteXCoord = 0;\r\n _this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n _this.allowTooltipOverlappingProperty = false;\r\n _this.includedSeriesMap = new Map();\r\n _this.hitTestRenderableSeries = _this.hitTestRenderableSeries.bind(_this);\r\n _this.placementDivIdProperty = (_a = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _a !== void 0 ? _a : _this.placementDivIdProperty;\r\n _this.rolloverLineAnnotation = _this.createLine(options);\r\n if (options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) {\r\n if (typeof options.tooltipLegendTemplate === \"string\") {\r\n _this.typeMap.set(\"tooltipLegendTemplate\", options.tooltipLegendTemplate);\r\n options.tooltipLegendTemplate = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.tooltipLegendTemplate);\r\n }\r\n }\r\n _this.tooltipLegendTemplate =\r\n (_b = options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) !== null && _b !== void 0 ? _b : _this.tooltipLegendTemplate;\r\n _this.tooltipLegendOffsetX = (_c = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetX) !== null && _c !== void 0 ? _c : _this.tooltipLegendOffsetX;\r\n _this.tooltipLegendOffsetY = (_d = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetY) !== null && _d !== void 0 ? _d : _this.tooltipLegendOffsetY;\r\n if (options === null || options === void 0 ? void 0 : options.tooltipDataTemplate) {\r\n if (typeof options.tooltipDataTemplate === \"string\") {\r\n _this.typeMap.set(\"tooltipDataTemplate\", options.tooltipDataTemplate);\r\n options.tooltipDataTemplate = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.tooltipDataTemplate);\r\n }\r\n }\r\n _this.tooltipDataTemplateProperty =\r\n (_e = options === null || options === void 0 ? void 0 : options.tooltipDataTemplate) !== null && _e !== void 0 ? _e : _this.tooltipDataTemplateProperty;\r\n _this.showRolloverLineProperty = (_f = options === null || options === void 0 ? void 0 : options.showRolloverLine) !== null && _f !== void 0 ? _f : _this.showRolloverLineProperty;\r\n _this.showTooltipProperty = (_g = options === null || options === void 0 ? void 0 : options.showTooltip) !== null && _g !== void 0 ? _g : _this.showTooltipProperty;\r\n _this.legendAnnotation = new RolloverLegendSvgAnnotation_1.RolloverLegendSvgAnnotation({\r\n tooltipLegendTemplate: _this.tooltipLegendTemplate,\r\n tooltipLegendOffsetX: _this.tooltipLegendOffsetX,\r\n tooltipLegendOffsetY: _this.tooltipLegendOffsetY,\r\n xAxisId: _this.xAxisId,\r\n yAxisId: _this.yAxisId\r\n });\r\n _this.allowTooltipOverlappingProperty = (_h = options === null || options === void 0 ? void 0 : options.allowTooltipOverlapping) !== null && _h !== void 0 ? _h : _this.allowTooltipOverlappingProperty;\r\n _this.snapToDataPoint = (_j = options === null || options === void 0 ? void 0 : options.snapToDataPoint) !== null && _j !== void 0 ? _j : _this.snapToDataPoint;\r\n _this.hitTestRadius = (_k = options === null || options === void 0 ? void 0 : options.hitTestRadius) !== null && _k !== void 0 ? _k : _this.hitTestRadius;\r\n return _this;\r\n }\r\n RolloverModifier.prototype.createLine = function (options) {\r\n var _a, _b, _c;\r\n return new LineAnnotation_1.LineAnnotation({\r\n xCoordinateMode: AnnotationBase_1.ECoordinateMode.Pixel,\r\n yCoordinateMode: AnnotationBase_1.ECoordinateMode.Pixel,\r\n strokeDashArray: options === null || options === void 0 ? void 0 : options.rolloverLineStrokeDashArray,\r\n strokeThickness: (_a = options === null || options === void 0 ? void 0 : options.rolloverLineStrokeThickness) !== null && _a !== void 0 ? _a : 2,\r\n stroke: (_b = options === null || options === void 0 ? void 0 : options.rolloverLineStroke) !== null && _b !== void 0 ? _b : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.cursorLineBrush,\r\n xAxisId: this.xAxisId,\r\n yAxisId: this.yAxisId,\r\n showLabel: (_c = options === null || options === void 0 ? void 0 : options.showAxisLabel) !== null && _c !== void 0 ? _c : false\r\n });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.applyTheme = function (themeProvider) {\r\n if (this.parentSurface) {\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.rolloverLineAnnotation.stroke === previousThemeProvider.cursorLineBrush) {\r\n this.rolloverLineAnnotation.stroke = themeProvider.cursorLineBrush;\r\n }\r\n }\r\n };\r\n Object.defineProperty(RolloverModifier.prototype, \"rolloverLineStroke\", {\r\n /** Gets or Sets the color of the vertical rollover line as an html color code */\r\n get: function () {\r\n return this.rolloverLineAnnotation.stroke;\r\n },\r\n /** Gets or Sets the color of the vertical rollover line as an html color code */\r\n set: function (rolloverLineStroke) {\r\n this.rolloverLineAnnotation.stroke = rolloverLineStroke;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifier.prototype, \"rolloverLineStrokeThickness\", {\r\n /** Gets or Sets the thickness of the vertical rollover line */\r\n get: function () {\r\n return this.rolloverLineAnnotation.strokeThickness;\r\n },\r\n /** Gets or Sets the thickness of the vertical rollover line */\r\n set: function (rolloverLineStrokeThickness) {\r\n this.rolloverLineAnnotation.strokeThickness = rolloverLineStrokeThickness;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifier.prototype, \"rolloverLineStrokeDashArray\", {\r\n /** Gets or Sets the dash array of the vertical rollover line */\r\n get: function () {\r\n return this.rolloverLineAnnotation.strokeDashArray;\r\n },\r\n /** Gets or Sets the dash array of the vertical rollover line */\r\n set: function (rolloverLineStrokeDashArray) {\r\n this.rolloverLineAnnotation.strokeDashArray = rolloverLineStrokeDashArray;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_DASH_ARRAY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifier.prototype, \"showRolloverLine\", {\r\n /** Gets or Sets whether to show the vertical rollover line. Default true */\r\n get: function () {\r\n return this.showRolloverLineProperty;\r\n },\r\n /** Gets or Sets whether to show the vertical rollover line. Default true */\r\n set: function (showRolloverLine) {\r\n this.showRolloverLineProperty = showRolloverLine;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SHOW_ROLLOVER_LINE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifier.prototype, \"tooltipDataTemplate\", {\r\n /** Gets or Sets the tooltipDataTemplate, which allows you to customize content for the tooltip */\r\n get: function () {\r\n return this.tooltipDataTemplateProperty;\r\n },\r\n /** Gets or Sets the tooltipDataTemplate, which allows you to customize content for the tooltip */\r\n set: function (value) {\r\n this.tooltipDataTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_DATA_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifier.prototype, \"showTooltip\", {\r\n /** Gets or Sets whether to show the tooltip. Default true */\r\n get: function () {\r\n return this.showTooltipProperty;\r\n },\r\n /** Gets or Sets whether to show the tooltip. Default true */\r\n set: function (value) {\r\n this.showTooltipProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SHOW_TOOLTIP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifier.prototype, \"allowTooltipOverlapping\", {\r\n /** Gets or Sets if tooltips for multiple series are allowed to overlap. Default false */\r\n get: function () {\r\n return this.allowTooltipOverlappingProperty;\r\n },\r\n /** Gets or Sets if tooltips for multiple series are allowed to overlap. Default false */\r\n set: function (value) {\r\n this.allowTooltipOverlappingProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ALLOW_TOOLTIP_OVERLAPPING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.onAttach = function () {\r\n var _this = this;\r\n _super.prototype.onAttach.call(this);\r\n this.addLineAnnotationToSurface();\r\n this.parentSurface.modifierAnnotations.add(this.legendAnnotation);\r\n this.getIncludedRenderableSeries().forEach(function (rs) { return _this.addSeriesAnnotationsToParentSurface(rs); });\r\n };\r\n RolloverModifier.prototype.addLineAnnotationToSurface = function () {\r\n this.parentSurface.modifierAnnotations.add(this.rolloverLineAnnotation);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.onDetach = function () {\r\n var _this = this;\r\n _super.prototype.onDetach.call(this);\r\n this.parentSurface.modifierAnnotations.remove(this.rolloverLineAnnotation, true);\r\n this.parentSurface.modifierAnnotations.remove(this.legendAnnotation);\r\n this.getIncludedRenderableSeries().forEach(function (rs) { return _this.removeSeriesAnnotationsFromParentSurface(rs); });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.onAttachSeries = function (rs) {\r\n _super.prototype.onAttachSeries.call(this, rs);\r\n var index = this.parentSurface.renderableSeries.size() - 1;\r\n this.addSeriesAnnotationsToParentSurface(rs);\r\n this.legendAnnotation.seriesInfos = this.getSeriesInfos();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.onDetachSeries = function (rs) {\r\n _super.prototype.onDetachSeries.call(this, rs);\r\n this.removeSeriesAnnotationsFromParentSurface(rs);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.modifierMouseMove = function (args) {\r\n // If this is on a subchart, only respond to events from the active subchart\r\n if (this.parentSurface.isSubSurface && !args.isActiveSubChartEvent)\r\n return;\r\n this.activePointerEvents.set(args.pointerId, args);\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n var translatedMousePoint;\r\n if (!this.mousePoint) {\r\n this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n }\r\n else {\r\n translatedMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(this.mousePoint, this.parentSurface.seriesViewRect);\r\n if (!translatedMousePoint) {\r\n this.mousePosition = MousePosition_1.EMousePosition.AxisArea;\r\n }\r\n else {\r\n this.mousePosition = MousePosition_1.EMousePosition.SeriesArea;\r\n }\r\n }\r\n var isActionAllowed = this.getIsActionAllowed(args);\r\n if (isActionAllowed) {\r\n this.update();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.modifierMouseLeave = function (args) {\r\n _super.prototype.modifierMouseLeave.call(this, args);\r\n this.mousePosition = MousePosition_1.EMousePosition.OutOfCanvas;\r\n this.update();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.onParentSurfaceRendered = function () {\r\n this.update();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.includeSeries = function (series, isIncluded) {\r\n var _a;\r\n var valueChanged = (this.includedSeriesMap.get(series) === undefined && !isIncluded) ||\r\n (this.includedSeriesMap.get(series) === true && !isIncluded) ||\r\n (this.includedSeriesMap.get(series) === false && isIncluded);\r\n if (valueChanged) {\r\n this.includedSeriesMap.set(series, isIncluded);\r\n if (this.isAttached) {\r\n if (isIncluded === true) {\r\n this.addSeriesAnnotationsToParentSurface(series);\r\n }\r\n if (isIncluded === false) {\r\n this.removeSeriesAnnotationsFromParentSurface(series);\r\n }\r\n if (this.parentSurface) {\r\n this.legendAnnotation.seriesInfos = this.getSeriesInfos();\r\n }\r\n (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverModifier.prototype.getIncludedRenderableSeries = function () {\r\n var _this = this;\r\n var regularSeries = this.parentSurface.renderableSeries\r\n .asArray()\r\n .filter(function (rs) {\r\n return !rs.isStacked &&\r\n rs.isVisible &&\r\n rs.rolloverModifierProps.showRollover &&\r\n _this.testIsIncludedSeries(rs);\r\n });\r\n var stackedSeries = this.parentSurface.renderableSeries.asArray().filter(function (rs) { return rs.isStacked; });\r\n var result = regularSeries;\r\n stackedSeries.forEach(function (rs) {\r\n rs.getVisibleSeries().forEach(function (childRs) {\r\n if (childRs.rolloverModifierProps.showRollover && _this.testIsIncludedSeries(childRs)) {\r\n result.push(childRs);\r\n }\r\n });\r\n });\r\n return result;\r\n };\r\n /**\r\n * Override hitTestRenderableSeries and add a custom logic\r\n * @param rs\r\n * @param mousePoint\r\n */\r\n RolloverModifier.prototype.hitTestRenderableSeries = function (rs, mousePoint) {\r\n if (!mousePoint) {\r\n return undefined;\r\n }\r\n if (this.hitTestRadius <= 0) {\r\n return rs.hitTestProvider.hitTestXSlice(mousePoint.x, mousePoint.y);\r\n }\r\n else {\r\n return rs.hitTestProvider.hitTestDataPoint(mousePoint.x, mousePoint.y, this.hitTestRadius);\r\n }\r\n };\r\n /**\r\n * Returns current mouse position\r\n */\r\n RolloverModifier.prototype.getMousePosition = function () {\r\n return this.mousePosition;\r\n };\r\n /** @inheritDoc */\r\n RolloverModifier.prototype.toJSON = function () {\r\n var _a, _b;\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n snapToDataPoint: this.snapToDataPoint,\r\n placementDivId: this.placementDivId,\r\n hitTestRadius: this.hitTestRadius,\r\n allowTooltipOverlapping: this.allowTooltipOverlapping,\r\n rolloverLineStrokeDashArray: this.rolloverLineStrokeDashArray,\r\n rolloverLineStroke: this.rolloverLineStroke,\r\n rolloverLineStrokeThickness: this.rolloverLineStrokeThickness,\r\n showRolloverLine: this.showRolloverLine,\r\n showTooltip: this.showTooltip,\r\n showAxisLabel: (_b = (_a = this.rolloverLineAnnotation) === null || _a === void 0 ? void 0 : _a.showLabel) !== null && _b !== void 0 ? _b : false,\r\n tooltipDataTemplate: this.typeMap.get(\"tooltipDataTemplate\"),\r\n tooltipLegendOffsetX: this.tooltipLegendOffsetX,\r\n tooltipLegendOffsetY: this.tooltipLegendOffsetY,\r\n tooltipLegendTemplate: this.typeMap.get(\"tooltipLegendTemplate\")\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /**\r\n * Called internally to adjust the positions of tooltips if there are overlaps, or if it is a vertical chart\r\n * @param tooltipArray\r\n * @param allowTooltipOverlapping\r\n * @param spacing\r\n * @param seriesViewRect\r\n * @param pixelRatio\r\n * @param isVerticalChart\r\n * @returns TTooltipProps[]\r\n */\r\n RolloverModifier.prototype.CalculateTooltipPositions = function (tooltipArray, allowTooltipOverlapping, spacing, seriesViewRect, pixelRatio, isVerticalChart) {\r\n if (isVerticalChart === void 0) { isVerticalChart = false; }\r\n return (0, exports.calcTooltipPositions)(tooltipArray, allowTooltipOverlapping, spacing, seriesViewRect, pixelRatio, isVerticalChart);\r\n };\r\n /** @inheritDoc */\r\n RolloverModifier.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n if (propertyName === constants_1.PROPERTY.X_AXIS_ID) {\r\n this.rolloverLineAnnotation.xAxisId = this.xAxisId;\r\n this.legendAnnotation.xAxisId = this.xAxisId;\r\n }\r\n if (propertyName === constants_1.PROPERTY.Y_AXIS_ID) {\r\n this.rolloverLineAnnotation.yAxisId = this.yAxisId;\r\n this.legendAnnotation.yAxisId = this.yAxisId;\r\n }\r\n };\r\n RolloverModifier.prototype.isVerticalChart = function () {\r\n var _a, _b;\r\n var xAxis = ((_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.getXAxisById(this.xAxisId)) || ((_b = this.parentSurface) === null || _b === void 0 ? void 0 : _b.xAxes.get(0));\r\n if (xAxis) {\r\n return xAxis.isVerticalChart;\r\n }\r\n return false;\r\n };\r\n RolloverModifier.prototype.removeSeriesAnnotationsFromParentSurface = function (rs) {\r\n var _this = this;\r\n if (!this.parentSurface)\r\n return;\r\n if (rs.isStacked) {\r\n var stackedSeries = rs;\r\n stackedSeries.asArray().forEach(function (childRs) {\r\n _this.parentSurface.modifierAnnotations.remove(_this.getRolloverProps(childRs).marker);\r\n _this.parentSurface.modifierAnnotations.remove(_this.getRolloverProps(childRs).tooltip);\r\n _this.getRolloverProps(childRs).delete();\r\n });\r\n }\r\n else {\r\n this.parentSurface.modifierAnnotations.remove(this.getRolloverProps(rs).marker);\r\n this.parentSurface.modifierAnnotations.remove(this.getRolloverProps(rs).tooltip);\r\n this.getRolloverProps(rs).delete();\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n this.parentSurface.modifierAnnotations.remove(this.getRolloverProps1(rs).marker);\r\n this.parentSurface.modifierAnnotations.remove(this.getRolloverProps1(rs).tooltip);\r\n this.getRolloverProps1(rs).delete();\r\n }\r\n }\r\n };\r\n /**\r\n * @param rs\r\n */\r\n RolloverModifier.prototype.addSeriesAnnotationsToParentSurface = function (rs) {\r\n if (!this.parentSurface ||\r\n rs.type === SeriesType_1.ESeriesType.StackedMountainCollection ||\r\n rs.type === SeriesType_1.ESeriesType.StackedColumnCollection) {\r\n return;\r\n }\r\n this.getRolloverProps(rs).rolloverModifier = this;\r\n createAnnotations(rs, this.getRolloverProps(rs), this.getRolloverProps1(rs), this.placementDivIdProperty);\r\n var marker = this.getRolloverProps(rs).marker;\r\n if (!this.parentSurface.modifierAnnotations.contains(marker)) {\r\n this.parentSurface.modifierAnnotations.add(this.getRolloverProps(rs).marker);\r\n this.parentSurface.modifierAnnotations.add(this.getRolloverProps(rs).tooltip);\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n this.getRolloverProps1(rs).rolloverModifier = this;\r\n this.parentSurface.modifierAnnotations.add(this.getRolloverProps1(rs).marker);\r\n this.parentSurface.modifierAnnotations.add(this.getRolloverProps1(rs).tooltip);\r\n }\r\n }\r\n };\r\n RolloverModifier.prototype.getRolloverProps = function (rs) {\r\n return rs.rolloverModifierProps;\r\n };\r\n RolloverModifier.prototype.getRolloverProps1 = function (rs) {\r\n return rs.rolloverModifierProps1;\r\n };\r\n RolloverModifier.prototype.update = function () {\r\n this.updateLine();\r\n this.updateSeriesAnnotations();\r\n if (this.tooltipLegendTemplate) {\r\n this.legendAnnotation.seriesInfos = this.getSeriesInfos();\r\n }\r\n };\r\n RolloverModifier.prototype.updateLine = function () {\r\n if (this.mousePosition !== MousePosition_1.EMousePosition.SeriesArea) {\r\n this.rolloverLineAnnotation.isHidden = true;\r\n return;\r\n }\r\n if (!this.showRolloverLineProperty) {\r\n this.rolloverLineAnnotation.isHidden = true;\r\n return;\r\n }\r\n if (this.snapToDataPoint) {\r\n var firstSeries = this.getIncludedRenderableSeries()[0];\r\n if (firstSeries) {\r\n var hitTestInfo = this.hitTestRenderableSeries(firstSeries, this.mousePoint);\r\n if (hitTestInfo && hitTestInfo.isWithinDataBounds) {\r\n this.rolloverLineAnnotation.isHidden = false;\r\n var x = (0, translate_1.translateToNotScaled)(hitTestInfo.xCoord);\r\n this.rolloverLineAnnotation.x1 = x;\r\n this.rolloverLineAnnotation.x2 = x;\r\n this.rolloverLineAnnotation.y1 = 0;\r\n this.rolloverLineAnnotation.y2 = this.isVerticalChart()\r\n ? (0, translate_1.translateToNotScaled)(this.parentSurface.seriesViewRect.right)\r\n : (0, translate_1.translateToNotScaled)(this.parentSurface.seriesViewRect.bottom);\r\n }\r\n else {\r\n this.rolloverLineAnnotation.isHidden = true;\r\n }\r\n }\r\n else {\r\n this.rolloverLineAnnotation.isHidden = true;\r\n }\r\n }\r\n else {\r\n this.rolloverLineAnnotation.isHidden = false;\r\n var translatedMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(this.mousePoint, this.parentSurface.seriesViewRect);\r\n if (translatedMousePoint) {\r\n var x = (0, translate_1.translateToNotScaled)(translatedMousePoint.x);\r\n var y = (0, translate_1.translateToNotScaled)(translatedMousePoint.y);\r\n if (this.isVerticalChart()) {\r\n this.rolloverLineAnnotation.x1 = y;\r\n this.rolloverLineAnnotation.x2 = y;\r\n this.rolloverLineAnnotation.y1 = 0;\r\n this.rolloverLineAnnotation.y2 = (0, translate_1.translateToNotScaled)(this.parentSurface.seriesViewRect.right);\r\n }\r\n else {\r\n this.rolloverLineAnnotation.x1 = x;\r\n this.rolloverLineAnnotation.x2 = x;\r\n this.rolloverLineAnnotation.y1 = 0;\r\n this.rolloverLineAnnotation.y2 = (0, translate_1.translateToNotScaled)(this.parentSurface.seriesViewRect.bottom);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * @description Update Markers and Tooltips\r\n */\r\n RolloverModifier.prototype.updateSeriesAnnotations = function () {\r\n var _this = this;\r\n var rsList = this.getIncludedRenderableSeries();\r\n rsList.forEach(function (rs) {\r\n var props = _this.getRolloverProps(rs);\r\n if (!props.marker) {\r\n _this.addSeriesAnnotationsToParentSurface(rs);\r\n }\r\n props.marker.suspendInvalidate();\r\n props.tooltip.suspendInvalidate();\r\n props.marker.isHidden = true;\r\n props.tooltip.isHidden = true;\r\n props.tooltip.x1 = undefined;\r\n props.tooltip.y1 = undefined;\r\n // TODO should be more general than looking at series type\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n props.marker.suspendInvalidate();\r\n props.tooltip.suspendInvalidate();\r\n props.marker.isHidden = true;\r\n props.tooltip.isHidden = true;\r\n props.tooltip.x1 = undefined;\r\n props.tooltip.y1 = undefined;\r\n }\r\n });\r\n if (this.mousePosition !== MousePosition_1.EMousePosition.SeriesArea) {\r\n rsList.forEach(function (rs) {\r\n var props = _this.getRolloverProps(rs);\r\n props.marker.resumeInvalidate();\r\n props.tooltip.resumeInvalidate();\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n // leave for now\r\n _this.getRolloverProps1(rs).marker.resumeInvalidate();\r\n _this.getRolloverProps1(rs).tooltip.resumeInvalidate();\r\n }\r\n });\r\n return;\r\n }\r\n var tooltipArray = [];\r\n var height = this.isVerticalChart()\r\n ? this.parentSurface.seriesViewRect.width\r\n : this.parentSurface.seriesViewRect.height;\r\n rsList.forEach(function (rs, index) {\r\n var hitTestInfo = _this.hitTestRenderableSeries(rs, _this.mousePoint);\r\n if (hitTestInfo) {\r\n if ((rs.type !== SeriesType_1.ESeriesType.StackedColumnSeries && _this.hitTestRadius === 0) || hitTestInfo.isHit) {\r\n var isVisible = 0 <= hitTestInfo.yCoord && hitTestInfo.yCoord <= height;\r\n if (isVisible) {\r\n _this.absoluteXCoord = _this.isVerticalChart() ? hitTestInfo.yCoord : hitTestInfo.xCoord;\r\n var absoluteYCoord = _this.isVerticalChart() ? hitTestInfo.xCoord : hitTestInfo.yCoord;\r\n var tooltipProps = (0, exports.calcTooltipProps)(index, rs, _this.getRolloverProps(rs), _this.parentSurface.seriesViewRect, hitTestInfo.xValue, hitTestInfo.yValue, _this.absoluteXCoord, absoluteYCoord, hitTestInfo, DpiHelper_1.DpiHelper.PIXEL_RATIO, false, _this.isVerticalChart());\r\n if (tooltipProps)\r\n tooltipArray.push(tooltipProps);\r\n }\r\n }\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n var isVisibleY1 = 0 <= hitTestInfo.y1Coord && hitTestInfo.y1Coord <= height;\r\n if (isVisibleY1) {\r\n var absoluteXCoord = _this.isVerticalChart() ? hitTestInfo.y1Coord : hitTestInfo.xCoord;\r\n var absoluteYCoord = _this.isVerticalChart() ? hitTestInfo.xCoord : hitTestInfo.y1Coord;\r\n var tooltipY1Props = (0, exports.calcTooltipProps)(index, rs, _this.getRolloverProps1(rs), _this.parentSurface.seriesViewRect, hitTestInfo.xValue, hitTestInfo.y1Value, absoluteXCoord, absoluteYCoord, hitTestInfo, DpiHelper_1.DpiHelper.PIXEL_RATIO, true, _this.isVerticalChart());\r\n if (tooltipY1Props)\r\n tooltipArray.push(tooltipY1Props);\r\n }\r\n }\r\n }\r\n });\r\n var orderedTooltipArray;\r\n if (this.isVerticalChart()) {\r\n orderedTooltipArray = tooltipArray.sort(function (a, b) { return (a.xCoord > b.xCoord ? 1 : b.xCoord > a.xCoord ? -1 : 0); });\r\n }\r\n else {\r\n orderedTooltipArray = tooltipArray.sort(function (a, b) { return (a.yCoord > b.yCoord ? 1 : b.yCoord > a.yCoord ? -1 : 0); });\r\n }\r\n var tooltipPositions = this.CalculateTooltipPositions(orderedTooltipArray, this.allowTooltipOverlapping, exports.TOOLTIP_SPACING * DpiHelper_1.DpiHelper.PIXEL_RATIO, this.parentSurface.seriesViewRect, DpiHelper_1.DpiHelper.PIXEL_RATIO, this.isVerticalChart());\r\n tooltipPositions.forEach(function (el) {\r\n var rs = rsList[el.index];\r\n var showTooltip = _this.showTooltip && el.seriesInfo.isHit;\r\n var showMarker = el.seriesInfo.isHit;\r\n if (el.isY1) {\r\n (0, exports.updateRolloverModifierProps)(_this.getRolloverProps1(rs), rs, el, showTooltip, showMarker, _this.placementDivId);\r\n }\r\n else {\r\n (0, exports.updateRolloverModifierProps)(_this.getRolloverProps(rs), rs, el, showTooltip, showMarker, _this.placementDivId);\r\n }\r\n });\r\n rsList.forEach(function (rs) {\r\n _this.getRolloverProps(rs).marker.resumeInvalidate();\r\n _this.getRolloverProps(rs).tooltip.resumeInvalidate();\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n _this.getRolloverProps1(rs).marker.resumeInvalidate();\r\n _this.getRolloverProps1(rs).tooltip.resumeInvalidate();\r\n }\r\n });\r\n };\r\n /**\r\n * Test if the series is included or excluded, by default it is included\r\n * @param series\r\n * @private\r\n */\r\n RolloverModifier.prototype.testIsIncludedSeries = function (series) {\r\n return this.includedSeriesMap.get(series) !== false;\r\n };\r\n RolloverModifier.prototype.getSeriesInfos = function () {\r\n var _this = this;\r\n return this.getIncludedRenderableSeries()\r\n .map(function (rs) {\r\n var hitTestInfo = _this.hitTestRenderableSeries(rs, _this.mousePoint);\r\n if (!hitTestInfo) {\r\n return undefined;\r\n }\r\n return rs.getSeriesInfo(hitTestInfo);\r\n })\r\n .filter(function (rs) { return rs !== undefined; });\r\n };\r\n Object.defineProperty(RolloverModifier.prototype, \"placementDivId\", {\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n get: function () {\r\n return this.placementDivIdProperty;\r\n },\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n var _a;\r\n if (this.placementDivIdProperty !== value) {\r\n this.placementDivIdProperty = value;\r\n (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.renderableSeries.asArray().forEach(function (rs) {\r\n _this.getRolloverProps(rs).tooltip.placementDivId = _this.placementDivIdProperty;\r\n _this.getRolloverProps1(rs).tooltip.placementDivId = _this.placementDivIdProperty;\r\n });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return RolloverModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.RolloverModifier = RolloverModifier;\r\n/**\r\n * @ignore\r\n * @description Used internally, calculates tooltip props\r\n * @param index\r\n * @param rs\r\n * @param rolloverProps\r\n * @param seriesViewRect\r\n * @param xValue\r\n * @param yValue\r\n * @param absoluteXCoord\r\n * @param absoluteYCoord\r\n * @param hitTestInfo\r\n * @param pixelRatio\r\n * @param isY1\r\n */\r\nvar calcTooltipProps = function (index, rs, rolloverProps, seriesViewRect, xValue, yValue, absoluteXCoord, absoluteYCoord, hitTestInfo, pixelRatio, isY1, isVerticalChart) {\r\n if (isY1 === void 0) { isY1 = false; }\r\n if (isVerticalChart === void 0) { isVerticalChart = false; }\r\n // This check is done in calling code\r\n // const visibleRange = rs.yAxis.visibleRange;\r\n // const isVisible = visibleRange.min <= yValue && yValue <= visibleRange.max);\r\n // if (isVisible) {\r\n var seriesInfo = rs.getSeriesInfo(hitTestInfo);\r\n var width = rolloverProps.tooltip.width;\r\n var scaledWidth = width * pixelRatio;\r\n var height = rolloverProps.tooltip.height;\r\n var scaledHeight = height * pixelRatio;\r\n var distTop = absoluteYCoord;\r\n var distBottom = seriesViewRect.height - absoluteYCoord;\r\n var defaultVerticalShift = 5 * pixelRatio;\r\n var xCoordShift = seriesViewRect.width - absoluteXCoord < scaledWidth ? -width : 5;\r\n var yCoordShift = isVerticalChart ? defaultVerticalShift : -height / 2;\r\n if (isVerticalChart) {\r\n if (distBottom < scaledHeight + defaultVerticalShift) {\r\n yCoordShift = ((scaledHeight + defaultVerticalShift) / pixelRatio) * -1;\r\n }\r\n }\r\n else {\r\n if (distTop < scaledHeight / 2) {\r\n yCoordShift = -distTop / pixelRatio;\r\n }\r\n else if (distBottom < scaledHeight / 2) {\r\n yCoordShift = -(scaledHeight - distBottom) / pixelRatio;\r\n }\r\n }\r\n var newRecord = {\r\n index: index,\r\n isY1: isY1,\r\n xValue: xValue,\r\n yValue: yValue,\r\n xCoord: absoluteXCoord,\r\n yCoord: absoluteYCoord,\r\n hitTestPointValues: hitTestInfo.hitTestPointValues,\r\n isCategoryAxis: hitTestInfo.isCategoryAxis,\r\n xCoordShift: xCoordShift,\r\n yCoordShift: yCoordShift,\r\n height: scaledHeight,\r\n width: scaledWidth,\r\n seriesInfo: seriesInfo\r\n };\r\n return newRecord;\r\n // }\r\n // return undefined;\r\n};\r\nexports.calcTooltipProps = calcTooltipProps;\r\n/**\r\n * @ignore\r\n * @description Used internally, calculates tooltip positions to avoid overlapping\r\n * @param tooltipArray\r\n * @param allowTooltipOverlapping\r\n * @param spacing\r\n * @param seriesViewRect\r\n * @param pixelRatio\r\n * @param isVerticalChart\r\n */\r\nvar calcTooltipPositions = function (tooltipArray, allowTooltipOverlapping, spacing, seriesViewRect, pixelRatio, isVerticalChart) {\r\n if (isVerticalChart === void 0) { isVerticalChart = false; }\r\n var positionProperties = (0, tooltip_1.getTooltipPositionProperties)(isVerticalChart);\r\n // centering for vertical charts\r\n if (isVerticalChart) {\r\n tooltipArray.forEach(function (tooltip) {\r\n var halfWidth = tooltip.width / 2 / pixelRatio;\r\n if (tooltip.xCoord > halfWidth) {\r\n tooltip[positionProperties.shiftPropertyName] = -(tooltip.width / 2) / pixelRatio;\r\n }\r\n });\r\n }\r\n var hasOverlap = (0, tooltip_1.checkHasOverlap)(tooltipArray, spacing, pixelRatio, positionProperties);\r\n var length = tooltipArray.length;\r\n if (!allowTooltipOverlapping && length >= 2 && hasOverlap) {\r\n var spreadMap_1 = (0, tooltip_1.spreadTooltips)(tooltipArray, pixelRatio, positionProperties, spacing, seriesViewRect);\r\n tooltipArray.forEach(function (tooltip) {\r\n tooltip[positionProperties.shiftPropertyName] = spreadMap_1.get(tooltip.index);\r\n });\r\n }\r\n return tooltipArray;\r\n};\r\nexports.calcTooltipPositions = calcTooltipPositions;\r\n/**\r\n * @ignore\r\n * @description Creates MarkerAnnotation and TooltipAnnotation and assigns to rolloverSeries properties\r\n * @param rs RenderableSeries\r\n */\r\nvar createAnnotations = function (rs, rolloverModifierProps, rolloverModifierProps1, placementDivId) {\r\n var _a, _b, _c, _d;\r\n if (!rolloverModifierProps.marker) {\r\n rolloverModifierProps.marker = new RolloverMarkerSvgAnnotation_1.RolloverMarkerSvgAnnotation(rolloverModifierProps);\r\n rolloverModifierProps.marker.xAxisId = rs.xAxisId;\r\n rolloverModifierProps.marker.yAxisId = rs.yAxisId;\r\n }\r\n if (!rolloverModifierProps.tooltip) {\r\n rolloverModifierProps.tooltipTitle = (_b = (_a = rolloverModifierProps.tooltipTitle) !== null && _a !== void 0 ? _a : rs.getDataSeriesName()) !== null && _b !== void 0 ? _b : \"\";\r\n rolloverModifierProps.tooltipColor = rolloverModifierProps.tooltipColor;\r\n rolloverModifierProps.shadowColor = rs.parentSurface.themeProvider.shadowEffectColor;\r\n rolloverModifierProps.tooltip = new RolloverTooltipSvgAnnotation_1.RolloverTooltipSvgAnnotation(rolloverModifierProps, {\r\n seriesType: rs.type,\r\n placementDivId: placementDivId\r\n });\r\n rolloverModifierProps.tooltip.xAxisId = rs.xAxisId;\r\n rolloverModifierProps.tooltip.yAxisId = rs.yAxisId;\r\n }\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n var bandRs = rs;\r\n if (!rolloverModifierProps1.marker) {\r\n rolloverModifierProps1.marker = new RolloverMarkerSvgAnnotation_1.RolloverMarkerSvgAnnotation(rolloverModifierProps1);\r\n rolloverModifierProps1.marker.xAxisId = bandRs.xAxisId;\r\n rolloverModifierProps1.marker.yAxisId = bandRs.yAxisId;\r\n }\r\n if (!rolloverModifierProps1.tooltip) {\r\n rolloverModifierProps1.tooltipTitle =\r\n (_d = (_c = rolloverModifierProps1.tooltipTitle) !== null && _c !== void 0 ? _c : bandRs.getDataSeriesName()) !== null && _d !== void 0 ? _d : \"\";\r\n rolloverModifierProps1.tooltipColor = rolloverModifierProps1.tooltipColor;\r\n rolloverModifierProps1.tooltip = new RolloverTooltipSvgAnnotation_1.RolloverTooltipSvgAnnotation(rolloverModifierProps1, {\r\n placementDivId: placementDivId\r\n });\r\n rolloverModifierProps1.tooltip.xAxisId = bandRs.xAxisId;\r\n rolloverModifierProps1.tooltip.yAxisId = bandRs.yAxisId;\r\n }\r\n }\r\n};\r\n/** @ignore */\r\nvar updateRolloverModifierProps = function (rolloverRSProps, rs, tooltipProps, showTooltip, showMarker, placementDivId) {\r\n rolloverRSProps.tooltip.seriesInfo = tooltipProps.seriesInfo;\r\n if (tooltipProps.isY1) {\r\n rolloverRSProps.tooltip.seriesInfo.isFirstSeries = false;\r\n }\r\n if (showMarker) {\r\n rolloverRSProps.marker.isHidden = false;\r\n rolloverRSProps.marker.x1 = tooltipProps.xValue;\r\n rolloverRSProps.marker.y1 = tooltipProps.yValue;\r\n if (rolloverRSProps.markerColor.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n rolloverRSProps.markerColor = tooltipProps.isY1 ? rs.strokeY1 : rs.stroke;\r\n }\r\n }\r\n // Update tooltips\r\n if (showTooltip) {\r\n rolloverRSProps.tooltip.isHidden = false;\r\n rolloverRSProps.tooltip.x1 = tooltipProps.xValue;\r\n rolloverRSProps.tooltip.y1 = tooltipProps.yValue;\r\n rolloverRSProps.tooltip.xCoordShift = tooltipProps.xCoordShift;\r\n rolloverRSProps.tooltip.yCoordShift = tooltipProps.yCoordShift;\r\n if (rolloverRSProps.tooltipColor.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n rolloverRSProps.tooltipColor = tooltipProps.isY1 ? rs.strokeY1 : rs.stroke;\r\n }\r\n }\r\n else {\r\n if (placementDivId) {\r\n rolloverRSProps.tooltip.delete();\r\n }\r\n }\r\n};\r\nexports.updateRolloverModifierProps = updateRolloverModifierProps;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getRubberBandRect = exports.RubberBandXyZoomModifier = void 0;\r\nvar EasingFunctions_1 = require(\"../../Core/Animations/EasingFunctions\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Point_1 = require(\"../../Core/Point\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar XyDirection_1 = require(\"../../types/XyDirection\");\r\nvar ZoomState_1 = require(\"../../types/ZoomState\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar RubberBandSvgRect_1 = require(\"../Visuals/RubberBandSvgRect/RubberBandSvgRect\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * The RubberBandXyZoomModifier provides drag-rectangle to zoom behavior on a 2D {@link SciChartSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the RubberBandXyZoomModifier to a {@link SciChartSurface} and add drag to zoom behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new RubberBandXyZoomModifier());\r\n * ```\r\n *\r\n * Animation of the zoom may be controlled via the {@link RubberBandXyZoomModifier.isAnimated},\r\n * {@link RubberBandXyZoomModifier.animationDuration} and {@link RubberBandXyZoomModifier.easingFunction} properties.\r\n */\r\nvar RubberBandXyZoomModifier = /** @class */ (function (_super) {\r\n __extends(RubberBandXyZoomModifier, _super);\r\n /**\r\n * Creates an instance of a RubberBandXyZoomModifier\r\n * @param options Optional parameters used to configure the modifier\r\n */\r\n function RubberBandXyZoomModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.RubberBandXYZoom;\r\n /**\r\n * When true, the Zoom operations are animated. See also {@link animationDuration} and {@link easingFunction}\r\n */\r\n _this.isAnimated = true;\r\n /**\r\n * Defines the duration of animations when zooming in milliseconds\r\n */\r\n _this.animationDuration = 400;\r\n /**\r\n * Defines the easing function for animation. See {@link TEasingFn} for a range of functions\r\n */\r\n _this.easingFunction = EasingFunctions_1.easing.outExpo;\r\n _this.isClicked = false;\r\n _this.fillProperty = \"#42b64933\";\r\n _this.strokeProperty = \"#42b64977\";\r\n _this.strokeThicknessProperty = 2;\r\n _this.fill = (_a = options === null || options === void 0 ? void 0 : options.fill) !== null && _a !== void 0 ? _a : _this.fillProperty;\r\n _this.stroke = (_b = options === null || options === void 0 ? void 0 : options.stroke) !== null && _b !== void 0 ? _b : _this.strokeProperty;\r\n _this.strokeThickness = (_c = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _c !== void 0 ? _c : _this.strokeThicknessProperty;\r\n _this.isAnimated = (_d = options === null || options === void 0 ? void 0 : options.isAnimated) !== null && _d !== void 0 ? _d : true;\r\n _this.animationDuration = (_e = options === null || options === void 0 ? void 0 : options.animationDuration) !== null && _e !== void 0 ? _e : 400;\r\n if ((options === null || options === void 0 ? void 0 : options.easingFunction) && typeof options.easingFunction === \"string\") {\r\n options.easingFunction = EasingFunctions_1.easing[options.easingFunction];\r\n }\r\n _this.easingFunction = (_f = options === null || options === void 0 ? void 0 : options.easingFunction) !== null && _f !== void 0 ? _f : EasingFunctions_1.easing.outExpo;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n RubberBandXyZoomModifier.prototype.applyTheme = function (themeProvider) {\r\n if (!this.testPropertyChanged(constants_1.PROPERTY.FILL)) {\r\n this.fill = themeProvider.rubberBandFillBrush;\r\n }\r\n if (!this.testPropertyChanged(constants_1.PROPERTY.STROKE)) {\r\n this.stroke = themeProvider.rubberBandStrokeBrush;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RubberBandXyZoomModifier.prototype.onDetach = function () {\r\n _super.prototype.onDetach.call(this);\r\n this.rubberBandRect = (0, Deleter_1.deleteSafe)(this.rubberBandRect);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RubberBandXyZoomModifier.prototype.modifierMouseDown = function (args) {\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call RubberBandXyZoomModifier.modifierMouseDown if not attached\");\r\n }\r\n this.parentSurface.setZoomState(ZoomState_1.EZoomState.UserZooming);\r\n var pointFromTrans = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect);\r\n if (pointFromTrans) {\r\n this.pointFrom = pointFromTrans;\r\n this.isClicked = true;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RubberBandXyZoomModifier.prototype.modifierMouseMove = function (args) {\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n if (this.isClicked) {\r\n this.pointTo = (0, translate_1.translateFromCanvasToSeriesViewRect)(Rect_1.Rect.clipPointToRect(args.mousePoint, seriesViewRect), seriesViewRect);\r\n var coordSvgTranslation = this.parentSurface.getCoordSvgTranslation();\r\n var _a = getRubberBandRect(this.pointFrom, this.pointTo, this.xyDirection, this.parentSurface.seriesViewRect), x = _a.x, right = _a.right, y = _a.y, bottom = _a.bottom;\r\n this.rubberBandRect.isHidden = false;\r\n this.rubberBandRect.x1 = (0, translate_1.translateToNotScaled)(x + coordSvgTranslation.x);\r\n this.rubberBandRect.x2 = (0, translate_1.translateToNotScaled)(right + coordSvgTranslation.x);\r\n this.rubberBandRect.y1 = (0, translate_1.translateToNotScaled)(y + coordSvgTranslation.y);\r\n this.rubberBandRect.y2 = (0, translate_1.translateToNotScaled)(bottom + coordSvgTranslation.y);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RubberBandXyZoomModifier.prototype.modifierMouseUp = function (args) {\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (this.isClicked) {\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n this.pointTo = (0, translate_1.translateFromCanvasToSeriesViewRect)(Rect_1.Rect.clipPointToRect(args.mousePoint, seriesViewRect), seriesViewRect);\r\n var _a = getRubberBandRect(this.pointFrom, this.pointTo, this.xyDirection, this.parentSurface.seriesViewRect), x = _a.x, right = _a.right, y = _a.y, bottom = _a.bottom;\r\n this.isClicked = false;\r\n this.rubberBandRect.isHidden = true;\r\n if (this.calculateDraggedDistance() > RubberBandXyZoomModifier.MIN_DRAG_SENSITIVITY) {\r\n this.performZoom(new Point_1.Point(x, y), new Point_1.Point(right, bottom));\r\n }\r\n }\r\n };\r\n Object.defineProperty(RubberBandXyZoomModifier.prototype, \"strokeThickness\", {\r\n // PROPERTIES\r\n /**\r\n * Get the stroke thickness for {@link RubberBandSvgRect}\r\n */\r\n get: function () {\r\n return this.strokeThicknessProperty;\r\n },\r\n /**\r\n * Set the stroke thickness for {@link RubberBandSvgRect}\r\n */\r\n set: function (value) {\r\n this.strokeThicknessProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RubberBandXyZoomModifier.prototype, \"stroke\", {\r\n /**\r\n * Get the stroke for {@link RubberBandSvgRect}\r\n */\r\n get: function () {\r\n return this.strokeProperty;\r\n },\r\n /**\r\n * Set the stroke for {@link RubberBandSvgRect}\r\n */\r\n set: function (value) {\r\n this.strokeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RubberBandXyZoomModifier.prototype, \"fill\", {\r\n /**\r\n * Get the fill color for {@link RubberBandSvgRect}\r\n */\r\n get: function () {\r\n return this.fillProperty;\r\n },\r\n /**\r\n * Set the fill color for {@link RubberBandSvgRect}\r\n */\r\n set: function (value) {\r\n this.fillProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RubberBandXyZoomModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n animationDuration: this.animationDuration,\r\n easingFunction: this.easingFunction.name,\r\n fill: this.fill,\r\n isAnimated: this.isAnimated,\r\n stroke: this.stroke,\r\n strokeThickness: this.strokeThickness\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n RubberBandXyZoomModifier.prototype.delete = function () {\r\n this.parentSurfaceProperty = undefined;\r\n this.rubberBandRect = (0, Deleter_1.deleteSafe)(this.rubberBandRect);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * Performs the zoom operation on the parent Surface, using the mouse points from & to, which\r\n * define the corners of the rectangle to zoom\r\n * @param pointFrom the first corner of the rectangle to zoom\r\n * @param pointTo the second corner of the rectangle to zoom\r\n */\r\n RubberBandXyZoomModifier.prototype.performZoom = function (pointFrom, pointTo) {\r\n var _this = this;\r\n var zoomXDirection = [XyDirection_1.EXyDirection.XDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection);\r\n var zoomYDirection = [XyDirection_1.EXyDirection.YDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection);\r\n this.parentSurface.xAxes.asArray().forEach(function (axis) {\r\n if ((!axis.isVerticalChart && zoomXDirection) || (axis.isVerticalChart && zoomYDirection)) {\r\n _this.performZoomOnAxis(axis, axis.isVerticalChart ? pointFrom.y : pointFrom.x, axis.isVerticalChart ? pointTo.y : pointTo.x);\r\n }\r\n });\r\n this.parentSurface.yAxes.asArray().forEach(function (axis) {\r\n if ((!axis.isVerticalChart && zoomYDirection) || (axis.isVerticalChart && zoomXDirection)) {\r\n _this.performZoomOnAxis(axis, axis.isVerticalChart ? pointFrom.x : pointFrom.y, axis.isVerticalChart ? pointTo.x : pointTo.y);\r\n }\r\n });\r\n };\r\n /**\r\n * Performs a Zoom on a specific axis\r\n * @param axis the Axis to zoom\r\n * @param fromCoord the coordinate to zoom from\r\n * @param toCoord the coordinate to zoom to\r\n */\r\n RubberBandXyZoomModifier.prototype.performZoomOnAxis = function (axis, fromCoord, toCoord) {\r\n axis.zoom(fromCoord, toCoord, this.isAnimated ? this.animationDuration : 0, this.easingFunction);\r\n };\r\n RubberBandXyZoomModifier.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n this.updateRubberBandRect();\r\n };\r\n RubberBandXyZoomModifier.prototype.calculateDraggedDistance = function () {\r\n var diffX = Math.pow((this.pointFrom.x - this.pointTo.x), 2);\r\n var diffY = Math.pow((this.pointFrom.y - this.pointTo.y), 2);\r\n return Math.sqrt(diffX + diffY);\r\n };\r\n RubberBandXyZoomModifier.prototype.updateRubberBandRect = function () {\r\n if (this.parentSurface) {\r\n this.rubberBandRect = (0, Deleter_1.deleteSafe)(this.rubberBandRect);\r\n this.rubberBandRect = new RubberBandSvgRect_1.RubberBandSvgRect(this.parentSurface.domSvgContainer, this.fill, this.stroke, this.strokeThickness);\r\n }\r\n };\r\n RubberBandXyZoomModifier.MIN_DRAG_SENSITIVITY = 5;\r\n return RubberBandXyZoomModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.RubberBandXyZoomModifier = RubberBandXyZoomModifier;\r\n/**\r\n * Given the starting and end mouse-point, computes a rectangle to perform zoom over. Takes into account the xyDirection\r\n * @param pointFrom the starting point of the mouse\r\n * @param pointTo the end point of the mouse\r\n * @param xyDirection the XyDirection\r\n * @param viewportRect\r\n */\r\nfunction getRubberBandRect(pointFrom, pointTo, xyDirection, viewportRect) {\r\n var x1 = pointTo.x <= pointFrom.x ? pointTo.x : pointFrom.x;\r\n var x2 = pointTo.x <= pointFrom.x ? pointFrom.x : pointTo.x;\r\n var y1 = pointTo.y <= pointFrom.y ? pointTo.y : pointFrom.y;\r\n var y2 = pointTo.y <= pointFrom.y ? pointFrom.y : pointTo.y;\r\n if (xyDirection === XyDirection_1.EXyDirection.XDirection) {\r\n y1 = 0;\r\n y2 = viewportRect.height;\r\n }\r\n if (xyDirection === XyDirection_1.EXyDirection.YDirection) {\r\n x1 = 0;\r\n x2 = viewportRect.width;\r\n }\r\n return Rect_1.Rect.createWithPoints(new Point_1.Point(x1, y1), new Point_1.Point(x2, y2));\r\n}\r\nexports.getRubberBandRect = getRubberBandRect;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesSelectionModifier = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar array_1 = require(\"../../utils/array\");\r\nvar BaseHitTestProvider_1 = require(\"../Visuals/RenderableSeries/HitTest/BaseHitTestProvider\");\r\nvar HoveredChangedArgs_1 = require(\"../Visuals/RenderableSeries/HoveredChangedArgs\");\r\nvar SelectionChangedArgs_1 = require(\"../Visuals/RenderableSeries/SelectionChangedArgs\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\nvar constants_1 = require(\"./constants\");\r\nvar SeriesSelectionModifier = /** @class */ (function (_super) {\r\n __extends(SeriesSelectionModifier, _super);\r\n /**\r\n * Creates an instance of a SeriesSelectionModifier\r\n * @param options Optional parameters used to configure the modifier\r\n */\r\n function SeriesSelectionModifier(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.SeriesSelection;\r\n /**\r\n * An array of currently selected series which can be observed by subscribing to the {@link selectionChanged} {@link EventHandler | event handler}\r\n * @remarks See documentation for how to subscribe to changes\r\n */\r\n _this.selectedSeries = [];\r\n /**\r\n * An array of currently hovered series which can be observed by subscribing to the {@link hoverChanged} {@link EventHandler | event handler}\r\n * @remarks See documentation for how to subscribe to changes\r\n */\r\n _this.hoveredSeries = [];\r\n /**\r\n * A selection-changed EventHandler. See {@link EventHandler} for how to subscribe to and be\r\n * notified when any {@link IRenderableSeries | Series} is selected or unselected\r\n */\r\n _this.selectionChanged = new EventHandler_1.EventHandler();\r\n /**\r\n * A hover-changed EventHandler. See {@link EventHandler} for how to subscribe to and be\r\n * notified when any {@link IRenderableSeries | Series} is hovered or unhovered\r\n */\r\n _this.hoverChanged = new EventHandler_1.EventHandler();\r\n _this.hitTestRadiusProperty = (options === null || options === void 0 ? void 0 : options.hitTestRadius) || BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS;\r\n _this.enableSelection = (_a = options === null || options === void 0 ? void 0 : options.enableSelection) !== null && _a !== void 0 ? _a : true;\r\n _this.enableHover = (_b = options === null || options === void 0 ? void 0 : options.enableHover) !== null && _b !== void 0 ? _b : false;\r\n if (options === null || options === void 0 ? void 0 : options.onSelectionChanged) {\r\n if (typeof options.onSelectionChanged === \"string\") {\r\n _this.typeMap.set(\"onSelectionChanged\", options.onSelectionChanged);\r\n var onSelectionChangedCallback = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onSelectionChanged);\r\n _this.selectionChanged.subscribe(onSelectionChangedCallback);\r\n }\r\n else {\r\n _this.selectionChanged.subscribe(options.onSelectionChanged);\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.onHoverChanged) {\r\n if (typeof options.onHoverChanged === \"string\") {\r\n _this.typeMap.set(\"onHoverChanged\", options.onHoverChanged);\r\n var onHoverChangedCallback = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onHoverChanged);\r\n _this.hoverChanged.subscribe(onHoverChangedCallback);\r\n }\r\n else {\r\n _this.hoverChanged.subscribe(options.onHoverChanged);\r\n }\r\n }\r\n _this.updateSeriesSelected = _this.updateSeriesSelected.bind(_this);\r\n _this.updateSeriesHovered = _this.updateSeriesHovered.bind(_this);\r\n _this.getAllSeries = _this.getAllSeries.bind(_this);\r\n return _this;\r\n }\r\n Object.defineProperty(SeriesSelectionModifier.prototype, \"hitTestRadius\", {\r\n /**\r\n * A hit-test radius in pixels used when selecting series. Defaults to 7\r\n */\r\n get: function () {\r\n return this.hitTestRadiusProperty;\r\n },\r\n /**\r\n * A hit-test radius in pixels used when selecting series. Defaults to 7\r\n */\r\n set: function (hitTestRadius) {\r\n this.hitTestRadiusProperty = hitTestRadius;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.HIT_TEST_RADIUS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SeriesSelectionModifier.prototype.onAttach = function () {\r\n var _this = this;\r\n var _a;\r\n _super.prototype.onAttach.call(this);\r\n this.selectedSeries = [];\r\n (_a = this.getAllSeries()) === null || _a === void 0 ? void 0 : _a.forEach(function (rs) { return _this.onAttachSeries(rs); });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SeriesSelectionModifier.prototype.onDetach = function () {\r\n var _this = this;\r\n var _a;\r\n _super.prototype.onDetach.call(this);\r\n this.selectedSeries = [];\r\n (_a = this.getAllSeries()) === null || _a === void 0 ? void 0 : _a.forEach(function (rs) { return _this.onDetachSeries(rs); });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SeriesSelectionModifier.prototype.onAttachSeries = function (rs) {\r\n _super.prototype.onAttachSeries.call(this, rs);\r\n if (rs.isSelected) {\r\n this.selectedSeries.push(rs);\r\n }\r\n rs.selected.subscribe(this.updateSeriesSelected);\r\n if (rs.isHovered) {\r\n this.hoveredSeries.push(rs);\r\n }\r\n rs.hovered.subscribe(this.updateSeriesHovered);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SeriesSelectionModifier.prototype.onDetachSeries = function (rs) {\r\n _super.prototype.onDetachSeries.call(this, rs);\r\n this.selectedSeries = (0, array_1.arrayRemove)(this.selectedSeries, rs);\r\n rs.selected.unsubscribe(this.updateSeriesSelected);\r\n this.hoveredSeries = (0, array_1.arrayRemove)(this.hoveredSeries, rs);\r\n rs.hovered.unsubscribe(this.updateSeriesHovered);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SeriesSelectionModifier.prototype.modifierMouseDown = function (args) {\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call SeriesSelectionModifier.modifierMouseDown if not attached\");\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SeriesSelectionModifier.prototype.modifierMouseMove = function (args) {\r\n var _this = this;\r\n var _a;\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n // Don't perform hit-test on hover if enableHover is false. Saves performance\r\n if (!this.enableHover) {\r\n return;\r\n }\r\n // Perform a hit-test on the renderable series\r\n var allSeries = this.getAllSeries();\r\n var hitTestInfos = allSeries.map(function (rs) {\r\n return rs.hitTestProvider.hitTest(args.mousePoint.x, args.mousePoint.y, _this.hitTestRadius);\r\n });\r\n try {\r\n // Set a flag to prevent re-entrancy\r\n this.preventReentrancy = true;\r\n var prevHovered = __spreadArray([], this.hoveredSeries, true);\r\n // Deselect all series\r\n this.hoveredSeries = [];\r\n var nearestHitTestInfo_1;\r\n if ((hitTestInfos === null || hitTestInfos === void 0 ? void 0 : hitTestInfos.length) > 0) {\r\n // Any series been hit-tested? Get the nearest\r\n nearestHitTestInfo_1 = hitTestInfos\r\n .filter(function (ht) { return ht.isHit; })\r\n .sort(function (a, b) { return a.getEuclideanDistance() - b.getEuclideanDistance(); })[0];\r\n // 1. Set the isHovered flag and add to hovered array for the nearest hitTestInfo\r\n if (nearestHitTestInfo_1) {\r\n nearestHitTestInfo_1.associatedSeries.isHovered = true;\r\n this.hoveredSeries.push(nearestHitTestInfo_1.associatedSeries);\r\n }\r\n else {\r\n // No series hit-tested, set all as un-hovered\r\n allSeries.forEach(function (s) { return (s.isHovered = false); });\r\n }\r\n // 2. Series which were not hovered, set isHovered = false;\r\n hitTestInfos\r\n .filter(function (ht) { return ht !== nearestHitTestInfo_1; })\r\n .forEach(function (unhoveredSeries) {\r\n if (unhoveredSeries === null || unhoveredSeries === void 0 ? void 0 : unhoveredSeries.associatedSeries) {\r\n unhoveredSeries.associatedSeries.isHovered = false;\r\n }\r\n });\r\n }\r\n else {\r\n // No series hit-tested, set all as un-hovered\r\n allSeries.forEach(function (s) { return (s.isHovered = false); });\r\n }\r\n // Raise the hoverChanged event if something has changed\r\n if (prevHovered.length !== this.hoveredSeries.length ||\r\n prevHovered.some(function (s) { return !_this.hoveredSeries.includes(s); })) {\r\n (_a = this.hoverChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new HoveredChangedArgs_1.HoveredChangedArgs(this, this.hoveredSeries, allSeries, nearestHitTestInfo_1));\r\n }\r\n }\r\n finally {\r\n this.preventReentrancy = false;\r\n }\r\n };\r\n SeriesSelectionModifier.prototype.modifierMouseLeave = function (args) {\r\n var _a;\r\n this.preventReentrancy = true;\r\n // Pointer left the chart, set all as un-hovered\r\n var allSeries = this.getAllSeries();\r\n // Raise the hoverChanged event if something has changed\r\n var prevHovered = __spreadArray([], this.hoveredSeries, true);\r\n var nearestHitTestInfo = undefined;\r\n if (prevHovered.length > 0) {\r\n allSeries.forEach(function (s) { return (s.isHovered = false); });\r\n (_a = this.hoverChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new HoveredChangedArgs_1.HoveredChangedArgs(this, this.hoveredSeries, allSeries, nearestHitTestInfo));\r\n }\r\n this.preventReentrancy = false;\r\n };\r\n SeriesSelectionModifier.prototype.modifierPointerCancel = function (args) {\r\n this.modifierMouseLeave(args);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SeriesSelectionModifier.prototype.modifierMouseUp = function (args) {\r\n var _this = this;\r\n var _a;\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (!this.enableSelection) {\r\n return;\r\n }\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call SeriesSelectionModifier.modifierMouseUp if not attached\");\r\n }\r\n // Perform a hit-test on the renderable series\r\n var allSeries = this.getAllSeries();\r\n var hitTestInfos = allSeries.map(function (rs) {\r\n return rs.hitTestProvider.hitTest(args.mousePoint.x, args.mousePoint.y, _this.hitTestRadius);\r\n });\r\n try {\r\n // Set a flag to prevent re-entrancy\r\n this.preventReentrancy = true;\r\n // Deselect all series\r\n this.selectedSeries = [];\r\n allSeries.forEach(function (rs) { return (rs.isSelected = false); });\r\n var nearestHitTestInfo = void 0;\r\n // Select the first series that has HitTestInfo.isHit = true\r\n if ((hitTestInfos === null || hitTestInfos === void 0 ? void 0 : hitTestInfos.length) > 0) {\r\n // Any series been hit-tested? Get the nearest\r\n nearestHitTestInfo = hitTestInfos.sort(function (a, b) { return a.getEuclideanDistance() - b.getEuclideanDistance(); })[0];\r\n if (nearestHitTestInfo.isHit) {\r\n // Setting isSelected true will cause series to raise the selectionChanged event\r\n // This then feeds back into this.select\r\n nearestHitTestInfo.associatedSeries.isSelected = true;\r\n this.selectedSeries.push(nearestHitTestInfo.associatedSeries);\r\n }\r\n }\r\n // Raise the selectionChanged event\r\n (_a = this.selectionChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new SelectionChangedArgs_1.SelectionChangedArgs(this, this.selectedSeries, allSeries, nearestHitTestInfo));\r\n }\r\n finally {\r\n this.preventReentrancy = false;\r\n }\r\n };\r\n SeriesSelectionModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n enableHover: this.enableHover,\r\n enableSelection: this.enableSelection,\r\n hitTestRadius: this.hitTestRadius,\r\n onHoverChanged: this.typeMap.get(\"onHoverChanged\"),\r\n onSelectionChanged: this.typeMap.get(\"onSelectionChanged\")\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n SeriesSelectionModifier.prototype.getAllSeries = function () {\r\n // Series Selection should only operate on visible series\r\n return _super.prototype.getAllSeries.call(this).filter(function (rs) { return rs.isVisible; });\r\n };\r\n /**\r\n * This function called when the user sets series.isSelected = true elsewhere in code and we want to sync the modifier\r\n */\r\n SeriesSelectionModifier.prototype.updateSeriesSelected = function (arg) {\r\n var _a, _b;\r\n // Flag to prevent re-entrancy\r\n if (this.preventReentrancy) {\r\n return;\r\n }\r\n if (arg.isSelected) {\r\n this.selectedSeries.push(arg.sourceSeries);\r\n // Raise the selectionChanged event\r\n (_a = this.selectionChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new SelectionChangedArgs_1.SelectionChangedArgs(this, this.selectedSeries, this.getAllSeries(), undefined));\r\n }\r\n else {\r\n this.selectedSeries = (0, array_1.arrayRemove)(this.selectedSeries, arg.sourceSeries);\r\n // Raise the selectionChanged event after series deselected\r\n (_b = this.selectionChanged) === null || _b === void 0 ? void 0 : _b.raiseEvent(new SelectionChangedArgs_1.SelectionChangedArgs(this, this.selectedSeries, this.getAllSeries(), undefined));\r\n }\r\n };\r\n SeriesSelectionModifier.prototype.updateSeriesHovered = function (arg) {\r\n var _a, _b;\r\n // Flag to prevent re-entrancy\r\n if (this.preventReentrancy) {\r\n return;\r\n }\r\n if (arg.hovered) {\r\n this.hoveredSeries.push(arg.sourceSeries);\r\n // Raise the selectionChanged event\r\n (_a = this.hoverChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new HoveredChangedArgs_1.HoveredChangedArgs(this, this.hoveredSeries, this.getAllSeries(), undefined));\r\n }\r\n else {\r\n this.hoveredSeries = (0, array_1.arrayRemove)(this.hoveredSeries, arg.sourceSeries);\r\n // Raise the selectionChanged event after series deselected\r\n (_b = this.hoverChanged) === null || _b === void 0 ? void 0 : _b.raiseEvent(new HoveredChangedArgs_1.HoveredChangedArgs(this, this.hoveredSeries, this.getAllSeries(), undefined));\r\n }\r\n };\r\n return SeriesSelectionModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.SeriesSelectionModifier = SeriesSelectionModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VerticalSliceModifier = void 0;\r\nvar RolloverModifier_1 = require(\"./RolloverModifier\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar Point_1 = require(\"../../Core/Point\");\r\nvar MousePosition_1 = require(\"../../types/MousePosition\");\r\nvar RolloverModifierRenderableSeriesProps_1 = require(\"../Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps\");\r\nvar AnnotationBase_1 = require(\"../Visuals/Annotations/AnnotationBase\");\r\nvar SeriesType_1 = require(\"../../types/SeriesType\");\r\nvar constants_1 = require(\"./constants\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar VerticalSliceModifier = /** @class */ (function (_super) {\r\n __extends(VerticalSliceModifier, _super);\r\n function VerticalSliceModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.xCoordinateModeProperty = AnnotationBase_1.ECoordinateMode.Pixel;\r\n _this.isDraggableProperty = false;\r\n _this.rmrsProps = new Map();\r\n _this.rmrsProps1 = new Map();\r\n // @ts-ignore\r\n _this.type = ChartModifierType_1.EChart2DModifierType.VerticalSlice;\r\n _this.x1Property = (_a = options.x1) !== null && _a !== void 0 ? _a : 0;\r\n _this.mousePosition = MousePosition_1.EMousePosition.SeriesArea;\r\n _this.xCoordinateModeProperty = (_b = options.xCoordinateMode) !== null && _b !== void 0 ? _b : _this.xCoordinateModeProperty;\r\n _this.isDraggableProperty = (_c = options.isDraggable) !== null && _c !== void 0 ? _c : _this.isDraggableProperty;\r\n _this.lineSelectionColorProperty = options.lineSelectionColor;\r\n _this.rolloverLineAnnotation.isEditable = _this.isDraggableProperty;\r\n _this.rolloverLineAnnotation.selectionBoxStroke = _this.lineSelectionColor;\r\n return _this;\r\n }\r\n Object.defineProperty(VerticalSliceModifier.prototype, \"x1\", {\r\n // properties - only update if changed\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.x1Property;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (value !== this.x1Property) {\r\n this.x1Property = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X1);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(VerticalSliceModifier.prototype, \"xCoordinateMode\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.xCoordinateModeProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (value !== this.xCoordinateModeProperty) {\r\n this.xCoordinateModeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X_COORDINATE_MODE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(VerticalSliceModifier.prototype, \"verticalLine\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n // read only\r\n return this.rolloverLineAnnotation;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(VerticalSliceModifier.prototype, \"isDraggable\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isDraggableProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (value != this.isDraggableProperty) {\r\n this.isDraggableProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_DRAGGABLE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(VerticalSliceModifier.prototype, \"lineSelectionColor\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.lineSelectionColorProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (value != this.lineSelectionColorProperty) {\r\n this.lineSelectionColorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LINE_SELECTION_COLOR);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n VerticalSliceModifier.prototype.modifierMouseMove = function (args) {\r\n //this.lastPoint = args.mousePoint;\r\n if (this.rolloverLineAnnotation.isDraggingStarted) {\r\n this.mousePoint = new Point_1.Point(args.mousePoint.x, args.mousePoint.y);\r\n var x = this.isVerticalChart() ? args.mousePoint.y : args.mousePoint.x;\r\n var xAxis = this.parentSurface.getXAxisById(this.xAxisId);\r\n var coordCalc = xAxis.getCurrentCoordinateCalculator();\r\n if (this.xCoordinateMode === AnnotationBase_1.ECoordinateMode.Pixel) {\r\n this.x1 = Math.min(Math.max(xAxis.viewRect.left, (0, translate_1.translateToNotScaled)(x)), xAxis.viewRect.right);\r\n }\r\n else if (this.xCoordinateMode === AnnotationBase_1.ECoordinateMode.Relative) {\r\n var newX = (x - (this.isVerticalChart() ? xAxis.viewRect.top : xAxis.viewRect.left)) /\r\n coordCalc.viewportDimension;\r\n this.x1 = Math.min(Math.max(0, newX), 1);\r\n }\r\n else {\r\n // DataValue\r\n var xt = this.isVerticalChart()\r\n ? (0, translate_1.translateFromCanvasToSeriesViewRectY)(x, this.parentSurface.seriesViewRect)\r\n : (0, translate_1.translateFromCanvasToSeriesViewRectX)(x, this.parentSurface.seriesViewRect);\r\n var newX = coordCalc.getDataValue(xt);\r\n if (!isNaN(newX)) {\r\n this.x1 = newX;\r\n }\r\n }\r\n // Consider optional snap to dataPoint here\r\n this.update();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n VerticalSliceModifier.prototype.modifierMouseLeave = function (args) {\r\n // do nothing, keep showing modifier\r\n };\r\n VerticalSliceModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n x1: this.x1,\r\n xCoordinateMode: this.xCoordinateMode,\r\n isDraggable: this.isDraggable,\r\n lineSelectionColor: this.lineSelectionColor\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n VerticalSliceModifier.prototype.getRolloverProps = function (rs) {\r\n return this.rmrsProps.get(rs);\r\n };\r\n VerticalSliceModifier.prototype.getRolloverProps1 = function (rs) {\r\n return this.rmrsProps.get(rs);\r\n };\r\n VerticalSliceModifier.prototype.removeSeriesAnnotationsFromParentSurface = function (rs) {\r\n _super.prototype.removeSeriesAnnotationsFromParentSurface.call(this, rs); // will remove annotation\r\n // clean up the dictionary\r\n this.rmrsProps.get(rs).delete();\r\n this.rmrsProps.delete(rs);\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n this.rmrsProps1.get(rs).delete();\r\n this.rmrsProps1.delete(rs);\r\n }\r\n };\r\n /**\r\n * @param rs\r\n */\r\n VerticalSliceModifier.prototype.addSeriesAnnotationsToParentSurface = function (rs) {\r\n var props = new RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps(rs, false); // true for second in band\r\n RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps.copy(rs.rolloverModifierProps, props);\r\n this.rmrsProps.set(rs, props);\r\n if (rs.type === SeriesType_1.ESeriesType.BandSeries) {\r\n var props1 = new RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps(rs, false); // true for second in band\r\n RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps.copy(rs.rolloverModifierProps1, props1);\r\n this.rmrsProps1.set(rs, props1);\r\n }\r\n _super.prototype.addSeriesAnnotationsToParentSurface.call(this, rs);\r\n };\r\n VerticalSliceModifier.prototype.createLine = function (options) {\r\n var line = _super.prototype.createLine.call(this, options);\r\n line.annotationsGripsRadius = 0;\r\n // @ts-ignore\r\n //line.updateAdornerInner = () => {};\r\n return line;\r\n };\r\n VerticalSliceModifier.prototype.update = function () {\r\n this.calculateXPosition();\r\n this.updateLine();\r\n this.updateSeriesAnnotations();\r\n Array.from(this.rmrsProps.values()).forEach(function (rmrsp) {\r\n if (!rmrsp.renderableSeries.isVisible || !rmrsp.showRollover) {\r\n rmrsp.tooltip.isHidden = true;\r\n rmrsp.marker.isHidden = true;\r\n }\r\n });\r\n if (this.tooltipLegendTemplate) {\r\n this.legendAnnotation.seriesInfos = this.getSeriesInfos();\r\n }\r\n };\r\n /** @inheritDoc */\r\n VerticalSliceModifier.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n // take action when property programmatically changed\r\n switch (propertyName) {\r\n case constants_1.PROPERTY.X1: {\r\n this.calculateXPosition();\r\n break;\r\n }\r\n case constants_1.PROPERTY.X_COORDINATE_MODE: {\r\n this.calculateXPosition();\r\n break;\r\n }\r\n case constants_1.PROPERTY.IS_DRAGGABLE: {\r\n this.rolloverLineAnnotation.isEditable = this.isDraggableProperty;\r\n break;\r\n }\r\n }\r\n };\r\n VerticalSliceModifier.prototype.calculateXPosition = function () {\r\n // will need to recalculate mousepoint.x\r\n var xAxis = this.parentSurface.getXAxisById(this.xAxisId);\r\n var isVertical = this.isVerticalChart();\r\n if (xAxis) {\r\n var xCalc = xAxis.getCurrentCoordinateCalculator();\r\n // @ts-ignore\r\n var x1v = this.rolloverLineAnnotation.getCoordinate(this.x1Property, xCalc, this.xCoordinateModeProperty);\r\n if (this.xCoordinateMode === AnnotationBase_1.ECoordinateMode.Relative ||\r\n this.xCoordinateMode === AnnotationBase_1.ECoordinateMode.DataValue) {\r\n x1v = x1v + (isVertical ? xAxis.viewRect.top : xAxis.viewRect.left);\r\n }\r\n // pick a y value in the view area\r\n var y1v = isVertical\r\n ? this.parentSurface.seriesViewRect.width / 2\r\n : this.parentSurface.seriesViewRect.height / 2;\r\n this.mousePoint = isVertical ? new Point_1.Point(y1v, x1v) : new Point_1.Point(x1v, y1v);\r\n }\r\n };\r\n return VerticalSliceModifier;\r\n}(RolloverModifier_1.RolloverModifier));\r\nexports.VerticalSliceModifier = VerticalSliceModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XAxisDragModifier = void 0;\r\nvar CursorStyle_1 = require(\"../../types/CursorStyle\");\r\nvar DragMode_1 = require(\"../../types/DragMode\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar AxisBase2D_1 = require(\"../Visuals/Axis/AxisBase2D\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\n/**\r\n * The XAxisDragModifier provides scaling/panning behavior for X axis {@link AxisBase2D}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the XAxisDragModifier to a {@link SciChartSurface} and add scaling behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * sciChartSurface.chartModifiers.add(new XAxisDragModifier());\r\n * ```\r\n */\r\nvar XAxisDragModifier = /** @class */ (function (_super) {\r\n __extends(XAxisDragModifier, _super);\r\n /**\r\n * Creates an instance of a XAxisDragModifier\r\n * @param options optional parameters to pass to the XAxisDragModifier to configure it upon construction\r\n */\r\n function XAxisDragModifier(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.XAxisDrag;\r\n _this.dragMode = DragMode_1.EDragMode.Scaling;\r\n _this.isClickedOverXAxis = false;\r\n _this.isVerticalChart = false;\r\n _this.cursorStyle = CursorStyle_1.ECursorStyle.Defalut;\r\n _this.includedSeriesMapProperty = new Map();\r\n _this.dragMode = (_a = options === null || options === void 0 ? void 0 : options.dragMode) !== null && _a !== void 0 ? _a : _this.dragMode;\r\n (_b = options === null || options === void 0 ? void 0 : options.excludedAxisIds) === null || _b === void 0 ? void 0 : _b.forEach(function (id) {\r\n _this.includedSeriesMapProperty.set(id, false);\r\n });\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n XAxisDragModifier.prototype.includeAxis = function (axis, isIncluded) {\r\n Guard_1.Guard.notNull(axis, \"axis\");\r\n if (!isIncluded) {\r\n this.includedSeriesMapProperty.set(axis.id, isIncluded);\r\n }\r\n if (isIncluded) {\r\n this.includedSeriesMapProperty.delete(axis.id);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n XAxisDragModifier.prototype.getIncludedAxis = function () {\r\n var _this = this;\r\n var _a, _b;\r\n return ((_b = (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.xAxes.asArray().filter(function (axis) { return _this.includedSeriesMapProperty.get(axis.id) !== false; })) !== null && _b !== void 0 ? _b : []);\r\n };\r\n Object.defineProperty(XAxisDragModifier.prototype, \"includedAxisMap\", {\r\n /**\r\n * Used internally for tests. Gets a Map of included Axis\r\n * @remarks Axis include flag set to false means excluded. Axis not present or flag=true means included\r\n */\r\n get: function () {\r\n return this.includedSeriesMapProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n XAxisDragModifier.prototype.modifierMouseDown = function (args) {\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call XAxisDragModifier.modifierMouseDown if not attached\");\r\n }\r\n if ((0, ChartModifierBase2D_1.testIsOverAxes)(this.getHorizontalXAxes(), args.mousePoint)) {\r\n // Horizontal chart\r\n this.isVerticalChart = false;\r\n this.startDragging(this.getHorizontalXAxes(), args);\r\n }\r\n else if ((0, ChartModifierBase2D_1.testIsOverAxes)(this.getVerticalXAxes(), args.mousePoint)) {\r\n // Vertical chart\r\n this.isVerticalChart = true;\r\n this.startDragging(this.getVerticalXAxes(), args);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n XAxisDragModifier.prototype.modifierMouseMove = function (args) {\r\n if (this.isClickedOverXAxis) {\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n if (this.pointFrom === undefined) {\r\n return;\r\n }\r\n if (this.dragMode === DragMode_1.EDragMode.Panning) {\r\n this.doPanning(args.mousePoint);\r\n }\r\n else if (this.dragMode === DragMode_1.EDragMode.Scaling) {\r\n this.doScaling(args.mousePoint);\r\n }\r\n }\r\n else {\r\n this.updateCursor(args.mousePoint);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n XAxisDragModifier.prototype.modifierMouseUp = function (args) {\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n this.updateCursor(args.mousePoint);\r\n this.pointFrom = undefined;\r\n this.isClickedOverXAxis = false;\r\n };\r\n XAxisDragModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n dragMode: this.dragMode,\r\n excludedAxisIds: Array.from(this.includedSeriesMapProperty.entries())\r\n .filter(function (e) { return !e[1]; })\r\n .map(function (e) { return e[0]; })\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n XAxisDragModifier.prototype.updateCursor = function (mousePoint) {\r\n var canvas = this.parentSurface.getMainCanvas();\r\n if ((0, ChartModifierBase2D_1.testIsOverAxes)(this.getHorizontalXAxes(), mousePoint)) {\r\n if (this.cursorStyle !== CursorStyle_1.ECursorStyle.EW) {\r\n canvas.style.cursor = CursorStyle_1.ECursorStyle.EW;\r\n this.cursorStyle = CursorStyle_1.ECursorStyle.EW;\r\n }\r\n }\r\n else if ((0, ChartModifierBase2D_1.testIsOverAxes)(this.getVerticalXAxes(), mousePoint)) {\r\n if (this.cursorStyle !== CursorStyle_1.ECursorStyle.NS) {\r\n canvas.style.cursor = CursorStyle_1.ECursorStyle.NS;\r\n this.cursorStyle = CursorStyle_1.ECursorStyle.NS;\r\n }\r\n }\r\n else {\r\n if (this.cursorStyle !== CursorStyle_1.ECursorStyle.Defalut) {\r\n canvas.style.cursor = CursorStyle_1.ECursorStyle.Defalut;\r\n this.cursorStyle = CursorStyle_1.ECursorStyle.Defalut;\r\n }\r\n }\r\n };\r\n XAxisDragModifier.prototype.doPanning = function (mousePoint) {\r\n var pointTo = mousePoint;\r\n if (this.isVerticalChart) {\r\n var yDelta_1 = pointTo.y - this.pointFrom.y;\r\n this.activeAxes.forEach(function (x) {\r\n var delta = x.flippedCoordinates ? -yDelta_1 : yDelta_1;\r\n x.scroll(delta, AxisBase2D_1.EClipMode.None);\r\n });\r\n }\r\n else {\r\n var xDelta_1 = pointTo.x - this.pointFrom.x;\r\n this.activeAxes.forEach(function (x) {\r\n var delta = x.flippedCoordinates ? -xDelta_1 : xDelta_1;\r\n x.scroll(delta, AxisBase2D_1.EClipMode.None);\r\n });\r\n }\r\n this.pointFrom = pointTo;\r\n };\r\n XAxisDragModifier.prototype.doScaling = function (pointTo) {\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n if (this.isVerticalChart) {\r\n var yFromTrans = (0, translate_1.translateFromCanvasToSeriesViewRectY)(this.pointFrom.y, seriesViewRect);\r\n var isMoreThanHalf = yFromTrans >= seriesViewRect.height / 2;\r\n var yDelta = (pointTo.y - this.pointFrom.y) / seriesViewRect.width;\r\n (0, ChartModifierBase2D_1.scaleAxes)(this.activeAxes, this.initialVisibleRanges, yDelta, isMoreThanHalf);\r\n }\r\n else {\r\n var xFromTrans = (0, translate_1.translateFromCanvasToSeriesViewRectX)(this.pointFrom.x, seriesViewRect);\r\n var isMoreThanHalf = xFromTrans >= seriesViewRect.width / 2;\r\n var xDelta = (pointTo.x - this.pointFrom.x) / seriesViewRect.width;\r\n (0, ChartModifierBase2D_1.scaleAxes)(this.activeAxes, this.initialVisibleRanges, xDelta, isMoreThanHalf);\r\n }\r\n };\r\n XAxisDragModifier.prototype.getHorizontalXAxes = function () {\r\n return this.getIncludedAxis().filter(function (el) { return el.isHorizontalAxis; });\r\n };\r\n XAxisDragModifier.prototype.getVerticalXAxes = function () {\r\n return this.getIncludedAxis().filter(function (el) { return !el.isHorizontalAxis; });\r\n };\r\n XAxisDragModifier.prototype.startDragging = function (axes, args) {\r\n this.isClickedOverXAxis = true;\r\n var activeAxes = (0, ChartModifierBase2D_1.getActiveAxes)(axes, args.mousePoint);\r\n var initialVisibleRanges = [];\r\n activeAxes.forEach(function (el) {\r\n initialVisibleRanges.push(el.visibleRange);\r\n });\r\n this.activeAxes = activeAxes;\r\n this.initialVisibleRanges = initialVisibleRanges;\r\n this.pointFrom = args.mousePoint;\r\n args.handled = true;\r\n };\r\n return XAxisDragModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.XAxisDragModifier = XAxisDragModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.YAxisDragModifier = void 0;\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar CursorStyle_1 = require(\"../../types/CursorStyle\");\r\nvar DragMode_1 = require(\"../../types/DragMode\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar AxisBase2D_1 = require(\"../Visuals/Axis/AxisBase2D\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\n/**\r\n * The YAxisDragModifier provides scaling/panning behavior for Y axis {@link AxisBase2D}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the YAxisDragModifier to a {@link SciChartSurface} and add scaling behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * sciChartSurface.chartModifiers.add(new YAxisDragModifier());\r\n * ```\r\n */\r\nvar YAxisDragModifier = /** @class */ (function (_super) {\r\n __extends(YAxisDragModifier, _super);\r\n /**\r\n * Creates an instance of a XAxisDragModifier\r\n * @param options optional parameters to pass to the XAxisDragModifier to configure it upon construction\r\n */\r\n function YAxisDragModifier(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.YAxisDrag;\r\n _this.dragMode = DragMode_1.EDragMode.Scaling;\r\n _this.isClickedOverYAxis = false;\r\n _this.isVerticalChart = false;\r\n _this.cursorStyle = CursorStyle_1.ECursorStyle.Defalut;\r\n _this.includedSeriesMapProperty = new Map();\r\n _this.dragMode = (_a = options === null || options === void 0 ? void 0 : options.dragMode) !== null && _a !== void 0 ? _a : _this.dragMode;\r\n (_b = options === null || options === void 0 ? void 0 : options.excludedAxisIds) === null || _b === void 0 ? void 0 : _b.forEach(function (id) {\r\n _this.includedSeriesMapProperty.set(id, false);\r\n });\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n YAxisDragModifier.prototype.includeAxis = function (axis, isIncluded) {\r\n if (!isIncluded) {\r\n this.includedSeriesMapProperty.set(axis.id, isIncluded);\r\n }\r\n if (isIncluded) {\r\n this.includedSeriesMapProperty.delete(axis.id);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n YAxisDragModifier.prototype.getIncludedAxis = function () {\r\n var _this = this;\r\n var _a, _b;\r\n return ((_b = (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.yAxes.asArray().filter(function (axis) { return _this.includedSeriesMapProperty.get(axis.id) !== false; })) !== null && _b !== void 0 ? _b : []);\r\n };\r\n Object.defineProperty(YAxisDragModifier.prototype, \"includedAxisMap\", {\r\n /**\r\n * Used internally for tests. Gets a Map of included Axis\r\n * @remarks Axis include flag set to false means excluded. Axis not present or flag=true means included\r\n */\r\n get: function () {\r\n return this.includedSeriesMapProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n YAxisDragModifier.prototype.modifierMouseDown = function (args) {\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call YAxisDragModifier.modifierMouseDown if not attached\");\r\n }\r\n if ((0, ChartModifierBase2D_1.testIsOverAxes)(this.getVerticalYAxes(), args.mousePoint)) {\r\n // Horizontal chart\r\n this.isVerticalChart = false;\r\n this.startDragging(this.getVerticalYAxes(), args);\r\n }\r\n else if ((0, ChartModifierBase2D_1.testIsOverAxes)(this.getHorizontalYAxes(), args.mousePoint)) {\r\n // Vertical chart\r\n this.isVerticalChart = true;\r\n this.startDragging(this.getHorizontalYAxes(), args);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n YAxisDragModifier.prototype.modifierMouseMove = function (args) {\r\n if (this.isClickedOverYAxis) {\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n if (this.pointFrom === undefined) {\r\n return;\r\n }\r\n if (this.dragMode === DragMode_1.EDragMode.Panning) {\r\n this.doPanning(args.mousePoint);\r\n }\r\n else if (this.dragMode === DragMode_1.EDragMode.Scaling) {\r\n this.doScaling(args.mousePoint);\r\n }\r\n }\r\n else {\r\n this.updateCursor(args.mousePoint);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n YAxisDragModifier.prototype.modifierMouseUp = function (args) {\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n this.updateCursor(args.mousePoint);\r\n this.pointFrom = undefined;\r\n this.isClickedOverYAxis = false;\r\n };\r\n YAxisDragModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n dragMode: this.dragMode,\r\n excludedAxisIds: Array.from(this.includedSeriesMapProperty.entries())\r\n .filter(function (e) { return !e[1]; })\r\n .map(function (e) { return e[0]; })\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n YAxisDragModifier.prototype.updateCursor = function (mousePoint) {\r\n var canvas = this.parentSurface.getMainCanvas();\r\n if ((0, ChartModifierBase2D_1.testIsOverAxes)(this.getVerticalYAxes(), mousePoint)) {\r\n if (this.cursorStyle !== CursorStyle_1.ECursorStyle.NS) {\r\n canvas.style.cursor = CursorStyle_1.ECursorStyle.NS;\r\n this.cursorStyle = CursorStyle_1.ECursorStyle.NS;\r\n }\r\n }\r\n else if ((0, ChartModifierBase2D_1.testIsOverAxes)(this.getHorizontalYAxes(), mousePoint)) {\r\n if (this.cursorStyle !== CursorStyle_1.ECursorStyle.EW) {\r\n canvas.style.cursor = CursorStyle_1.ECursorStyle.EW;\r\n this.cursorStyle = CursorStyle_1.ECursorStyle.EW;\r\n }\r\n }\r\n else {\r\n if (this.cursorStyle !== CursorStyle_1.ECursorStyle.Defalut) {\r\n canvas.style.cursor = CursorStyle_1.ECursorStyle.Defalut;\r\n this.cursorStyle = CursorStyle_1.ECursorStyle.Defalut;\r\n }\r\n }\r\n };\r\n YAxisDragModifier.prototype.doPanning = function (mousePoint) {\r\n var pointTo = mousePoint;\r\n if (this.isVerticalChart) {\r\n var xDelta_1 = pointTo.x - this.pointFrom.x;\r\n this.activeAxes.forEach(function (y) {\r\n var delta = y.flippedCoordinates ? xDelta_1 : -xDelta_1;\r\n y.scroll(delta, AxisBase2D_1.EClipMode.None);\r\n });\r\n }\r\n else {\r\n var yDelta_1 = pointTo.y - this.pointFrom.y;\r\n this.activeAxes.forEach(function (y) {\r\n var delta = y.flippedCoordinates ? yDelta_1 : -yDelta_1;\r\n y.scroll(delta, AxisBase2D_1.EClipMode.None);\r\n });\r\n }\r\n this.pointFrom = pointTo;\r\n };\r\n YAxisDragModifier.prototype.doScaling = function (pointTo) {\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n if (this.isVerticalChart) {\r\n var xFromTrans = (0, translate_1.translateFromCanvasToSeriesViewRectX)(this.pointFrom.x, seriesViewRect);\r\n var isMoreThanHalf = xFromTrans <= seriesViewRect.width / 2;\r\n var xDelta = -(pointTo.x - this.pointFrom.x) / seriesViewRect.width;\r\n (0, ChartModifierBase2D_1.scaleAxes)(this.activeAxes, this.initialVisibleRanges, xDelta, isMoreThanHalf);\r\n }\r\n else {\r\n var yFromTrans = (0, translate_1.translateFromCanvasToSeriesViewRectY)(this.pointFrom.y, seriesViewRect);\r\n var isMoreThanHalf = yFromTrans <= seriesViewRect.height / 2;\r\n var yDelta = -(pointTo.y - this.pointFrom.y) / seriesViewRect.height;\r\n (0, ChartModifierBase2D_1.scaleAxes)(this.activeAxes, this.initialVisibleRanges, yDelta, isMoreThanHalf);\r\n }\r\n };\r\n YAxisDragModifier.prototype.getVerticalYAxes = function () {\r\n return this.getIncludedAxis().filter(function (el) { return !el.isHorizontalAxis; });\r\n };\r\n YAxisDragModifier.prototype.getHorizontalYAxes = function () {\r\n return this.getIncludedAxis().filter(function (el) { return el.isHorizontalAxis; });\r\n };\r\n YAxisDragModifier.prototype.startDragging = function (axes, args) {\r\n this.isClickedOverYAxis = true;\r\n var activeAxes = (0, ChartModifierBase2D_1.getActiveAxes)(axes, args.mousePoint);\r\n var initialVisibleRanges = [];\r\n activeAxes.forEach(function (el) {\r\n initialVisibleRanges.push(el.visibleRange);\r\n });\r\n this.activeAxes = activeAxes;\r\n this.initialVisibleRanges = initialVisibleRanges;\r\n this.pointFrom = args.mousePoint;\r\n args.handled = true;\r\n };\r\n return YAxisDragModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.YAxisDragModifier = YAxisDragModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ZoomExtentsModifier = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar EasingFunctions_1 = require(\"../../Core/Animations/EasingFunctions\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar XyDirection_1 = require(\"../../types/XyDirection\");\r\nvar ZoomState_1 = require(\"../../types/ZoomState\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar ChartModifierBase2D_1 = require(\"./ChartModifierBase2D\");\r\n/**\r\n * The ZoomExtentsModifier provides double-tap or double-click to zoom-to-fit (Zoom Extents) behavior\r\n * on a 2D {@link SciChartSurface} within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the ZoomExtentsModifier to a {@link SciChartSurface} and add drag to zoom behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new ZoomExtentsModifier());\r\n * ```\r\n *\r\n * Animation of the zoom extents be controlled via the {@link ZoomExtentsModifier.isAnimated},\r\n * {@link ZoomExtentsModifier.animationDuration} and {@link ZoomExtentsModifier.easingFunction} properties.\r\n */\r\nvar ZoomExtentsModifier = /** @class */ (function (_super) {\r\n __extends(ZoomExtentsModifier, _super);\r\n function ZoomExtentsModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e;\r\n _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.ZoomExtents;\r\n /**\r\n * When true, the Zoom operations are animated. See also {@link animationDuration} and {@link easingFunction}\r\n */\r\n _this.isAnimated = true;\r\n /**\r\n * Defines the duration of animations when zooming in milliseconds\r\n */\r\n _this.animationDuration = 400;\r\n /**\r\n * Defines the easing function for animation. See {@link TEasingFn} for a range of functions\r\n */\r\n _this.easingFunction = EasingFunctions_1.easing.outExpo;\r\n /**\r\n * Whether the modifier applies when the mouse is over the area where series are drawn (ie not over the axes). Default true.\r\n */\r\n _this.applyToSeriesViewRect = true;\r\n /**\r\n * Whether the modifier applies when the mouse is over the axes. Default true.\r\n */\r\n _this.applyToAxes = true;\r\n _this.isAnimated = (_a = options === null || options === void 0 ? void 0 : options.isAnimated) !== null && _a !== void 0 ? _a : _this.isAnimated;\r\n _this.animationDuration = (_b = options === null || options === void 0 ? void 0 : options.animationDuration) !== null && _b !== void 0 ? _b : _this.animationDuration;\r\n _this.applyToSeriesViewRect = (_c = options === null || options === void 0 ? void 0 : options.applyToSeriesViewRect) !== null && _c !== void 0 ? _c : _this.applyToSeriesViewRect;\r\n _this.applyToAxes = (_d = options === null || options === void 0 ? void 0 : options.applyToAxes) !== null && _d !== void 0 ? _d : _this.applyToAxes;\r\n if ((options === null || options === void 0 ? void 0 : options.easingFunction) && typeof options.easingFunction === \"string\") {\r\n options.easingFunction = EasingFunctions_1.easing[options.easingFunction];\r\n }\r\n _this.easingFunction = (_e = options === null || options === void 0 ? void 0 : options.easingFunction) !== null && _e !== void 0 ? _e : EasingFunctions_1.easing.outExpo;\r\n if (options === null || options === void 0 ? void 0 : options.onZoomExtents) {\r\n if (typeof options.onZoomExtents === \"string\") {\r\n _this.typeMap.set(\"onZoomExtents\", options.onZoomExtents);\r\n options.onZoomExtents = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onZoomExtents);\r\n }\r\n }\r\n _this.onZoomExtents = options === null || options === void 0 ? void 0 : options.onZoomExtents;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ZoomExtentsModifier.prototype.modifierDoubleClick = function (args) {\r\n var _this = this;\r\n var scs = this.parentSurface;\r\n var animationDuration = this.isAnimated ? this.animationDuration : 0;\r\n if (scs !== undefined) {\r\n var zoomPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect);\r\n if (zoomPoint && this.applyToSeriesViewRect) {\r\n if (!this.onZoomExtents || this.onZoomExtents(scs)) {\r\n switch (this.xyDirection) {\r\n case XyDirection_1.EXyDirection.XyDirection:\r\n scs.zoomExtents(animationDuration, this.easingFunction, function () {\r\n return scs.setZoomState(ZoomState_1.EZoomState.AtExtents);\r\n });\r\n break;\r\n case XyDirection_1.EXyDirection.XDirection:\r\n scs.zoomExtentsX(animationDuration, this.easingFunction);\r\n break;\r\n case XyDirection_1.EXyDirection.YDirection:\r\n scs.zoomExtentsY(animationDuration, this.easingFunction);\r\n break;\r\n }\r\n args.handled = true;\r\n }\r\n }\r\n else if (this.applyToAxes) {\r\n var targetAxes = [];\r\n if ([XyDirection_1.EXyDirection.XDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n targetAxes.push.apply(targetAxes, this.parentSurface.xAxes.asArray());\r\n }\r\n if ([XyDirection_1.EXyDirection.YDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n targetAxes.push.apply(targetAxes, this.parentSurface.yAxes.asArray());\r\n }\r\n var activeAxes = (0, ChartModifierBase2D_1.getActiveAxes)(targetAxes, args.mousePoint);\r\n if (activeAxes.length > 0) {\r\n args.handled = true;\r\n activeAxes.forEach(function (axis) {\r\n if (axis.isXAxis) {\r\n var maxXRange = axis.getMaximumRange();\r\n axis.animateVisibleRange(maxXRange, animationDuration, _this.easingFunction);\r\n }\r\n else {\r\n var yRange = axis.getWindowedYRange(undefined);\r\n axis.animateVisibleRange(yRange, animationDuration, _this.easingFunction);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n ZoomExtentsModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n animationDuration: this.animationDuration,\r\n easingFunction: this.easingFunction.name,\r\n isAnimated: this.isAnimated,\r\n applyToSeriesViewRect: this.applyToSeriesViewRect,\r\n applyToAxes: this.applyToAxes,\r\n onZoomExtents: this.typeMap.get(\"onZoomExtents\")\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return ZoomExtentsModifier;\r\n}(ChartModifierBase2D_1.ChartModifierBase2D));\r\nexports.ZoomExtentsModifier = ZoomExtentsModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ZoomPanModifier = void 0;\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar XyDirection_1 = require(\"../../types/XyDirection\");\r\nvar ZoomState_1 = require(\"../../types/ZoomState\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar AxisBase2D_1 = require(\"../Visuals/Axis/AxisBase2D\");\r\nvar PinchZoomModifier_1 = require(\"./PinchZoomModifier\");\r\n/**\r\n * The ZoomPanModifier provides drag to pan behavior on a 2D {@link SciChartSurface}\r\n * as well as pinch zoom behavior on touchscreen devices\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n *\r\n * To apply the ZoomPanModifier to a {@link SciChartSurface} and add drag to pan behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * sciChartSurface.chartModifiers.add(new ZoomPanModifier());\r\n * ```\r\n */\r\nvar ZoomPanModifier = /** @class */ (function (_super) {\r\n __extends(ZoomPanModifier, _super);\r\n /**\r\n * Creates an instance of a ZoomPanModifier\r\n * @param options optional parameters to pass to the ZoomPanModifier to configure it upon construction\r\n */\r\n function ZoomPanModifier(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n /**\r\n * Sets whether to enable pinch zoom behavior of {@link SciChartSurface} on touchscreen devices\r\n */\r\n _this.enableZoom = false;\r\n _this.type = ChartModifierType_1.EChart2DModifierType.ZoomPan;\r\n _this.enableZoom = (_a = options === null || options === void 0 ? void 0 : options.enableZoom) !== null && _a !== void 0 ? _a : _this.enableZoom;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n ZoomPanModifier.prototype.modifierMouseDown = function (args) {\r\n // handles default browser dragging behavior when canvas was selected with Ctrl + A\r\n args.nativeEvent.preventDefault();\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call ZoomPanModifier.modifierMouseDown if not attached\");\r\n }\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n var translatedPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect);\r\n if (!translatedPoint) {\r\n return;\r\n }\r\n this.activePointerEvents.set(args.pointerId, args);\r\n this.parentSurface.setZoomState(ZoomState_1.EZoomState.UserZooming);\r\n };\r\n /** @inheritDoc */\r\n ZoomPanModifier.prototype.modifierMouseMove = function (args) {\r\n if (this.parentSurface.isSubSurface && !args.isActiveSubChartEvent) {\r\n return;\r\n }\r\n this.updatePointerInfo(args);\r\n if (!this.previousPoint) {\r\n return;\r\n }\r\n // use pinch zoom if enabled and triggered\r\n if (this.enableZoom && _super.prototype.getIsActionAllowed.call(this, args)) {\r\n _super.prototype.performModifierAction.call(this, args);\r\n }\r\n // execute pan if action was triggered\r\n var isActionAllowed = this.getIsActionAllowed(args);\r\n if (isActionAllowed) {\r\n this.performModifierAction(args);\r\n }\r\n };\r\n /** @inheritDoc */\r\n ZoomPanModifier.prototype.modifierMouseUp = function (args) {\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n // delegate drag and pan handling to the next active pointer in order of event occurrence\r\n if (this.activePointerEvents.size > 0) {\r\n var nextActivePointerEvent = this.activePointerEvents.values().next().value;\r\n args.target.setPointerCapture(nextActivePointerEvent.pointerId);\r\n }\r\n };\r\n /** @inheritDoc */\r\n ZoomPanModifier.prototype.modifierPointerCancel = function (args) {\r\n _super.prototype.modifierPointerCancel.call(this, args);\r\n this.activePointerEvents.clear();\r\n };\r\n ZoomPanModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n enableZoom: this.enableZoom\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n ZoomPanModifier.prototype.performModifierAction = function (args) {\r\n var currentPoint = args.mousePoint;\r\n var xDelta = currentPoint.x - this.previousPoint.x;\r\n var yDelta = this.previousPoint.y - currentPoint.y;\r\n this.performPan(xDelta, yDelta);\r\n };\r\n ZoomPanModifier.prototype.getIsActionAllowed = function (args) {\r\n // allow drag and pan only for the first active pointer in order of event occurrence\r\n var capturedPointerEvent = this.activePointerEvents.values().next().value;\r\n if (capturedPointerEvent.pointerId !== args.pointerId) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n ZoomPanModifier.prototype.performPan = function (xDelta, yDelta) {\r\n // TODO unify with other similar methods in other modifiers\r\n // Scroll the X,YAxis by the number of pixels since the last update\r\n // TODO: SciChartSurface.SuspendUpdates around this block\r\n if ([XyDirection_1.EXyDirection.XDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n this.getIncludedXAxis().forEach(function (x) {\r\n var delta = x.isHorizontalAxis ? xDelta : -yDelta;\r\n x.scroll(x.flippedCoordinates ? -delta : delta, AxisBase2D_1.EClipMode.None);\r\n });\r\n }\r\n if ([XyDirection_1.EXyDirection.YDirection, XyDirection_1.EXyDirection.XyDirection].includes(this.xyDirection)) {\r\n this.getIncludedYAxis().forEach(function (y) {\r\n var delta = y.isHorizontalAxis ? -xDelta : yDelta;\r\n y.scroll(y.flippedCoordinates ? -delta : delta, AxisBase2D_1.EClipMode.None);\r\n });\r\n }\r\n };\r\n return ZoomPanModifier;\r\n}(PinchZoomModifier_1.PinchZoomModifier));\r\nexports.ZoomPanModifier = ZoomPanModifier;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"ALLOWS_MULTI_SELECTION\"] = \"ALLOWS_MULTI_SELECTION\";\r\n PROPERTY[\"ALLOW_TOOLTIP_OVERLAPPING\"] = \"ALLOW_TOOLTIP_OVERLAPPING\";\r\n PROPERTY[\"CROSSHAIR_STROKE\"] = \"CROSSHAIR_STROKE\";\r\n PROPERTY[\"EXECUTE_ON\"] = \"EXECUTE_ON\";\r\n PROPERTY[\"FILL\"] = \"FILL\";\r\n PROPERTY[\"HIT_TEST_RADIUS\"] = \"HIT_TEST_RADIUS\";\r\n PROPERTY[\"IS_ATTACHED\"] = \"IS_ATTACHED\";\r\n PROPERTY[\"IS_ENABLED\"] = \"IS_ENABLED\";\r\n PROPERTY[\"PARENT_SURFACE\"] = \"PARENT_SURFACE\";\r\n PROPERTY[\"RECEIVE_HANDLED_EVENTS\"] = \"RECEIVE_HANDLED_EVENTS\";\r\n PROPERTY[\"SHOW_ROLLOVER_LINE\"] = \"SHOW_ROLLOVER_LINE\";\r\n PROPERTY[\"SHOW_TOOLTIP\"] = \"SHOW_TOOLTIP\";\r\n PROPERTY[\"SELECTED_AREA\"] = \"SELECTED_AREA\";\r\n PROPERTY[\"SELECTION_FILL\"] = \"SELECTION_FILL\";\r\n PROPERTY[\"SELECTION_STROKE\"] = \"SELECTION_STROKE\";\r\n PROPERTY[\"SELECTION_STROKE_THICKNESS\"] = \"SELECTION_STROKE_THICKNESS\";\r\n PROPERTY[\"STROKE\"] = \"STROKE\";\r\n PROPERTY[\"STROKE_THICKNESS\"] = \"STROKE_THICKNESS\";\r\n PROPERTY[\"STROKE_DASH_ARRAY\"] = \"STROKE_DASH_ARRAY\";\r\n PROPERTY[\"TOOLTIP_DATA_TEMPLATE\"] = \"TOOLTIP_DATA_TEMPLATE\";\r\n PROPERTY[\"X_AXIS_ID\"] = \"X_AXIS_ID\";\r\n PROPERTY[\"Y_AXIS_ID\"] = \"Y_AXIS_ID\";\r\n PROPERTY[\"PLACEMENT_DIV_ID\"] = \"PLACEMENT_DIV_ID\";\r\n PROPERTY[\"X_LINE\"] = \"X_LINE\";\r\n PROPERTY[\"Y_LINE\"] = \"Y_LINE\";\r\n PROPERTY[\"AXIS_LABELS\"] = \"AXIS_LABELS\";\r\n PROPERTY[\"X1\"] = \"X1\";\r\n PROPERTY[\"X_COORDINATE_MODE\"] = \"X_COORDINATE_MODE\";\r\n PROPERTY[\"IS_DRAGGABLE\"] = \"IS_DRAGGABLE\";\r\n PROPERTY[\"LINE_ANNOTATIONS_OPTIONS\"] = \"LINE_ANNOTATIONS_OPTIONS\";\r\n PROPERTY[\"LINE_SELECTION_COLOR\"] = \"LINE_SELECTION_COLOR\";\r\n PROPERTY[\"TOOLTIP_SHADOW\"] = \"TOOLTIP_SHADOW\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseCache = void 0;\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar MemoryUsageHelper_1 = require(\"../../utils/MemoryUsageHelper\");\r\nvar WebGlRenderContext2D_1 = require(\"./WebGlRenderContext2D\");\r\n/**\r\n * @ignore\r\n */\r\nvar BaseCache = /** @class */ (function (_super) {\r\n __extends(BaseCache, _super);\r\n /**\r\n * Creates an instance of {@link BaseCache}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n */\r\n function BaseCache(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n if (webAssemblyContext) {\r\n // add reference of the current instance to global collection of cached resources\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.add(_this);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(BaseCache.prototype, \"value\", {\r\n /**\r\n * Retrieves the cached value\r\n */\r\n get: function () {\r\n return this.cachedEntity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseCache.prototype.invalidateCache = function () {\r\n this.cachedEntity = (0, Deleter_1.deleteSafe)(this.cachedEntity);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseCache.prototype.resetCache = function () {\r\n this.invalidateCache();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseCache.prototype.delete = function () {\r\n var _this = this;\r\n this.cachedEntity = (0, Deleter_1.deleteSafe)(this.cachedEntity);\r\n // Is falsy if reference revoked by proxy\r\n // if (this.webAssemblyContext) {\r\n // remove reference of the current instance to global collection of cached resources\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.delete(this);\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n // resolve memory debug issue when comparing to proxy object\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.forEach(function (ref) {\r\n if (ref.resetCache === _this.resetCache) {\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.delete(ref);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n // }\r\n this.webAssemblyContext = undefined;\r\n };\r\n return BaseCache;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BaseCache = BaseCache;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BatchRenderContext = void 0;\r\nvar WebGlRenderContext2D_1 = require(\"./WebGlRenderContext2D\");\r\nvar BatchRenderContext = /** @class */ (function (_super) {\r\n __extends(BatchRenderContext, _super);\r\n function BatchRenderContext() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.doDraw = false;\r\n return _this;\r\n }\r\n BatchRenderContext.prototype.drawLayers = function () {\r\n if (this.doDraw) {\r\n _super.prototype.drawLayers.call(this);\r\n }\r\n };\r\n BatchRenderContext.prototype.endFonts = function (force) {\r\n if (force === void 0) { force = false; }\r\n if (this.doDraw || force) {\r\n _super.prototype.endFonts.call(this);\r\n }\r\n };\r\n return BatchRenderContext;\r\n}(WebGlRenderContext2D_1.WebGlRenderContext2D));\r\nexports.BatchRenderContext = BatchRenderContext;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createBrushInCache = exports.getScrtBrushFromCache = exports.getWebGlBrushFromCache = exports.BrushCache = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar createSolidBrush_1 = require(\"../Visuals/Helpers/createSolidBrush\");\r\nvar CanvasTexture_1 = require(\"../Visuals/TextureManager/CanvasTexture\");\r\nvar BaseCache_1 = require(\"./BaseCache\");\r\nvar WebGlBrush_1 = require(\"./WebGlBrush\");\r\n/** @ignore */\r\nvar TEXTURE_SIZE = 256;\r\n/**\r\n * @ignore\r\n */\r\nvar BrushCache = /** @class */ (function (_super) {\r\n __extends(BrushCache, _super);\r\n function BrushCache() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(BrushCache.prototype, \"value\", {\r\n get: function () {\r\n if (!this.cachedEntity && (this.fill || this.fillLinearGradient)) {\r\n this.cachedEntity = this.create(this.fill, this.opacity, this.textureHeightRatio, this.textureWidthRatio, this.fillLinearGradient);\r\n }\r\n return this.cachedEntity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Creates or fetches a new brush with the specified params\r\n * @param fill\r\n * @param opacity\r\n * @param textureHeightRatio\r\n * @param textureWidthRatio\r\n * @param fillLinearGradient\r\n */\r\n BrushCache.prototype.create = function (fill, opacity, textureHeightRatio, textureWidthRatio, fillLinearGradient) {\r\n if (this.cachedEntity &&\r\n fill === this.fill &&\r\n opacity === this.opacity &&\r\n textureHeightRatio === this.textureHeightRatio &&\r\n textureWidthRatio === this.textureWidthRatio &&\r\n fillLinearGradient === this.fillLinearGradient) {\r\n return this.cachedEntity;\r\n }\r\n this.invalidateCache();\r\n this.fill = fill;\r\n this.opacity = opacity;\r\n this.textureHeightRatio = textureHeightRatio;\r\n this.textureWidthRatio = textureWidthRatio;\r\n this.fillLinearGradient = fillLinearGradient;\r\n var brush = fillLinearGradient ? this.createGradientBrush() : this.createSolidBrush(fill, opacity);\r\n return (this.cachedEntity = new WebGlBrush_1.WebGlBrush(brush));\r\n };\r\n BrushCache.prototype.invalidateCache = function () {\r\n _super.prototype.invalidateCache.call(this);\r\n this.canvasTexture = (0, Deleter_1.deleteSafe)(this.canvasTexture);\r\n };\r\n BrushCache.prototype.reset = function () {\r\n this.invalidateCache();\r\n this.fill = undefined;\r\n this.opacity = undefined;\r\n this.fillLinearGradient = undefined;\r\n };\r\n BrushCache.prototype.delete = function () {\r\n this.invalidateCache();\r\n };\r\n BrushCache.prototype.createSolidBrush = function (htmlColorCode, opacity) {\r\n return (0, createSolidBrush_1.createSolidBrush)(this.webAssemblyContext, htmlColorCode, opacity);\r\n };\r\n BrushCache.prototype.createGradientBrush = function () {\r\n var gradientTexture = this.createGradientTexture().getTexture();\r\n return new this.webAssemblyContext.SCRTTextureBrush(gradientTexture, this.webAssemblyContext.eSCRTBrushMappingMode.PerPrimitive, 1);\r\n };\r\n BrushCache.prototype.createGradientTexture = function () {\r\n Guard_1.Guard.notNull(this.fillLinearGradient, \"fillLinearGradient\");\r\n var _a = this.fillLinearGradient, startPoint = _a.startPoint, endPoint = _a.endPoint, gradientStops = _a.gradientStops;\r\n this.canvasTexture = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, TEXTURE_SIZE, TEXTURE_SIZE);\r\n this.canvasTexture.clear();\r\n var ctx = this.canvasTexture.getContext();\r\n // BEGIN: Drawing gradient rectangle on canvas2D\r\n var x1 = convertRelativeToAbsolute(startPoint.x, TEXTURE_SIZE * this.textureWidthRatio);\r\n var y1 = convertRelativeToAbsolute(startPoint.y, TEXTURE_SIZE * this.textureHeightRatio);\r\n var x2 = convertRelativeToAbsolute(endPoint.x, TEXTURE_SIZE * this.textureWidthRatio);\r\n var y2 = convertRelativeToAbsolute(endPoint.y, TEXTURE_SIZE * this.textureHeightRatio);\r\n var gradient = ctx.createLinearGradient(x1, y1, x2, y2);\r\n gradientStops.forEach(function (el) {\r\n gradient.addColorStop(el.offset, el.color);\r\n });\r\n ctx.fillStyle = gradient;\r\n ctx.fillRect(0, 0, TEXTURE_SIZE, TEXTURE_SIZE);\r\n // END: Drawing gradient rectangle on canvas2D\r\n this.canvasTexture.copyTexture();\r\n return this.canvasTexture;\r\n };\r\n return BrushCache;\r\n}(BaseCache_1.BaseCache));\r\nexports.BrushCache = BrushCache;\r\n/**\r\n * Retrieves a native {@link WebGlBrush} Brush from the provided {@link BrushCache} cache object\r\n * @param BrushCache The object that stores a brush\r\n * @returns new or existing instance of {@link WebGlPen}}\r\n */\r\nvar getWebGlBrushFromCache = function (cache) {\r\n Guard_1.Guard.notNull(cache, \"cache\");\r\n return cache.value;\r\n};\r\nexports.getWebGlBrushFromCache = getWebGlBrushFromCache;\r\n// TODO: probably we should consider some approach to be consistent in using one of SCRTBrush or WebGlBrush\r\n/**\r\n * Retrieves a native {@link SCRTBrush} Brush from the provided {@link BrushCache} cache object.\r\n * The retrieved entity is a wrapper around {@link SCRTPen}\r\n * @param cache The object that stores a brush\r\n * @returns new or existing instance of {@link SCRTBrush}}\r\n */\r\nvar getScrtBrushFromCache = function (cache) {\r\n var webGlBrush = (0, exports.getWebGlBrushFromCache)(cache);\r\n return webGlBrush === null || webGlBrush === void 0 ? void 0 : webGlBrush.scrtBrush;\r\n};\r\nexports.getScrtBrushFromCache = getScrtBrushFromCache;\r\n/**\r\n * Creates a native {@link SCRTBrush} brush from html color code string passed in and caches it\r\n * @param cache The object that will store a brush\r\n * @param fill The HTML Color code\r\n * @param opacity The opacity factor.\r\n * @param textureHeightRatio The height ratio of the main canvas to the WebGl canvas.\r\n * @param textureWidthRatio The width ratio of the main canvas to the WebGl canvas.\r\n * @param fillGradientLinear The gradient params.\r\n * @returns new or existing instance of {@link SCRTBrush}}\r\n */\r\nvar createBrushInCache = function (cache, fill, opacity, textureHeightRatio, textureWidthRatio, fillGradientLinear) {\r\n Guard_1.Guard.notNull(cache, \"brushCache\");\r\n var brush = cache.create(fill, opacity, textureHeightRatio, textureWidthRatio, fillGradientLinear);\r\n return brush.scrtBrush;\r\n};\r\nexports.createBrushInCache = createBrushInCache;\r\n/** @ignore */\r\nvar convertRelativeToAbsolute = function (relativeValue, size) {\r\n return relativeValue * size;\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PaletteCache = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar BaseCache_1 = require(\"./BaseCache\");\r\n/**\r\n * @ignore\r\n */\r\nvar PaletteCache = /** @class */ (function (_super) {\r\n __extends(PaletteCache, _super);\r\n function PaletteCache() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(PaletteCache.prototype, \"value\", {\r\n get: function () {\r\n if (!this.cachedEntity && this.fillColors) {\r\n this.cachedEntity = this.create(this.fillColors);\r\n }\r\n return this.cachedEntity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Creates or fetches a new palette with the specified colors\r\n * @param fillColors\r\n */\r\n PaletteCache.prototype.create = function (fillColors) {\r\n if (this.cachedEntity && fillColors === this.fillColors) {\r\n return this.cachedEntity;\r\n }\r\n (0, Deleter_1.deleteSafe)(this.cachedEntity);\r\n this.fillColors = fillColors;\r\n // @ts-ignore\r\n return this.cachedEntity = new this.webAssemblyContext.SCRTCreatePalette(fillColors);\r\n };\r\n PaletteCache.prototype.reset = function () {\r\n this.invalidateCache();\r\n this.fillColors = undefined;\r\n };\r\n return PaletteCache;\r\n}(BaseCache_1.BaseCache));\r\nexports.PaletteCache = PaletteCache;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createPenInCache = exports.getScrtPenFromCache = exports.getWebGlPenFromCache = exports.Pen2DCache = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar array_1 = require(\"../../utils/array\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar createPen_1 = require(\"../Visuals/Helpers/createPen\");\r\nvar DpiHelper_1 = require(\"../Visuals/TextureManager/DpiHelper\");\r\nvar BaseCache_1 = require(\"./BaseCache\");\r\nvar WebGlPen_1 = require(\"./WebGlPen\");\r\n/**\r\n * @ignore\r\n */\r\nvar Pen2DCache = /** @class */ (function (_super) {\r\n __extends(Pen2DCache, _super);\r\n function Pen2DCache() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(Pen2DCache.prototype, \"value\", {\r\n get: function () {\r\n var shouldRecreatePen = !this.cachedEntity && this.stroke;\r\n if (shouldRecreatePen) {\r\n var _a = this, stroke = _a.stroke, strokeThickness = _a.strokeThickness, strokeDashArray = _a.strokeDashArray, antiAliased = _a.antiAliased, opacity = _a.opacity;\r\n this.cachedEntity = this.create({\r\n stroke: stroke,\r\n strokeThickness: strokeThickness,\r\n strokeDashArray: strokeDashArray,\r\n antiAliased: antiAliased,\r\n opacity: opacity\r\n });\r\n }\r\n return this.cachedEntity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Creates or fetches a new pen with the specified color string, stroke thickness and antialiased property\r\n * @param options\r\n */\r\n Pen2DCache.prototype.create = function (options) {\r\n var stroke = options.stroke, _a = options.strokeThickness, strokeThickness = _a === void 0 ? 1 : _a, strokeDashArray = options.strokeDashArray, _b = options.antiAliased, antiAliased = _b === void 0 ? true : _b, _c = options.opacity, opacity = _c === void 0 ? 1 : _c;\r\n var _d = DpiHelper_1.DpiHelper.adjustStrokeSize({ strokeThickness: strokeThickness, strokeDashArray: strokeDashArray }), adjustedStrokeThickness = _d.strokeThickness, adjustedStrokeDashArray = _d.strokeDashArray;\r\n // Return pen from cache\r\n if (this.cachedEntity &&\r\n stroke === this.stroke &&\r\n adjustedStrokeThickness === this.adjustedStrokeThickness &&\r\n antiAliased === this.antiAliased &&\r\n (0, array_1.areArraysEqual)(adjustedStrokeDashArray, this.adjustedStrokeDashArray)) {\r\n // optimization for opacity updates\r\n if (opacity !== this.opacity) {\r\n this.opacity = opacity;\r\n this.cachedEntity.setOpacity(opacity);\r\n }\r\n // ensure that original stroke size is cached\r\n this.strokeThickness = strokeThickness;\r\n this.strokeDashArray = strokeDashArray;\r\n return this.cachedEntity;\r\n }\r\n // Create new pen\r\n (0, Deleter_1.deleteSafe)(this.cachedEntity);\r\n this.stroke = stroke;\r\n this.opacity = opacity;\r\n this.antiAliased = antiAliased;\r\n this.strokeThickness = strokeThickness;\r\n this.adjustedStrokeThickness = adjustedStrokeThickness;\r\n this.strokeDashArray = strokeDashArray;\r\n this.adjustedStrokeDashArray = adjustedStrokeDashArray;\r\n var scrtPen = (0, createPen_1.createSCRTPen)(this.webAssemblyContext, stroke, adjustedStrokeThickness, opacity, adjustedStrokeDashArray, antiAliased);\r\n return (this.cachedEntity = new WebGlPen_1.WebGlPen(scrtPen, (0, parseColor_1.parseColorToUIntArgb)(stroke)));\r\n };\r\n return Pen2DCache;\r\n}(BaseCache_1.BaseCache));\r\nexports.Pen2DCache = Pen2DCache;\r\n// TODO: probably we should consider some approach to be consistent in using one of SCRTPen or WebGLPen\r\n/**\r\n * Retrieves a native {@link WebGlPen} Pen from the provided {@link Pen2DCache} cache object.\r\n * The retrieved entity is a wrapper around {@link SCRTPen}\r\n * @param penCache The object that stores a pen\r\n * @returns the new or existing instance of {@link WebGlPen}}\r\n */\r\nvar getWebGlPenFromCache = function (penCache) {\r\n Guard_1.Guard.notNull(penCache, \"penCache\");\r\n return penCache.value;\r\n};\r\nexports.getWebGlPenFromCache = getWebGlPenFromCache;\r\n/**\r\n * Retrieves a native {@link SCRTPen} Pen from the provided {@link Pen2DCache} cache object\r\n * @param penCache The object that stores a pen\r\n * @returns the new or existing instance of {@link SCRTPen}}\r\n */\r\nvar getScrtPenFromCache = function (penCache) {\r\n var webGlPen = (0, exports.getWebGlPenFromCache)(penCache);\r\n return webGlPen === null || webGlPen === void 0 ? void 0 : webGlPen.scrtPen;\r\n};\r\nexports.getScrtPenFromCache = getScrtPenFromCache;\r\n/**\r\n * Creates a native {@link SCRTPen} Pen from html color code string passed in and caches it\r\n * @param penCache The object that will store a pen\r\n * @param stroke The HTML Color code\r\n * @param strokeThickness The strokethickness in pixels\r\n * @param opacity The opacity factor\r\n * @param strokeDashArray the StrokeDashArray which defines any dash e.g. [2,2] means dash for 2pts, gap for 2pts (or undefined = solid line).\r\n * @returns the new or existing instance of {@link SCRTPen}}\r\n */\r\nvar createPenInCache = function (penCache, stroke, strokeThickness, opacity, strokeDashArray, antiAliased) {\r\n Guard_1.Guard.notNull(penCache, \"penCache\");\r\n var cachedPen = penCache.create({\r\n stroke: stroke,\r\n strokeThickness: strokeThickness,\r\n opacity: opacity,\r\n strokeDashArray: strokeDashArray,\r\n antiAliased: antiAliased\r\n });\r\n return cachedPen.scrtPen;\r\n};\r\nexports.createPenInCache = createPenInCache;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderContext2D = void 0;\r\n/**\r\n * The RenderContext2D provides methods for drawing to an {@link HTMLCanvasElement | Html5 Canvas}\r\n * This context class is used in SciChart's High Performance Realtime {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * to draw shapes, lines, fills, images and more\r\n */\r\nvar RenderContext2D = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the RenderContext2D\r\n * @param canvas2D the {@link HTMLCanvasElement} we are drawing to\r\n */\r\n function RenderContext2D(canvas2D) {\r\n this.canvas2D = canvas2D;\r\n this.ctx2D = canvas2D.getContext(\"2d\");\r\n }\r\n /**\r\n * Draws a rectangle to the specified location and with provided Htmlcolor string\r\n * @param x the X-location of the rectangle\r\n * @param y the Y-location of the rectangle\r\n * @param width the width of the rectangle\r\n * @param height the height of the rectangle\r\n * @param htmlColor the Html color code to fill the rectangle\r\n */\r\n RenderContext2D.prototype.drawRect = function (x, y, width, height, htmlColor) {\r\n if (htmlColor === void 0) { htmlColor = \"rgba(211,211,211,0.5)\"; }\r\n this.clear();\r\n this.ctx2D.fillStyle = htmlColor;\r\n this.ctx2D.fillRect(x, y, width, height);\r\n };\r\n /**\r\n * Draws a circle to the specified location and with provided Htmlcolor string\r\n * @param x the X-location of the rectangle\r\n * @param y the Y-location of the rectangle\r\n * @param radius the radius of the circle\r\n * @param fillHtmlColor the Html color code to fill the circle\r\n */\r\n RenderContext2D.prototype.drawCircle = function (x, y, radius, fillHtmlColor) {\r\n var strokeWidth = 0;\r\n var strokeHtmlColor = fillHtmlColor;\r\n this.clear();\r\n this.ctx2D.beginPath();\r\n this.ctx2D.arc(x, y, radius, 0, 2 * Math.PI, false);\r\n this.ctx2D.fillStyle = fillHtmlColor;\r\n this.ctx2D.fill();\r\n this.ctx2D.lineWidth = strokeWidth;\r\n this.ctx2D.strokeStyle = strokeHtmlColor;\r\n this.ctx2D.stroke();\r\n };\r\n /**\r\n * Clears the backing canvas element\r\n */\r\n RenderContext2D.prototype.clear = function () {\r\n this.ctx2D.clearRect(0, 0, this.canvas2D.width, this.canvas2D.height);\r\n };\r\n return RenderContext2D;\r\n}());\r\nexports.RenderContext2D = RenderContext2D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderSurface = void 0;\r\nvar app_1 = require(\"../../constants/app\");\r\nvar WebGlHelper_1 = require(\"../../Core/WebGlHelper\");\r\nvar WebGlRenderContext2D_1 = require(\"./WebGlRenderContext2D\");\r\n/**\r\n * @ignore\r\n */\r\nvar RenderSurface = /** @class */ (function () {\r\n function RenderSurface(webAssemblyContext, size, canvasId) {\r\n this.webAssemblyContext = webAssemblyContext;\r\n this.viewportSize = size;\r\n this.canvasId = canvasId;\r\n }\r\n RenderSurface.prototype.getRenderContext = function () {\r\n if (!this.renderContextProperty) {\r\n this.renderContextProperty = new WebGlRenderContext2D_1.WebGlRenderContext2D(this.webAssemblyContext, this.viewportSize, this.canvasId);\r\n }\r\n return this.renderContextProperty;\r\n };\r\n // Step_2: Something is changed and it calls invalidateElement\r\n RenderSurface.prototype.invalidateElement = function (canvasId) {\r\n var _a;\r\n if (app_1.IS_TEST_ENV) {\r\n // Don't try and draw in tests\r\n return;\r\n }\r\n //console.log(\"Invalidate\");\r\n // Prevent drawing request when WebGL context is lost\r\n if ((_a = WebGlHelper_1.WebGlHelper.getContext(this.webAssemblyContext.canvas)) === null || _a === void 0 ? void 0 : _a.isContextLost()) {\r\n return;\r\n }\r\n this.webAssemblyContext.TSRRequestCanvasDraw(canvasId);\r\n };\r\n // Step_3: TRSEngine call draw\r\n RenderSurface.prototype.onRenderTimeElapsed = function () {\r\n this.handleDraw();\r\n this.renderContextProperty = undefined;\r\n };\r\n return RenderSurface;\r\n}());\r\nexports.RenderSurface = RenderSurface;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SolidBrushCache = void 0;\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\n// TODO: this class can be removed and its usage replaced by BrushCache class\r\n/**\r\n * @ignore\r\n */\r\nvar SolidBrushCache = /** @class */ (function (_super) {\r\n __extends(SolidBrushCache, _super);\r\n function SolidBrushCache(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n return _this;\r\n }\r\n /**\r\n * Creates or fetches a new Brush with the specified color string and properties\r\n * @param color\r\n * @param transparent\r\n */\r\n SolidBrushCache.prototype.newBrush = function (color, transparent) {\r\n if (transparent === void 0) { transparent = false; }\r\n // Return brush from cache\r\n if (this.brush && color === this.color && transparent === this.transparent) {\r\n return this.brush;\r\n }\r\n // Create new brush\r\n if (this.brush) {\r\n this.brush.delete();\r\n }\r\n this.color = color;\r\n this.transparent = transparent;\r\n this.brush = new this.webAssemblyContext.SCRTSolidBrush((0, parseColor_1.parseColorToUIntArgb)(color), transparent);\r\n return this.brush;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SolidBrushCache.prototype.delete = function () {\r\n this.brush = (0, Deleter_1.deleteSafe)(this.brush);\r\n this.webAssemblyContext = undefined;\r\n };\r\n return SolidBrushCache;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.SolidBrushCache = SolidBrushCache;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextureCache = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar BaseCache_1 = require(\"./BaseCache\");\r\n/**\r\n * @ignore\r\n */\r\nvar TextureCache = /** @class */ (function (_super) {\r\n __extends(TextureCache, _super);\r\n /**\r\n * unlike the base class this one accepts both context\r\n * @param wasmContext TSciChart or TSciChart3D\r\n */\r\n function TextureCache(wasmContext) {\r\n var _this = _super.call(this, wasmContext) || this;\r\n _this.wasmContext = wasmContext;\r\n return _this;\r\n }\r\n Object.defineProperty(TextureCache.prototype, \"value\", {\r\n get: function () {\r\n if (!this.cachedEntity && this.textureFormat) {\r\n this.cachedEntity = this.create(this.width, this.height, this.textureFormat);\r\n }\r\n return this.cachedEntity;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Creates or fetches a new texture with the specified params\r\n * @param width\r\n * @param height\r\n * @param textureFormat\r\n */\r\n TextureCache.prototype.create = function (width, height, textureFormat) {\r\n if (this.cachedEntity &&\r\n width === this.width &&\r\n height === this.height &&\r\n textureFormat === this.textureFormat) {\r\n return this.cachedEntity;\r\n }\r\n this.cachedEntity = (0, Deleter_1.deleteSafe)(this.cachedEntity);\r\n this.width = width;\r\n this.height = height;\r\n this.textureFormat = textureFormat;\r\n this.cachedEntity = this.wasmContext.SCRTCreateBitmapTexture(this.width, this.height, textureFormat);\r\n return this.cachedEntity;\r\n };\r\n TextureCache.prototype.resetCache = function () {\r\n this.invalidateCache();\r\n this.width = undefined;\r\n this.height = undefined;\r\n this.textureFormat = undefined;\r\n };\r\n return TextureCache;\r\n}(BaseCache_1.BaseCache));\r\nexports.TextureCache = TextureCache;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WebGlBrush = void 0;\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * The WebGLBrush is a brush for polygon fills, rectangle fills, which can be passed to SciChart's WebGL / WebAssembly graphics engine\r\n */\r\nvar WebGlBrush = /** @class */ (function (_super) {\r\n __extends(WebGlBrush, _super);\r\n /**\r\n * Creates an instance of WebGlBrush\r\n * @param scrtBrush the inner {@link SCRTBrush} which can be passed to SciChart's WebAssembly WebGL engine\r\n */\r\n function WebGlBrush(scrtBrush) {\r\n var _this = _super.call(this) || this;\r\n _this.scrtBrushProperty = scrtBrush;\r\n return _this;\r\n }\r\n Object.defineProperty(WebGlBrush.prototype, \"scrtBrush\", {\r\n /**\r\n * Get the inner {@link SCRTBrush} which can be passed to SciChart's WebAssembly WebGL engine\r\n */\r\n get: function () {\r\n return this.scrtBrushProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlBrush.prototype.delete = function () {\r\n this.scrtBrushProperty = (0, Deleter_1.deleteSafe)(this.scrtBrushProperty);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlBrush.prototype.getBrushType = function () {\r\n return constants_1.EDrawingTypes.WasmBrush;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlBrush.prototype.setOpacity = function (opacity) {\r\n var _a;\r\n (_a = this.scrtBrushProperty) === null || _a === void 0 ? void 0 : _a.SetOpacity(opacity);\r\n };\r\n return WebGlBrush;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.WebGlBrush = WebGlBrush;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WebGlPen = void 0;\r\nvar app_1 = require(\"../../constants/app\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar colorUtil_1 = require(\"../../utils/colorUtil\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * The WebGlPen is a pen for polygon stroke, line strokes, which can be passed to SciChart's WebGL / WebAssembly graphics engine\r\n */\r\nvar WebGlPen = /** @class */ (function (_super) {\r\n __extends(WebGlPen, _super);\r\n /**\r\n * Creates an instance of WebGlPen\r\n * @param scrtPen the inner {@link SCRTPen} which can be passed to SciChart's WebAssembly WebGL engine\r\n * @param originalColor the original color which is used to change the opacity\r\n */\r\n function WebGlPen(scrtPen, originalColor) {\r\n var _this = _super.call(this) || this;\r\n _this.scrtPenProperty = scrtPen;\r\n _this.originalColor = originalColor !== null && originalColor !== void 0 ? originalColor : scrtPen === null || scrtPen === void 0 ? void 0 : scrtPen.m_uiColor;\r\n return _this;\r\n }\r\n Object.defineProperty(WebGlPen.prototype, \"scrtPen\", {\r\n /**\r\n * the inner {@link SCRTPen} which can be passed to SciChart's WebAssembly WebGL engine\r\n */\r\n get: function () {\r\n return this.scrtPenProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlPen.prototype.delete = function () {\r\n this.scrtPenProperty = (0, Deleter_1.deleteSafe)(this.scrtPenProperty);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlPen.prototype.getPenType = function () {\r\n return constants_1.EDrawingTypes.WasmPen;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlPen.prototype.setOpacity = function (opacity) {\r\n if (app_1.IS_TEST_ENV) {\r\n return;\r\n }\r\n this.scrtPen.m_uiColor = (0, colorUtil_1.uintArgbColorMultiplyOpacity)(this.originalColor, opacity);\r\n };\r\n return WebGlPen;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.WebGlPen = WebGlPen;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WebGlRenderContext2D = exports.ELineDrawMode = exports.calculateAbsoluteRenderLayer = void 0;\r\nvar app_1 = require(\"../../constants/app\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar createNativeRect_1 = require(\"../Visuals/Helpers/createNativeRect\");\r\nvar NativeObject_1 = require(\"../Visuals/Helpers/NativeObject\");\r\nvar WebGlBrush_1 = require(\"./WebGlBrush\");\r\nvar WebGlPen_1 = require(\"./WebGlPen\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\n/**\r\n *\r\n * @param step specifies the capacity of layers that could be potentially added between the default chart layers\r\n * @param offset layer z-order offset of the surface\r\n * @param relativeRenderLayer layer number relative to the specific surface layers\r\n * @returns absolute order of the layer on the chart (considering parent chart and previous subChart surface layers)\r\n */\r\nvar calculateAbsoluteRenderLayer = function (offset, step, relativeRenderLayer) {\r\n return offset + relativeRenderLayer * step;\r\n};\r\nexports.calculateAbsoluteRenderLayer = calculateAbsoluteRenderLayer;\r\n/**\r\n * Defines enumeration constants for Line Drawing modes\r\n */\r\nvar ELineDrawMode;\r\n(function (ELineDrawMode) {\r\n /**\r\n * Points provided define a poly-line (continuous line)\r\n */\r\n ELineDrawMode[ELineDrawMode[\"PolyLine\"] = 0] = \"PolyLine\";\r\n /**\r\n * Points provided define discontinuous lines, e.g. x1y1 x2y2 is one line, x3y3 x4y4 is the next\r\n */\r\n ELineDrawMode[ELineDrawMode[\"DiscontinuousLine\"] = 1] = \"DiscontinuousLine\";\r\n})(ELineDrawMode = exports.ELineDrawMode || (exports.ELineDrawMode = {}));\r\n/**\r\n * The WebGlRenderContext2D provides methods for drawing to a WebGL2 / WebAssembly canvas powered by SciChart's Visual Xccelerator engine.\r\n * This context class is used in SciChart's High Performance Realtime {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * to draw shapes, lines, fills, images and more\r\n */\r\nvar WebGlRenderContext2D = /** @class */ (function (_super) {\r\n __extends(WebGlRenderContext2D, _super);\r\n /**\r\n * Creates an instance of the WebGlRenderContext2D\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing native methods and access to our WebGL2 Engine\r\n * @param viewportSize The Viewport {@link Size}\r\n */\r\n function WebGlRenderContext2D(webAssemblyContext, viewportSize, canvasId) {\r\n var _this = _super.call(this) || this;\r\n _this.layers = {};\r\n _this.effects = [];\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.viewportSize = viewportSize;\r\n _this.canvasId = canvasId;\r\n return _this;\r\n }\r\n /**\r\n * Get the native {@link SCRTRenderContext} for direct access to SciChart's WebAssembly Visual Xccelerator engine\r\n */\r\n WebGlRenderContext2D.prototype.getNativeContext = function () {\r\n if (!this.nativeContext) {\r\n this.nativeContext = this.webAssemblyContext.SCRTGetMainRenderContext2D();\r\n }\r\n return this.nativeContext;\r\n };\r\n /**\r\n * Draw lines: grid lines, etc.\r\n * @param vertices\r\n * @param pen\r\n * @param lineDrawMode\r\n * @param left - offset in pixels from left, typically used for axes\r\n * @param top - offset in pixels from top, typically used for axes\r\n */\r\n WebGlRenderContext2D.prototype.drawLinesNative = function (vertices, pen, lineDrawMode, left, top) {\r\n if (left === void 0) { left = 0; }\r\n if (top === void 0) { top = 0; }\r\n var isStrips = lineDrawMode === ELineDrawMode.PolyLine;\r\n var nativeContext = this.getNativeContext();\r\n nativeContext.PushMatrix();\r\n nativeContext.Translate(left, top);\r\n nativeContext.DrawLinesBatchVec(isStrips, vertices, pen);\r\n nativeContext.PopMatrix();\r\n };\r\n /**\r\n * Draw rectangles: grid bands, etc.\r\n * @param vertices\r\n * @param brush\r\n * @param left - offset in pixels from left, typically used for axes\r\n * @param top - offset in pixels from top, typically used for axes\r\n */\r\n WebGlRenderContext2D.prototype.drawRects = function (vertices, brush, left, top) {\r\n if (left === void 0) { left = 0; }\r\n if (top === void 0) { top = 0; }\r\n var anchorParams = (0, NativeObject_1.getVector4)(this.webAssemblyContext, 0, 0, 0, 0);\r\n var nativeContext = this.getNativeContext();\r\n nativeContext.PushMatrix();\r\n nativeContext.Translate(left, top);\r\n nativeContext.DrawRectsBatchVec(vertices, brush, anchorParams);\r\n nativeContext.PopMatrix();\r\n };\r\n /**\r\n * Enqueues a draw operation to the specified layer. Use in combination with {@link drawLayers} to flush layered draws\r\n * @param drawFunction the {@link TDrawFunction | Draw Function} to enqueue\r\n * @param layer the {@link ERenderLayer | Layer} to draw to\r\n */\r\n WebGlRenderContext2D.prototype.enqueueLayeredDraw = function (drawFunction, layer) {\r\n if (!this.layers[layer]) {\r\n this.layers[layer] = [];\r\n }\r\n this.layers[layer].push(drawFunction);\r\n };\r\n /**\r\n * Flushes the {@link layers} which have been enqueued with drawing operations in order.\r\n * Use this in combination with {@link enqueueLayeredDraw} to draw in layers\r\n */\r\n WebGlRenderContext2D.prototype.drawLayers = function () {\r\n Object.values(this.layers).forEach(function (layerDrawFunctions) {\r\n layerDrawFunctions.forEach(function (drawFunc) { return drawFunc(); });\r\n });\r\n };\r\n /**\r\n * Applies a {@link ShaderEffect} to the rendering pipeline. Calling {@link WebGL2RenderingContext.popShaderEffect} pops the effect from the stack\r\n * reverting to normal drawing\r\n * @param effect the {@link ShaderEffect} to apply to subsequent draw operations\r\n */\r\n WebGlRenderContext2D.prototype.pushShaderEffect = function (effect) {\r\n if (effect) {\r\n this.effects.push(effect);\r\n if (!app_1.IS_TEST_ENV) {\r\n this.getNativeContext().AddSeriesEffect(effect.getNativeEffect());\r\n }\r\n }\r\n };\r\n /**\r\n * Pops a {@link ShaderEffect} from the rendering pipeline. Call {@link WebGL2RenderingContext.pushShaderEffect} to apply an effect\r\n */\r\n WebGlRenderContext2D.prototype.popShaderEffect = function () {\r\n var effect = this.effects.pop();\r\n if (effect && !app_1.IS_TEST_ENV) {\r\n this.getNativeContext().RemoveSeriesEffect(effect.getNativeEffect());\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlRenderContext2D.prototype.createPen = function (stroke, strokeThickness, strokeDashArray, antiAliased) {\r\n if (strokeDashArray === void 0) { strokeDashArray = []; }\r\n if (antiAliased === void 0) { antiAliased = true; }\r\n throw new Error(\"Use Pen2DCache for creating pens instead!\");\r\n if (app_1.IS_TEST_ENV || !stroke) {\r\n return undefined;\r\n }\r\n var colorInt = (0, parseColor_1.parseColorToUIntArgb)(stroke);\r\n if (isNaN(colorInt)) {\r\n throw new Error(\"Color code \".concat(stroke, \" cannot be converted to an ARGB integer\"));\r\n }\r\n var strokeDashFloatVector = new this.webAssemblyContext.FloatVector();\r\n if (strokeDashArray.length) {\r\n strokeDashArray.forEach(function (item) { return strokeDashFloatVector.push_back(item); });\r\n }\r\n return new WebGlPen_1.WebGlPen(this.webAssemblyContext.SCRTCreateDahedPen(colorInt, strokeThickness, antiAliased, strokeDashFloatVector));\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlRenderContext2D.prototype.createSolidBrush = function (fill, opacity) {\r\n throw new Error(\"Use BrushCache for creating brushes instead!\");\r\n if (app_1.IS_TEST_ENV || !fill) {\r\n return undefined;\r\n }\r\n var colorInt = (0, parseColor_1.parseColorToUIntArgb)(fill, opacity);\r\n var isTransparent = true;\r\n if (isNaN(colorInt)) {\r\n throw new Error(\"Color code \".concat(fill, \" cannot be converted to an ARGB integer\"));\r\n }\r\n return new WebGlBrush_1.WebGlBrush(new this.webAssemblyContext.SCRTSolidBrush(colorInt, isTransparent));\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlRenderContext2D.prototype.delete = function () {\r\n // Todo: Any cached items delete here\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlRenderContext2D.prototype.drawLine = function (x1, y1, x2, y2, pen, viewRect) {\r\n if (!x1 && !y1 && !x2 && !y2) {\r\n return;\r\n }\r\n // TODO: pass left and top from seriesViewRect\r\n var left = 0;\r\n var top = 0;\r\n Guard_1.Guard.notNull(pen, \"pen\");\r\n Guard_1.Guard.isTrue(pen.getPenType() === \"WasmPen\", \"pen must be an instance of WasmPen to be used with the WasmRenderContext\");\r\n var scrtPen = pen.scrtPen;\r\n Guard_1.Guard.notNull(scrtPen, \"WasmPen.scrtPen\");\r\n var isStrips = false;\r\n var nativeContext = this.getNativeContext();\r\n var vertices = (0, NativeObject_1.getVectorColorVertex)(this.webAssemblyContext);\r\n var vertex0 = (0, NativeObject_1.getVertex)(this.webAssemblyContext, x1, y1);\r\n vertices.push_back(vertex0);\r\n var vertex1 = (0, NativeObject_1.getVertex)(this.webAssemblyContext, x2, y2);\r\n vertices.push_back(vertex1);\r\n nativeContext.PushMatrix();\r\n nativeContext.PushState();\r\n nativeContext.Translate(viewRect.x, viewRect.y);\r\n nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n nativeContext.DrawLinesBatchVec(isStrips, vertices, scrtPen);\r\n nativeContext.PopMatrix();\r\n nativeContext.PopState();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlRenderContext2D.prototype.drawLines = function (xyValues, strokePen, viewRect, lineDrawMode) {\r\n if (lineDrawMode === void 0) { lineDrawMode = ELineDrawMode.PolyLine; }\r\n Guard_1.Guard.notNull(strokePen, \"pen\");\r\n Guard_1.Guard.notNull(xyValues, \"xyValues\");\r\n Guard_1.Guard.isTrue(strokePen.getPenType() === \"WasmPen\", \"pen must be an instance of WasmPen to be used with the WasmRenderContext\");\r\n Guard_1.Guard.isTrue(xyValues.length > 0 && xyValues.length % 2 === 0, \"xyValues length must be a multiple of 2, values arranged as x0y0 x1y1 x2y2...\");\r\n var scrtPen = strokePen.scrtPen;\r\n Guard_1.Guard.notNull(scrtPen, \"WebGlPen.scrtPen\");\r\n var isStrips = lineDrawMode === ELineDrawMode.PolyLine;\r\n var nativeContext = this.getNativeContext();\r\n var vertices = (0, NativeObject_1.getVectorColorVertex)(this.webAssemblyContext);\r\n for (var i = 0; i < xyValues.length; i += 2) {\r\n var vertex = (0, NativeObject_1.getVertex)(this.webAssemblyContext, xyValues[i], xyValues[i + 1]);\r\n vertex.m_vPosition.z = 0;\r\n vertices.push_back(vertex);\r\n }\r\n nativeContext.PushMatrix();\r\n nativeContext.PushState();\r\n nativeContext.Translate(viewRect.x, viewRect.y);\r\n nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n nativeContext.DrawLinesBatchVec(isStrips, vertices, scrtPen);\r\n nativeContext.PopMatrix();\r\n nativeContext.PopState();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n WebGlRenderContext2D.prototype.drawRect = function (rect, viewRect, strokePen, fillBrush) {\r\n if (fillBrush) {\r\n var nativeContext = this.getNativeContext();\r\n var scrtBrush = fillBrush.scrtBrush;\r\n Guard_1.Guard.notNull(scrtBrush, \"WebGlBrush.scrtBrush\");\r\n var vertices = (0, NativeObject_1.getVectorRectVertex)(this.webAssemblyContext);\r\n var anchorParams = (0, NativeObject_1.getVector4)(this.webAssemblyContext, 0, 0, 0, 0);\r\n var nativeRect = (0, createNativeRect_1.createNativeRect)(this.webAssemblyContext, rect.x, rect.y, rect.right, rect.bottom);\r\n vertices.push_back(nativeRect);\r\n nativeContext.PushMatrix();\r\n nativeContext.PushState();\r\n nativeContext.Translate(viewRect.x, viewRect.y);\r\n nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n nativeContext.DrawRectsBatchVec(vertices, scrtBrush, anchorParams);\r\n nativeContext.PopMatrix();\r\n nativeContext.PopState();\r\n }\r\n if (strokePen) {\r\n this.drawLines([\r\n rect.right,\r\n rect.top,\r\n rect.right,\r\n rect.bottom,\r\n rect.left,\r\n rect.bottom,\r\n rect.left,\r\n rect.top,\r\n rect.right,\r\n rect.top\r\n ], strokePen, viewRect, ELineDrawMode.PolyLine);\r\n }\r\n };\r\n WebGlRenderContext2D.prototype.printBlendMode = function () {\r\n var blendMode = this.getNativeContext().GetBlendMode();\r\n switch (blendMode) {\r\n case this.webAssemblyContext.eSCRTBlendMode.BlendDefault:\r\n console.log(\"BlendDefault\");\r\n break;\r\n case this.webAssemblyContext.eSCRTBlendMode.BlendAdditiveOneAlpha:\r\n console.log(\"BlendAdditiveOneAlpha\");\r\n break;\r\n case this.webAssemblyContext.eSCRTBlendMode.BlendAdditiveColor:\r\n console.log(\"BlendAdditiveColor\");\r\n break;\r\n case this.webAssemblyContext.eSCRTBlendMode.BlendAdditiveAlpha:\r\n console.log(\"BlendAdditiveAlpha\");\r\n break;\r\n case this.webAssemblyContext.eSCRTBlendMode.BlendDisabled:\r\n console.log(\"BlendDisabled\");\r\n break;\r\n default:\r\n throw new Error(\"Unhandled blendmode \");\r\n }\r\n };\r\n /**\r\n * Get a native font. Fonts are cached and shared within webassembly so there is no need to cache them in JS.\r\n * Set advanced: true if you are planning to rotate or scale the text.\r\n * Set drawEarly: true if you are planning to call font.End() early. Otherwise all native text will be drawn at the end of the render cycle.\r\n */\r\n WebGlRenderContext2D.prototype.getFont = function (labelStyle, advanced, drawEarly) {\r\n var _this = this;\r\n if (advanced === void 0) { advanced = false; }\r\n if (drawEarly === void 0) { drawEarly = false; }\r\n var fontKey = (0, NativeObject_1.getFontKey)(this.webAssemblyContext, labelStyle, advanced, drawEarly);\r\n var nativeContext = this.getNativeContext();\r\n var nativeFont = nativeContext.AquireFont(fontKey);\r\n if (!nativeFont) {\r\n throw new Error(\"Could not create font \" + fontKey.m_strName);\r\n }\r\n else {\r\n if (!nativeFont.m_isDrawing) {\r\n nativeFont.Begin();\r\n }\r\n }\r\n var currentFontName = nativeFont.GetFaceName();\r\n if (currentFontName === \"SCRT_Loading\") {\r\n setTimeout(function () { var _a; return _this.webAssemblyContext.TSRRequestCanvasDraw((_a = _this.canvasId) !== null && _a !== void 0 ? _a : \"undefinedCanvasId\"); }, 100);\r\n }\r\n else if (currentFontName !== fontKey.m_strName) {\r\n // @ts-ignore\r\n if (!fontKey.warned) {\r\n console.warn(\"Font \".concat(fontKey.m_strName, \" could not be found on the server and has not been registered. Falling back to Arial.\\n Use await scichartSurface.registerFont if you need to load the font from a remote url\"));\r\n // @ts-ignore\r\n fontKey.warned = true;\r\n }\r\n }\r\n return nativeFont;\r\n };\r\n /** End all fonts, causing text to be drawn */\r\n WebGlRenderContext2D.prototype.endFonts = function (force) {\r\n if (force === void 0) { force = false; }\r\n var nativeContext = this.getNativeContext();\r\n var keys = (0, NativeObject_1.getAllFontKeys)(this.webAssemblyContext);\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var fontKey = keys_1[_i];\r\n var nativeFont = nativeContext.AquireFont(fontKey);\r\n if (nativeFont && nativeFont.m_isDrawing) {\r\n nativeFont.End();\r\n }\r\n }\r\n };\r\n /**\r\n * Should store references to all cached WebGlResources {@link ICacheable}\r\n * Is used to invalidate the resources when the WebGL context is lost.\r\n */\r\n WebGlRenderContext2D.webGlResourcesRefs = new Set();\r\n return WebGlRenderContext2D;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.WebGlRenderContext2D = WebGlRenderContext2D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EDrawingTypes = void 0;\r\n/**\r\n * Gets the type for Brushes, Pens\r\n */\r\nvar EDrawingTypes;\r\n(function (EDrawingTypes) {\r\n /**\r\n * Defines a brush for use with SciChart's WebAssembly WebGL engine\r\n */\r\n EDrawingTypes[\"WasmBrush\"] = \"WasmBrush\";\r\n /**\r\n * Defines a pen for use with SciChart's WebAssembly WebGL engine\r\n */\r\n EDrawingTypes[\"WasmPen\"] = \"WasmPen\";\r\n})(EDrawingTypes = exports.EDrawingTypes || (exports.EDrawingTypes = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.testLayoutManager = exports.getCoordinateWithCoordinateMode = exports.getValueWithCoordinateMode = exports.updateTopAndBottomChartLayoutState = exports.updateLeftAndRightChartLayoutState = exports.getVerticalAxisRequiredSize = exports.getHorizontalAxisRequiredSize = exports.layoutAxisPartsBottomStrategy = exports.layoutAxisPartsTopStrategy = exports.layoutAxisPartsRightStrategy = exports.layoutAxisPartsLeftStrategy = exports.layoutAxisParts = exports.updateAxisLayoutState = void 0;\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar EInnerAxisPlacementCoordinateMode_1 = require(\"./EInnerAxisPlacementCoordinateMode\");\r\nfunction updateAxisLayoutState(axis) {\r\n var axisRenderer = axis.axisRenderer, axisTitleRenderer = axis.axisTitleRenderer, axisLayoutState = axis.axisLayoutState, isHorizontalAxis = axis.isHorizontalAxis, axisBorder = axis.axisBorder;\r\n axisLayoutState.clear();\r\n axisLayoutState.axisSize = isHorizontalAxis\r\n ? axisRenderer.desiredHeight + axisTitleRenderer.desiredHeight\r\n : axisRenderer.desiredWidth + axisTitleRenderer.desiredWidth;\r\n axisLayoutState.additionalBottomSize = axisBorder.borderBottom;\r\n axisLayoutState.additionalTopSize = axisBorder.borderTop;\r\n axisLayoutState.additionalRightSize = axisBorder.borderRight;\r\n axisLayoutState.additionalLeftSize = axisBorder.borderLeft;\r\n}\r\nexports.updateAxisLayoutState = updateAxisLayoutState;\r\nfunction layoutAxisParts(axis, layoutFunc) {\r\n var isHorizontalAxis = axis.isHorizontalAxis, viewRect = axis.viewRect, axisRenderer = axis.axisRenderer, axisTitleRenderer = axis.axisTitleRenderer, axisBorder = axis.axisBorder;\r\n var axisRendererWidth = isHorizontalAxis ? viewRect.width : axisRenderer.desiredWidth;\r\n var axisRendererHeight = isHorizontalAxis ? axisRenderer.desiredHeight : viewRect.height;\r\n var axisTitleRendererWidth = axisTitleRenderer.desiredWidth;\r\n var axisTitleRendererHeight = axisTitleRenderer.desiredHeight;\r\n // layout with appropriate strategy\r\n var _a = layoutFunc(axisRendererWidth, axisRendererHeight, axisTitleRendererWidth, axisTitleRendererHeight, viewRect, axisBorder), axisRendererViewRect = _a.axisRendererViewRect, axisTitleRendererViewRect = _a.axisTitleRendererViewRect;\r\n axisRenderer.layout(axisRendererViewRect);\r\n axisTitleRenderer.layout(axisTitleRendererViewRect);\r\n}\r\nexports.layoutAxisParts = layoutAxisParts;\r\nfunction layoutAxisPartsLeftStrategy(axisRendererWidth, axisRendererHeight, axisTitleRendererWidth, axisTitleRendererHeight, containerBounds) {\r\n return {\r\n axisTitleRendererViewRect: Rect_1.Rect.createWithCoords(containerBounds.left, containerBounds.top, containerBounds.left + axisTitleRendererWidth, containerBounds.bottom),\r\n axisRendererViewRect: Rect_1.Rect.createWithCoords(containerBounds.left + axisTitleRendererWidth, containerBounds.top, containerBounds.right, containerBounds.bottom)\r\n };\r\n}\r\nexports.layoutAxisPartsLeftStrategy = layoutAxisPartsLeftStrategy;\r\nfunction layoutAxisPartsRightStrategy(axisRendererWidth, axisRendererHeight, axisTitleRendererWidth, axisTitleRendererHeight, containerBounds) {\r\n return {\r\n axisRendererViewRect: Rect_1.Rect.createWithCoords(containerBounds.left, containerBounds.top, containerBounds.left + axisRendererWidth, containerBounds.bottom),\r\n axisTitleRendererViewRect: Rect_1.Rect.createWithCoords(containerBounds.left + axisRendererWidth, containerBounds.top, containerBounds.right, containerBounds.bottom)\r\n };\r\n}\r\nexports.layoutAxisPartsRightStrategy = layoutAxisPartsRightStrategy;\r\nfunction layoutAxisPartsTopStrategy(axisRendererWidth, axisRendererHeight, axisTitleRendererWidth, axisTitleRendererHeight, containerBounds) {\r\n return {\r\n axisTitleRendererViewRect: Rect_1.Rect.createWithCoords(containerBounds.left, containerBounds.top, containerBounds.right, containerBounds.top + axisTitleRendererHeight),\r\n axisRendererViewRect: Rect_1.Rect.createWithCoords(containerBounds.left, containerBounds.top + axisTitleRendererHeight, containerBounds.right, containerBounds.bottom)\r\n };\r\n}\r\nexports.layoutAxisPartsTopStrategy = layoutAxisPartsTopStrategy;\r\nfunction layoutAxisPartsBottomStrategy(axisRendererWidth, axisRendererHeight, axisTitleRendererWidth, axisTitleRendererHeight, containerBounds) {\r\n return {\r\n axisRendererViewRect: Rect_1.Rect.createWithCoords(containerBounds.left, containerBounds.top, containerBounds.right, containerBounds.top + axisRendererHeight),\r\n axisTitleRendererViewRect: Rect_1.Rect.createWithCoords(containerBounds.left, containerBounds.top + axisRendererHeight, containerBounds.right, containerBounds.bottom)\r\n };\r\n}\r\nexports.layoutAxisPartsBottomStrategy = layoutAxisPartsBottomStrategy;\r\nfunction getHorizontalAxisRequiredSize(axisLayoutState) {\r\n return axisLayoutState.axisSize + axisLayoutState.additionalTopSize + axisLayoutState.additionalBottomSize;\r\n}\r\nexports.getHorizontalAxisRequiredSize = getHorizontalAxisRequiredSize;\r\nfunction getVerticalAxisRequiredSize(axisLayoutState) {\r\n return axisLayoutState.axisSize + axisLayoutState.additionalLeftSize + axisLayoutState.additionalRightSize;\r\n}\r\nexports.getVerticalAxisRequiredSize = getVerticalAxisRequiredSize;\r\nfunction updateLeftAndRightChartLayoutState(chartLayoutState, additionalLeftSize, additionalRightSize) {\r\n if (additionalLeftSize === void 0) { additionalLeftSize = 0; }\r\n if (additionalRightSize === void 0) { additionalRightSize = 0; }\r\n chartLayoutState.leftOuterAreaSize = Math.max(chartLayoutState.leftOuterAreaSize, additionalLeftSize);\r\n chartLayoutState.rightOuterAreaSize = Math.max(chartLayoutState.rightOuterAreaSize, additionalRightSize);\r\n}\r\nexports.updateLeftAndRightChartLayoutState = updateLeftAndRightChartLayoutState;\r\nfunction updateTopAndBottomChartLayoutState(chartLayoutState, additionalTopSize, additionalBottomSize) {\r\n if (additionalTopSize === void 0) { additionalTopSize = 0; }\r\n if (additionalBottomSize === void 0) { additionalBottomSize = 0; }\r\n chartLayoutState.topOuterAreaSize = Math.max(chartLayoutState.topOuterAreaSize, additionalTopSize);\r\n chartLayoutState.bottomOuterAreaSize = Math.max(chartLayoutState.bottomOuterAreaSize, additionalBottomSize);\r\n}\r\nexports.updateTopAndBottomChartLayoutState = updateTopAndBottomChartLayoutState;\r\n/**\r\n * Converts a pixel coordinate back to a value\r\n * @param value - coordinate or dataValue to convert\r\n * @param calculator the {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param coordinateMode the {@link ECoordinateMode} to apply\r\n * @returns the data-value or value\r\n */\r\nvar getValueWithCoordinateMode = function (value, calculator, coordinateMode) {\r\n switch (coordinateMode) {\r\n case EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.Pixel: {\r\n return calculator.getDataValue(value);\r\n }\r\n case EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.DataValue: {\r\n return value;\r\n }\r\n // Case relative: 0.0 = left and 1.0 = right % on the viewport\r\n case EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.Relative: {\r\n return (calculator.visibleMax - calculator.visibleMin) * value + calculator.visibleMin;\r\n }\r\n default: {\r\n throw new Error(\"CoordinateMode \".concat(coordinateMode, \" is not supported\"));\r\n }\r\n }\r\n};\r\nexports.getValueWithCoordinateMode = getValueWithCoordinateMode;\r\n/**\r\n * Converts a value into a pixel coordinate accordingly to the coordinate mode\r\n * @param value - the value to convert\r\n * @param calculator the {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param coordinateMode the {@link ECoordinateMode} to apply\r\n * @returns the pixel coordinate\r\n */\r\nvar getCoordinateWithCoordinateMode = function (value, calculator, coordinateMode) {\r\n Guard_1.Guard.notNull(coordinateMode, \"coordinateMode\");\r\n Guard_1.Guard.notNull(calculator, \"calculator\");\r\n switch (coordinateMode) {\r\n case EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.Pixel: {\r\n // Value is 20.0 means pixel = 20.0\r\n return value;\r\n }\r\n case EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.DataValue: {\r\n // Value is 20.0 must be converted from data-value to coordinate using Axis api\r\n return calculator.getCoordinate(value);\r\n }\r\n case EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.Relative: {\r\n // Value is 0.5 means 50% of the viewport size\r\n return value * calculator.viewportDimension;\r\n }\r\n default: {\r\n throw new Error(\"CoordinateMode \".concat(coordinateMode, \" is not supported\"));\r\n }\r\n }\r\n};\r\nexports.getCoordinateWithCoordinateMode = getCoordinateWithCoordinateMode;\r\nexports.testLayoutManager = {\r\n updateAxisLayoutState: updateAxisLayoutState,\r\n layoutAxisPartsLeftStrategy: layoutAxisPartsLeftStrategy,\r\n layoutAxisPartsRightStrategy: layoutAxisPartsRightStrategy,\r\n layoutAxisPartsTopStrategy: layoutAxisPartsTopStrategy,\r\n layoutAxisPartsBottomStrategy: layoutAxisPartsBottomStrategy\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseAxisLayoutStrategy = void 0;\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\n/**\r\n * The Base Axis Layout Strategy\r\n */\r\nvar BaseAxisLayoutStrategy = /** @class */ (function () {\r\n function BaseAxisLayoutStrategy() {\r\n this.isStacked = false;\r\n }\r\n BaseAxisLayoutStrategy.prototype.toJSON = function () {\r\n return { type: this.type };\r\n };\r\n BaseAxisLayoutStrategy.prototype.updateAxisLayoutState = function (axis) {\r\n (0, AxisLayoutHelpers_1.updateAxisLayoutState)(axis);\r\n };\r\n BaseAxisLayoutStrategy.prototype.updateLeftAndRightChartLayoutState = function (chartLayoutState, additionalLeftSize, additionalRightSize) {\r\n (0, AxisLayoutHelpers_1.updateLeftAndRightChartLayoutState)(chartLayoutState, additionalLeftSize, additionalRightSize);\r\n };\r\n BaseAxisLayoutStrategy.prototype.updateTopAndBottomChartLayoutState = function (chartLayoutState, additionalTopSize, additionalBottomSize) {\r\n (0, AxisLayoutHelpers_1.updateTopAndBottomChartLayoutState)(chartLayoutState, additionalTopSize, additionalBottomSize);\r\n };\r\n BaseAxisLayoutStrategy.prototype.layoutAxesFromBottomToTop = function (left, top, right, bottom, axes) {\r\n var _this = this;\r\n var bottomOffset = bottom;\r\n axes.forEach(function (axis) {\r\n var _a = axis.axisLayoutState, axisSize = _a.axisSize, additionalTopSize = _a.additionalTopSize, additionalBottomSize = _a.additionalBottomSize;\r\n var topOffset = bottomOffset - axisSize - additionalBottomSize - additionalTopSize;\r\n axis.viewRect = Rect_1.Rect.createWithCoords(left, topOffset + additionalTopSize, right, bottomOffset - additionalBottomSize);\r\n bottomOffset = topOffset;\r\n (0, AxisLayoutHelpers_1.layoutAxisParts)(axis, _this.layoutAxisPartsStrategy);\r\n });\r\n };\r\n BaseAxisLayoutStrategy.prototype.layoutAxesFromTopToBottom = function (left, top, right, bottom, axes) {\r\n var _this = this;\r\n var topOffset = top;\r\n axes.forEach(function (axis) {\r\n var _a = axis.axisLayoutState, axisSize = _a.axisSize, additionalTopSize = _a.additionalTopSize, additionalBottomSize = _a.additionalBottomSize;\r\n var bottomOffset = topOffset + axisSize + additionalBottomSize + additionalTopSize;\r\n axis.viewRect = Rect_1.Rect.createWithCoords(left, topOffset + additionalTopSize, right, bottomOffset - additionalBottomSize);\r\n topOffset = bottomOffset;\r\n (0, AxisLayoutHelpers_1.layoutAxisParts)(axis, _this.layoutAxisPartsStrategy);\r\n });\r\n };\r\n BaseAxisLayoutStrategy.prototype.layoutAxesFromLeftToRight = function (left, top, right, bottom, axes) {\r\n var _this = this;\r\n var leftOffset = left;\r\n axes.forEach(function (axis) {\r\n var _a = axis.axisLayoutState, axisSize = _a.axisSize, additionalLeftSize = _a.additionalLeftSize, additionalRightSize = _a.additionalRightSize;\r\n var rightOffset = leftOffset + axisSize + additionalLeftSize + additionalRightSize;\r\n axis.viewRect = Rect_1.Rect.createWithCoords(leftOffset + additionalLeftSize, top, rightOffset - additionalRightSize, bottom);\r\n leftOffset = rightOffset;\r\n (0, AxisLayoutHelpers_1.layoutAxisParts)(axis, _this.layoutAxisPartsStrategy);\r\n });\r\n };\r\n BaseAxisLayoutStrategy.prototype.layoutAxesFromRightToLeft = function (left, top, right, bottom, axes) {\r\n var _this = this;\r\n var rightOffset = right;\r\n axes.forEach(function (axis) {\r\n var _a = axis.axisLayoutState, axisSize = _a.axisSize, additionalLeftSize = _a.additionalLeftSize, additionalRightSize = _a.additionalRightSize;\r\n var leftOffset = rightOffset - axisSize - additionalLeftSize - additionalRightSize;\r\n axis.viewRect = Rect_1.Rect.createWithCoords(leftOffset + additionalLeftSize, top, rightOffset - additionalRightSize, bottom);\r\n rightOffset = leftOffset;\r\n (0, AxisLayoutHelpers_1.layoutAxisParts)(axis, _this.layoutAxisPartsStrategy);\r\n });\r\n };\r\n BaseAxisLayoutStrategy.prototype.calculateTotalAxisHeight = function (axis, totalAxisAreaHeight) {\r\n return (parseSize(axis.stackedAxisLength, totalAxisAreaHeight) +\r\n axis.axisLayoutState.additionalBottomSize +\r\n axis.axisLayoutState.additionalTopSize);\r\n };\r\n BaseAxisLayoutStrategy.prototype.calculateTotalAxisWidth = function (axis, totalAxisAreaHeight) {\r\n return (parseSize(axis.stackedAxisLength, totalAxisAreaHeight) +\r\n axis.axisLayoutState.additionalRightSize +\r\n axis.axisLayoutState.additionalLeftSize);\r\n };\r\n return BaseAxisLayoutStrategy;\r\n}());\r\nexports.BaseAxisLayoutStrategy = BaseAxisLayoutStrategy;\r\nvar parseSize = function (value, containerSize) {\r\n if (typeof value === \"number\") {\r\n if (value < 0) {\r\n throw new Error(\"stackedAxisLength must be a positive value!\");\r\n }\r\n return value;\r\n }\r\n if (value.includes(\"%\")) {\r\n return parsePc(value, containerSize);\r\n }\r\n var parsedValue = parseFloat(value);\r\n if (!isNaN(parsedValue)) {\r\n return parsedValue;\r\n }\r\n throw new Error(\"stackedAxisLength must be a number or a percentage\");\r\n};\r\nvar parsePc = function (value, containerSize) {\r\n var parsedPercentageValue = parseFloat(value);\r\n if (parsedPercentageValue < 0 || parsedPercentageValue > 100) {\r\n throw new Error(\"stackedAxisLength percentage must be from 0 to 100\");\r\n }\r\n return Math.round((containerSize * parsedPercentageValue) / 10) / 10;\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseCenteredAxisLayoutStrategy = void 0;\r\nvar AxisBase2D_1 = require(\"../Visuals/Axis/AxisBase2D\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\nvar constants_1 = require(\"./constants\");\r\nvar EInnerAxisPlacementCoordinateMode_1 = require(\"./EInnerAxisPlacementCoordinateMode\");\r\n/**\r\n * The Base Layout Strategy for Central Axes\r\n */\r\nvar BaseCenteredAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(BaseCenteredAxisLayoutStrategy, _super);\r\n /**\r\n * Creates Inner Axis Layout Strategy\r\n * param options {@link IInnerAxisLayoutStrategyOptions}\r\n */\r\n function BaseCenteredAxisLayoutStrategy(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this) || this;\r\n _this.orthogonalAxisIdProperty = AxisBase2D_1.AxisBase2D.DEFAULT_AXIS_ID;\r\n _this.coordinateModeProperty = EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.DataValue;\r\n _this.orthogonalAxisIdProperty = (_a = options === null || options === void 0 ? void 0 : options.orthogonalAxisId) !== null && _a !== void 0 ? _a : _this.orthogonalAxisIdProperty;\r\n _this.coordinateModeProperty = (_b = options === null || options === void 0 ? void 0 : options.coordinateMode) !== null && _b !== void 0 ? _b : _this.coordinateModeProperty;\r\n _this.axisPositionProperty = (_c = options === null || options === void 0 ? void 0 : options.axisPosition) !== null && _c !== void 0 ? _c : _this.axisPositionProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(BaseCenteredAxisLayoutStrategy.prototype, \"orthogonalAxisId\", {\r\n /**\r\n * Gets or sets the id for the vertical or horizontal axis which is used for positioning the central axes\r\n */\r\n get: function () {\r\n return this.orthogonalAxisIdProperty;\r\n },\r\n /**\r\n * Gets or sets the id for the vertical or horizontal axis which is used for positioning the central axes\r\n */\r\n set: function (value) {\r\n if (this.orthogonalAxisId !== value) {\r\n this.orthogonalAxisIdProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VERTICAL_AXIS_ID);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseCenteredAxisLayoutStrategy.prototype, \"coordinateMode\", {\r\n /**\r\n * The Coordinate mode. See {@link EInnerAxisPlacementCoordinateMode} for a list of values\r\n * @remarks Want to display an annotation stretching across the entire width (or height) or the {@link SciChartSurface}?\r\n * The {@link EInnerAxisPlacementCoordinateMode} enum has options which allow for relative, absolute or pixel coordinates which define annotation\r\n * placement.\r\n */\r\n get: function () {\r\n return this.coordinateModeProperty;\r\n },\r\n /**\r\n * The Coordinate mode. See {@link EInnerAxisPlacementCoordinateMode} for a list of values\r\n * @remarks Want to display an annotation stretching across the entire width (or height) or the {@link SciChartSurface}?\r\n * The {@link EInnerAxisPlacementCoordinateMode} enum has options which allow for relative, absolute or pixel coordinates which define annotation\r\n * placement.\r\n */\r\n set: function (value) {\r\n if (this.coordinateModeProperty !== value) {\r\n this.coordinateModeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COORDINATE_MODE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseCenteredAxisLayoutStrategy.prototype, \"axisPosition\", {\r\n /**\r\n * Gets or sets the coordinate of the Layout Area anchor point\r\n * @remarks The axisPosition obeys {@link coordinateMode} which defines whether it is a pixel, data-value or relative coordinate\r\n */\r\n get: function () {\r\n return this.axisPositionProperty;\r\n },\r\n /**\r\n * Gets or sets the coordinate of the Layout Area anchor point\r\n * @remarks The axisPosition obeys {@link coordinateMode} which defines whether it is a pixel, data-value or relative coordinate\r\n */\r\n set: function (value) {\r\n if (this.axisPositionProperty !== value) {\r\n this.axisPositionProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_POSITION_COORDINATE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BaseCenteredAxisLayoutStrategy.prototype.toJSON = function () {\r\n var options = {\r\n axisPosition: this.axisPosition,\r\n coordinateMode: this.coordinateMode,\r\n orthogonalAxisId: this.orthogonalAxisId\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n /**\r\n * @summary Notifies subscribers that a property has changed and the chart requires redrawing\r\n * @description SciChart provides fully reactive components, changing any property or changing data will cause the {@link SciChartSurface} to\r\n * redraw where necessary.\r\n * @param propertyName The name of the property which has changed\r\n */\r\n BaseCenteredAxisLayoutStrategy.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n if ((_a = this.sciChartSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement) {\r\n this.sciChartSurface.invalidateElement();\r\n }\r\n };\r\n return BaseCenteredAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.BaseCenteredAxisLayoutStrategy = BaseCenteredAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BottomAlignedInnerAxisLayoutStrategy = void 0;\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseCenteredAxisLayoutStrategy_1 = require(\"./BaseCenteredAxisLayoutStrategy\");\r\n/**\r\n * The default LayoutStrategy for Bottom Inner Axis\r\n */\r\nvar BottomAlignedInnerAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(BottomAlignedInnerAxisLayoutStrategy, _super);\r\n function BottomAlignedInnerAxisLayoutStrategy(options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.BottomInner;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsTopStrategy;\r\n return _this;\r\n }\r\n BottomAlignedInnerAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n this.sciChartSurface = sciChartSurface;\r\n var requiredSize = 0;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n requiredSize += (0, AxisLayoutHelpers_1.getHorizontalAxisRequiredSize)(axis.axisLayoutState);\r\n });\r\n chartLayoutState.bottomInnerAreaSize = Math.max(chartLayoutState.bottomInnerAreaSize, requiredSize);\r\n };\r\n BottomAlignedInnerAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n // Set axisLength to default value which is seriesViewRect.width\r\n axes.forEach(function (axis) {\r\n axis.axisLength = undefined;\r\n axis.offset = 0;\r\n });\r\n if (axes.length === 0) {\r\n return;\r\n }\r\n var bottomCoord = bottom;\r\n // calculate custom axis position\r\n if (this.axisPosition !== undefined) {\r\n var verticalAxis = this.sciChartSurface.getYAxisById(this.orthogonalAxisId) ||\r\n this.sciChartSurface.getXAxisById(this.orthogonalAxisId);\r\n if (!verticalAxis || verticalAxis.isHorizontalAxis) {\r\n throw new Error(\"orthogonalAxisId should be a valid id of vertical axis on the surface!\");\r\n }\r\n var coordinateCalculator = verticalAxis.getCurrentCoordinateCalculator();\r\n var absoluteAxisPosition = (0, AxisLayoutHelpers_1.getCoordinateWithCoordinateMode)(this.axisPosition, coordinateCalculator, this.coordinateMode);\r\n var offset = verticalAxis.viewRect.top;\r\n bottomCoord = absoluteAxisPosition + offset;\r\n }\r\n this.layoutAxesFromBottomToTop(left, top, right, bottomCoord, axes);\r\n };\r\n return BottomAlignedInnerAxisLayoutStrategy;\r\n}(BaseCenteredAxisLayoutStrategy_1.BaseCenteredAxisLayoutStrategy));\r\nexports.BottomAlignedInnerAxisLayoutStrategy = BottomAlignedInnerAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BottomAlignedOuterAxisLayoutStrategy = void 0;\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\n/**\r\n * The default LayoutStrategy for Bottom Axis\r\n */\r\nvar BottomAlignedOuterAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(BottomAlignedOuterAxisLayoutStrategy, _super);\r\n function BottomAlignedOuterAxisLayoutStrategy() {\r\n var _this = _super.call(this) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.BottomOuter;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsBottomStrategy;\r\n return _this;\r\n }\r\n BottomAlignedOuterAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n var _a, _b;\r\n var requiredSize = (_b = (_a = sciChartSurface.adjustedPadding) === null || _a === void 0 ? void 0 : _a.bottom) !== null && _b !== void 0 ? _b : 0;\r\n requiredSize += sciChartSurface.bottomViewportBorder + sciChartSurface.bottomCanvasBorder;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n requiredSize += (0, AxisLayoutHelpers_1.getHorizontalAxisRequiredSize)(axis.axisLayoutState);\r\n _this.updateLeftAndRightChartLayoutState(chartLayoutState, axis.axisLayoutState.additionalLeftSize, axis.axisLayoutState.additionalRightSize);\r\n });\r\n chartLayoutState.bottomOuterAreaSize = Math.max(chartLayoutState.bottomOuterAreaSize, requiredSize);\r\n };\r\n BottomAlignedOuterAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n // Set axisLength to default value which is seriesViewRect.width\r\n axes.forEach(function (axis) {\r\n axis.axisLength = undefined;\r\n axis.offset = 0;\r\n });\r\n this.layoutAxesFromTopToBottom(left, top, right, bottom, axes);\r\n };\r\n return BottomAlignedOuterAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.BottomAlignedOuterAxisLayoutStrategy = BottomAlignedOuterAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy = void 0;\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\n/**\r\n * The Horizontally Stacked Layout Strategy for Bottom Axes\r\n */\r\nvar BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy, _super);\r\n function BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy() {\r\n var _this = _super.call(this) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.BottomStacked;\r\n _this.isStacked = true;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsBottomStrategy;\r\n return _this;\r\n }\r\n BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n var _a;\r\n var requiredSize = 0;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n var currentAxisRequiredSize = (0, AxisLayoutHelpers_1.getHorizontalAxisRequiredSize)(axis.axisLayoutState);\r\n requiredSize = currentAxisRequiredSize > requiredSize ? currentAxisRequiredSize : requiredSize;\r\n });\r\n var firstStackedAxis = axes[0];\r\n var lastStackedAxis = axes[axes.length - 1];\r\n this.updateLeftAndRightChartLayoutState(chartLayoutState, firstStackedAxis === null || firstStackedAxis === void 0 ? void 0 : firstStackedAxis.axisLayoutState.additionalLeftSize, lastStackedAxis === null || lastStackedAxis === void 0 ? void 0 : lastStackedAxis.axisLayoutState.additionalRightSize);\r\n var bottomViewportBorder = sciChartSurface.bottomViewportBorder, bottomCanvasBorder = sciChartSurface.bottomCanvasBorder, adjustedPadding = sciChartSurface.adjustedPadding;\r\n requiredSize += (_a = bottomViewportBorder + bottomCanvasBorder + (adjustedPadding === null || adjustedPadding === void 0 ? void 0 : adjustedPadding.bottom)) !== null && _a !== void 0 ? _a : 0;\r\n chartLayoutState.bottomOuterAreaSize = Math.max(chartLayoutState.bottomOuterAreaSize, requiredSize);\r\n };\r\n BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n var _this = this;\r\n var totalAxisAreaWidth = right - left;\r\n var firstAxis = axes[0];\r\n var lastAxis = axes[axes.length - 1];\r\n var axesWithDefinedLength = axes.filter(function (axis) { return axis.stackedAxisLength; });\r\n var spaceWithoutBorders = axes.reduce(function (acc, axis) { return acc - axis.axisLayoutState.additionalBottomSize - axis.axisLayoutState.additionalTopSize; }, totalAxisAreaWidth +\r\n (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalLeftSize) +\r\n (lastAxis === null || lastAxis === void 0 ? void 0 : lastAxis.axisLayoutState.additionalRightSize));\r\n var totalDefinedAxesLength = axesWithDefinedLength.reduce(function (acc, axis) { return acc + _this.calculateTotalAxisWidth(axis, spaceWithoutBorders); }, 0);\r\n var availableSpaceForAxes = totalAxisAreaWidth +\r\n (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalLeftSize) +\r\n (lastAxis === null || lastAxis === void 0 ? void 0 : lastAxis.axisLayoutState.additionalRightSize) -\r\n totalDefinedAxesLength;\r\n if (availableSpaceForAxes < 0) {\r\n throw new Error(\"Bottom stacked axes with defined size total \".concat(totalDefinedAxesLength, \" pixels which is \").concat(-availableSpaceForAxes, \" more than the space available\"));\r\n }\r\n var defaultAxisReservedHeight = availableSpaceForAxes / (axes.length - axesWithDefinedLength.length);\r\n var leftOffset = left - (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalLeftSize);\r\n axes.forEach(function (axis) {\r\n var _a = axis.axisLayoutState, axisSize = _a.axisSize, additionalLeftSize = _a.additionalLeftSize, additionalRightSize = _a.additionalRightSize, additionalTopSize = _a.additionalTopSize;\r\n var topOffset = top + additionalTopSize;\r\n var bottomOffset = topOffset + axisSize;\r\n var axisReservedHeight = axis.stackedAxisLength\r\n ? _this.calculateTotalAxisWidth(axis, spaceWithoutBorders)\r\n : defaultAxisReservedHeight;\r\n var rightOffset = leftOffset + axisReservedHeight - additionalRightSize;\r\n leftOffset += additionalLeftSize;\r\n axis.offset = leftOffset - left;\r\n axis.axisLength = rightOffset - leftOffset;\r\n axis.isPrimaryAxis = true;\r\n axis.viewRect = Rect_1.Rect.createWithCoords(leftOffset, topOffset, rightOffset, bottomOffset);\r\n leftOffset = rightOffset + additionalRightSize;\r\n (0, AxisLayoutHelpers_1.layoutAxisParts)(axis, _this.layoutAxisPartsStrategy);\r\n });\r\n };\r\n return BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy = BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CentralAxesLayoutManager = void 0;\r\nvar AxisAlignment_1 = require(\"../../types/AxisAlignment\");\r\nvar LayoutMangerType_1 = require(\"../../types/LayoutMangerType\");\r\nvar BottomAlignedInnerAxisLayoutStrategy_1 = require(\"./BottomAlignedInnerAxisLayoutStrategy\");\r\nvar constants_1 = require(\"./constants\");\r\nvar EInnerAxisPlacementCoordinateMode_1 = require(\"./EInnerAxisPlacementCoordinateMode\");\r\nvar LayoutManager_1 = require(\"./LayoutManager\");\r\nvar LeftAlignedInnerAxisLayoutStrategy_1 = require(\"./LeftAlignedInnerAxisLayoutStrategy\");\r\nvar RightAlignedInnerAxisLayoutStrategy_1 = require(\"./RightAlignedInnerAxisLayoutStrategy\");\r\nvar TopAlignedInnerAxisLayoutStrategy_1 = require(\"./TopAlignedInnerAxisLayoutStrategy\");\r\n/**\r\n * A Layout manager which simplifies the handling of central axes.\r\n */\r\nvar CentralAxesLayoutManager = /** @class */ (function (_super) {\r\n __extends(CentralAxesLayoutManager, _super);\r\n function CentralAxesLayoutManager(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, options) || this;\r\n _this.type = LayoutMangerType_1.ELayoutManagerType.CentralAxes;\r\n _this.horizontalAxisPositionCoordinateModeProperty = EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.Relative;\r\n _this.verticalAxisPositionCoordinateModeProperty = EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode.Relative;\r\n _this.horizontalAxisPositionProperty = 0.5;\r\n _this.verticalAxisPositionProperty = 0.5;\r\n _this.verticalAxisPositionProperty = (_a = options === null || options === void 0 ? void 0 : options.verticalAxisPosition) !== null && _a !== void 0 ? _a : _this.verticalAxisPositionProperty;\r\n _this.verticalAxisPositionCoordinateModeProperty =\r\n (_b = options === null || options === void 0 ? void 0 : options.verticalAxisPositionCoordinateMode) !== null && _b !== void 0 ? _b : _this.verticalAxisPositionCoordinateModeProperty;\r\n _this.horizontalAxisPositionProperty = (_c = options === null || options === void 0 ? void 0 : options.horizontalAxisPosition) !== null && _c !== void 0 ? _c : _this.horizontalAxisPositionProperty;\r\n _this.horizontalAxisPositionCoordinateModeProperty =\r\n (_d = options === null || options === void 0 ? void 0 : options.horizontalAxisPositionCoordinateMode) !== null && _d !== void 0 ? _d : _this.horizontalAxisPositionCoordinateModeProperty;\r\n _this.leftInnerAxesLayoutStrategy = new LeftAlignedInnerAxisLayoutStrategy_1.LeftAlignedInnerAxisLayoutStrategy({\r\n axisPosition: _this.verticalAxisPositionProperty,\r\n coordinateMode: _this.verticalAxisPositionCoordinateModeProperty\r\n });\r\n _this.rightInnerAxesLayoutStrategy = new RightAlignedInnerAxisLayoutStrategy_1.RightAlignedInnerAxisLayoutStrategy({\r\n axisPosition: _this.verticalAxisPositionProperty,\r\n coordinateMode: _this.verticalAxisPositionCoordinateModeProperty\r\n });\r\n _this.topInnerAxesLayoutStrategy = new TopAlignedInnerAxisLayoutStrategy_1.TopAlignedInnerAxisLayoutStrategy({\r\n axisPosition: _this.horizontalAxisPositionProperty,\r\n coordinateMode: _this.horizontalAxisPositionCoordinateModeProperty\r\n });\r\n _this.bottomInnerAxesLayoutStrategy = new BottomAlignedInnerAxisLayoutStrategy_1.BottomAlignedInnerAxisLayoutStrategy({\r\n axisPosition: _this.horizontalAxisPositionProperty,\r\n coordinateMode: _this.horizontalAxisPositionCoordinateModeProperty\r\n });\r\n return _this;\r\n }\r\n Object.defineProperty(CentralAxesLayoutManager.prototype, \"horizontalAxisPositionCoordinateMode\", {\r\n /**\r\n * The Coordinate mode. See {@link EInnerAxisPlacementCoordinateMode} for a list of values\r\n * @remarks Want to display an annotation stretching across the entire width (or height) or the {@link SciChartSurface}?\r\n * The {@link EInnerAxisPlacementCoordinateMode} enum has options which allow for relative, absolute or pixel coordinates which define annotation\r\n * placement.\r\n */\r\n get: function () {\r\n return this.horizontalAxisPositionCoordinateModeProperty;\r\n },\r\n /**\r\n * The Coordinate mode. See {@link EInnerAxisPlacementCoordinateMode} for a list of values\r\n * @remarks Want to display an annotation stretching across the entire width (or height) or the {@link SciChartSurface}?\r\n * The {@link EInnerAxisPlacementCoordinateMode} enum has options which allow for relative, absolute or pixel coordinates which define annotation\r\n * placement.\r\n */\r\n set: function (value) {\r\n this.horizontalAxisPositionCoordinateModeProperty = value;\r\n this.topInnerAxesLayoutStrategy.coordinateMode = value;\r\n this.bottomInnerAxesLayoutStrategy.coordinateMode = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COORDINATE_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CentralAxesLayoutManager.prototype, \"verticalAxisPositionCoordinateMode\", {\r\n /**\r\n * The Coordinate mode. See {@link EInnerAxisPlacementCoordinateMode} for a list of values\r\n * @remarks Want to display an annotation stretching across the entire width (or height) or the {@link SciChartSurface}?\r\n * The {@link EInnerAxisPlacementCoordinateMode} enum has options which allow for relative, absolute or pixel coordinates which define annotation\r\n * placement.\r\n */\r\n get: function () {\r\n return this.verticalAxisPositionCoordinateModeProperty;\r\n },\r\n /**\r\n * The Coordinate mode. See {@link EInnerAxisPlacementCoordinateMode} for a list of values\r\n * @remarks Want to display an annotation stretching across the entire width (or height) or the {@link SciChartSurface}?\r\n * The {@link EInnerAxisPlacementCoordinateMode} enum has options which allow for relative, absolute or pixel coordinates which define annotation\r\n * placement.\r\n */\r\n set: function (value) {\r\n this.verticalAxisPositionCoordinateModeProperty = value;\r\n this.rightInnerAxesLayoutStrategy.coordinateMode = value;\r\n this.leftInnerAxesLayoutStrategy.coordinateMode = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COORDINATE_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CentralAxesLayoutManager.prototype, \"horizontalAxisPosition\", {\r\n /**\r\n * Gets or sets the coordinate of the Layout Area anchor point\r\n * @remarks The axisPosition obeys {@link coordinateMode} which defines whether it is a pixel, data-value or relative coordinate\r\n */\r\n get: function () {\r\n return this.horizontalAxisPositionProperty;\r\n },\r\n /**\r\n * Gets or sets the coordinate of the Layout Area anchor point\r\n * @remarks The axisPosition obeys {@link coordinateMode} which defines whether it is a pixel, data-value or relative coordinate\r\n */\r\n set: function (value) {\r\n this.horizontalAxisPositionProperty = value;\r\n this.topInnerAxesLayoutStrategy.axisPosition = value;\r\n this.bottomInnerAxesLayoutStrategy.axisPosition = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_POSITION_COORDINATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CentralAxesLayoutManager.prototype, \"verticalAxisPosition\", {\r\n /**\r\n * Gets or sets the coordinate of the Layout Area anchor point\r\n * @remarks The axisPosition obeys {@link coordinateMode} which defines whether it is a pixel, data-value or relative coordinate\r\n */\r\n get: function () {\r\n return this.verticalAxisPositionProperty;\r\n },\r\n /**\r\n * Gets or sets the coordinate of the Layout Area anchor point\r\n * @remarks The axisPosition obeys {@link coordinateMode} which defines whether it is a pixel, data-value or relative coordinate\r\n */\r\n set: function (value) {\r\n this.verticalAxisPositionProperty = value;\r\n this.rightInnerAxesLayoutStrategy.axisPosition = value;\r\n this.leftInnerAxesLayoutStrategy.axisPosition = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_POSITION_COORDINATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CentralAxesLayoutManager.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n horizontalAxisPosition: this.horizontalAxisPosition,\r\n horizontalAxisPositionCoordinateMode: this.horizontalAxisPositionCoordinateMode,\r\n verticalAxisPosition: this.verticalAxisPosition,\r\n verticalAxisPositionCoordinateMode: this.verticalAxisPositionCoordinateMode\r\n };\r\n Object.assign(json, options);\r\n return json;\r\n };\r\n /**\r\n * @summary Notifies subscribers that a property has changed and the chart requires redrawing\r\n * @description SciChart provides fully reactive components, changing any property or changing data will cause the {@link SciChartSurface} to\r\n * redraw where necessary.\r\n * @param propertyName The name of the property which has changed\r\n */\r\n CentralAxesLayoutManager.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n if ((_a = this.sciChartSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement) {\r\n this.sciChartSurface.invalidateElement();\r\n }\r\n };\r\n CentralAxesLayoutManager.prototype.groupAxesByLayoutStrategy = function () {\r\n this.axesGroupedByLayoutStrategy.clear();\r\n var _a = this.axesGroupedByLayoutStrategy, topInnerAxes = _a.topInnerAxes, bottomInnerAxes = _a.bottomInnerAxes, leftInnerAxes = _a.leftInnerAxes, rightInnerAxes = _a.rightInnerAxes;\r\n var groupAxes = function (axes) {\r\n axes.forEach(function (axis) {\r\n var axisAlignment = axis.axisAlignment;\r\n axis.isInnerAxis = true;\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n topInnerAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n bottomInnerAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n leftInnerAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n rightInnerAxes.push(axis);\r\n break;\r\n }\r\n });\r\n };\r\n groupAxes(this.sciChartSurface.xAxes.asArray());\r\n groupAxes(this.sciChartSurface.yAxes.asArray());\r\n };\r\n return CentralAxesLayoutManager;\r\n}(LayoutManager_1.LayoutManager));\r\nexports.CentralAxesLayoutManager = CentralAxesLayoutManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChartLayoutState = void 0;\r\n/**\r\n * @ignore\r\n */\r\nvar ChartLayoutState = /** @class */ (function () {\r\n function ChartLayoutState() {\r\n this.leftInnerAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.topInnerAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.bottomInnerAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.rightInnerAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.leftOuterAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.topOuterAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.bottomOuterAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.rightOuterAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n }\r\n ChartLayoutState.prototype.clear = function () {\r\n this.leftInnerAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.topInnerAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.bottomInnerAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.rightInnerAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.leftOuterAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.topOuterAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.bottomOuterAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n this.rightOuterAreaSize = ChartLayoutState.DEFAULT_SIZE;\r\n };\r\n ChartLayoutState.DEFAULT_SIZE = 0;\r\n return ChartLayoutState;\r\n}());\r\nexports.ChartLayoutState = ChartLayoutState;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EInnerAxisPlacementCoordinateMode = void 0;\r\n/**\r\n * Defines the CoordinateMode for axisPosition of CenteredAxisLayoutStrategy\r\n */\r\nvar EInnerAxisPlacementCoordinateMode;\r\n(function (EInnerAxisPlacementCoordinateMode) {\r\n /**\r\n * The coordinate is a data-value,\r\n * corresponding to the value on the {@link AxisBase2D | Axis} or in the\r\n * {@link IRenderableSeries.dataSeries | DataSeries}\r\n */\r\n EInnerAxisPlacementCoordinateMode[EInnerAxisPlacementCoordinateMode[\"DataValue\"] = 0] = \"DataValue\";\r\n /**\r\n * The coordinate is a pixel coordinate,\r\n * corresponding to the distance from the top-left of the\r\n * {@link SciChartSurface}\r\n */\r\n EInnerAxisPlacementCoordinateMode[EInnerAxisPlacementCoordinateMode[\"Pixel\"] = 1] = \"Pixel\";\r\n /**\r\n * The coordinate is relative,\r\n * where 0.0 corresponds to the left (or top) of the {@link SciChartSurface}\r\n * and 1.0 corresponds to the right (or bottom) of the {@link SciChartSurface}\r\n */\r\n EInnerAxisPlacementCoordinateMode[EInnerAxisPlacementCoordinateMode[\"Relative\"] = 2] = \"Relative\";\r\n})(EInnerAxisPlacementCoordinateMode = exports.EInnerAxisPlacementCoordinateMode || (exports.EInnerAxisPlacementCoordinateMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LayoutManager = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar AxisAlignment_1 = require(\"../../types/AxisAlignment\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar LayoutMangerType_1 = require(\"../../types/LayoutMangerType\");\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar BottomAlignedInnerAxisLayoutStrategy_1 = require(\"./BottomAlignedInnerAxisLayoutStrategy\");\r\nvar BottomAlignedOuterAxisLayoutStrategy_1 = require(\"./BottomAlignedOuterAxisLayoutStrategy\");\r\nvar ChartLayoutState_1 = require(\"./ChartLayoutState\");\r\nvar LayoutStrategyAxes_1 = require(\"./LayoutStrategyAxes\");\r\nvar LeftAlignedInnerAxisLayoutStrategy_1 = require(\"./LeftAlignedInnerAxisLayoutStrategy\");\r\nvar LeftAlignedOuterAxisLayoutStrategy_1 = require(\"./LeftAlignedOuterAxisLayoutStrategy\");\r\nvar RightAlignedInnerAxisLayoutStrategy_1 = require(\"./RightAlignedInnerAxisLayoutStrategy\");\r\nvar RightAlignedOuterAxisLayoutStrategy_1 = require(\"./RightAlignedOuterAxisLayoutStrategy\");\r\nvar TopAlignedInnerAxisLayoutStrategy_1 = require(\"./TopAlignedInnerAxisLayoutStrategy\");\r\nvar TopAlignedOuterAxisLayoutStrategy_1 = require(\"./TopAlignedOuterAxisLayoutStrategy\");\r\nvar MIN_SERIES_AREA_SIZE = 10;\r\n/**\r\n * The job of the ILayoutManager is to calculate the size and location of the axes and the resulting size of the seriesViewRect - the area where series will be drawn.\r\n * This is done by deferring to the LayoutStrategy for each area which could house axes.\r\n */\r\nvar LayoutManager = /** @class */ (function () {\r\n // tslint:disable: max-line-length\r\n function LayoutManager(options) {\r\n this.type = LayoutMangerType_1.ELayoutManagerType.Default;\r\n /**\r\n * Layout strategy for layout of left aligned axis outside\r\n */\r\n this.leftOuterAxesLayoutStrategyProperty = new LeftAlignedOuterAxisLayoutStrategy_1.LeftAlignedOuterAxisLayoutStrategy();\r\n /**\r\n * Layout strategy for layout of right aligned axis outside\r\n */\r\n this.rightOuterAxesLayoutStrategyProperty = new RightAlignedOuterAxisLayoutStrategy_1.RightAlignedOuterAxisLayoutStrategy();\r\n /**\r\n * Layout strategy for layout of top aligned axis outside\r\n */\r\n this.topOuterAxesLayoutStrategyProperty = new TopAlignedOuterAxisLayoutStrategy_1.TopAlignedOuterAxisLayoutStrategy();\r\n /**\r\n * Layout strategy for layout of bottom aligned axis outside\r\n */\r\n this.bottomOuterAxesLayoutStrategyProperty = new BottomAlignedOuterAxisLayoutStrategy_1.BottomAlignedOuterAxisLayoutStrategy();\r\n /**\r\n * Layout strategy for layout of left aligned inner axis\r\n */\r\n this.leftInnerAxesLayoutStrategy = new LeftAlignedInnerAxisLayoutStrategy_1.LeftAlignedInnerAxisLayoutStrategy();\r\n /**\r\n * Layout strategy for layout of right aligned inner axis\r\n */\r\n this.rightInnerAxesLayoutStrategy = new RightAlignedInnerAxisLayoutStrategy_1.RightAlignedInnerAxisLayoutStrategy();\r\n /**\r\n * Layout strategy for layout of top aligned inner axis\r\n */\r\n this.topInnerAxesLayoutStrategy = new TopAlignedInnerAxisLayoutStrategy_1.TopAlignedInnerAxisLayoutStrategy();\r\n /**\r\n * Layout strategy for layout of bottom aligned inner axis\r\n */\r\n this.bottomInnerAxesLayoutStrategy = new BottomAlignedInnerAxisLayoutStrategy_1.BottomAlignedInnerAxisLayoutStrategy();\r\n this.chartLayoutState = new ChartLayoutState_1.ChartLayoutState();\r\n this.axesGroupedByLayoutStrategy = new LayoutStrategyAxes_1.LayoutStrategyAxes();\r\n this.leftOuterAxesLayoutStrategy = this.createStrategy(options === null || options === void 0 ? void 0 : options.LeftOuter, this.leftOuterAxesLayoutStrategy);\r\n this.rightOuterAxesLayoutStrategy = this.createStrategy(options === null || options === void 0 ? void 0 : options.RightOuter, this.rightOuterAxesLayoutStrategy);\r\n this.topOuterAxesLayoutStrategy = this.createStrategy(options === null || options === void 0 ? void 0 : options.TopOuter, this.topOuterAxesLayoutStrategy);\r\n this.bottomOuterAxesLayoutStrategy = this.createStrategy(options === null || options === void 0 ? void 0 : options.BottomOuter, this.bottomOuterAxesLayoutStrategy);\r\n this.leftInnerAxesLayoutStrategy = this.createStrategy(options === null || options === void 0 ? void 0 : options.LeftInner, this.leftInnerAxesLayoutStrategy);\r\n this.rightInnerAxesLayoutStrategy = this.createStrategy(options === null || options === void 0 ? void 0 : options.RightInner, this.rightInnerAxesLayoutStrategy);\r\n this.topInnerAxesLayoutStrategy = this.createStrategy(options === null || options === void 0 ? void 0 : options.TopInner, this.topInnerAxesLayoutStrategy);\r\n this.bottomInnerAxesLayoutStrategy = this.createStrategy(options === null || options === void 0 ? void 0 : options.BottomInner, this.bottomInnerAxesLayoutStrategy);\r\n }\r\n Object.defineProperty(LayoutManager.prototype, \"leftOuterAxesLayoutStrategy\", {\r\n get: function () {\r\n return this.leftOuterAxesLayoutStrategyProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n var currentValue = this.leftOuterAxesLayoutStrategyProperty;\r\n if (currentValue !== value) {\r\n this.leftOuterAxesLayoutStrategyProperty = value;\r\n if (currentValue.isStacked && !value.isStacked) {\r\n this.groupAxesByLayoutStrategy();\r\n resetAxes(this.axesGroupedByLayoutStrategy.leftOuterAxes);\r\n }\r\n (_a = this.sciChartSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayoutManager.prototype, \"rightOuterAxesLayoutStrategy\", {\r\n get: function () {\r\n return this.rightOuterAxesLayoutStrategyProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n var currentValue = this.rightOuterAxesLayoutStrategyProperty;\r\n if (currentValue !== value) {\r\n this.rightOuterAxesLayoutStrategyProperty = value;\r\n if (currentValue.isStacked && !value.isStacked) {\r\n this.groupAxesByLayoutStrategy();\r\n resetAxes(this.axesGroupedByLayoutStrategy.rightOuterAxes);\r\n }\r\n (_a = this.sciChartSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayoutManager.prototype, \"topOuterAxesLayoutStrategy\", {\r\n get: function () {\r\n return this.topOuterAxesLayoutStrategyProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n var currentValue = this.topOuterAxesLayoutStrategyProperty;\r\n if (currentValue !== value) {\r\n this.topOuterAxesLayoutStrategyProperty = value;\r\n if (currentValue.isStacked && !value.isStacked) {\r\n this.groupAxesByLayoutStrategy();\r\n resetAxes(this.axesGroupedByLayoutStrategy.topOuterAxes);\r\n }\r\n (_a = this.sciChartSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayoutManager.prototype, \"bottomOuterAxesLayoutStrategy\", {\r\n get: function () {\r\n return this.bottomOuterAxesLayoutStrategyProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n var currentValue = this.bottomOuterAxesLayoutStrategyProperty;\r\n if (currentValue !== value) {\r\n this.bottomOuterAxesLayoutStrategyProperty = value;\r\n if (currentValue.isStacked && !value.isStacked) {\r\n this.groupAxesByLayoutStrategy();\r\n resetAxes(this.axesGroupedByLayoutStrategy.bottomOuterAxes);\r\n }\r\n (_a = this.sciChartSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LayoutManager.prototype.getAxisLayoutStrategy = function (axisAlignment, isInnerAxis) {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Left: {\r\n return isInnerAxis ? this.leftInnerAxesLayoutStrategy : this.leftOuterAxesLayoutStrategy;\r\n }\r\n case AxisAlignment_1.EAxisAlignment.Right: {\r\n return isInnerAxis ? this.rightInnerAxesLayoutStrategy : this.rightOuterAxesLayoutStrategy;\r\n }\r\n case AxisAlignment_1.EAxisAlignment.Top: {\r\n return isInnerAxis ? this.topInnerAxesLayoutStrategy : this.topOuterAxesLayoutStrategy;\r\n }\r\n case AxisAlignment_1.EAxisAlignment.Bottom: {\r\n return isInnerAxis ? this.bottomInnerAxesLayoutStrategy : this.bottomOuterAxesLayoutStrategy;\r\n }\r\n default: {\r\n return (0, AxisAlignment_1.handleInvalidAxisAlignment)(axisAlignment);\r\n }\r\n }\r\n };\r\n LayoutManager.prototype.layoutChart = function (viewportSize, padding) {\r\n var _a, _b, _c, _d;\r\n this.groupAxesByLayoutStrategy();\r\n // Padding are hardcoded for now\r\n var paddingRight = (_a = padding === null || padding === void 0 ? void 0 : padding.right) !== null && _a !== void 0 ? _a : 0;\r\n var paddingLeft = (_b = padding === null || padding === void 0 ? void 0 : padding.left) !== null && _b !== void 0 ? _b : 0;\r\n var paddingTop = (_c = padding === null || padding === void 0 ? void 0 : padding.top) !== null && _c !== void 0 ? _c : 0;\r\n var paddingBottom = (_d = padding === null || padding === void 0 ? void 0 : padding.bottom) !== null && _d !== void 0 ? _d : 0;\r\n var availableWidth = viewportSize.width - paddingLeft - paddingRight;\r\n var availableHeight = viewportSize.height - paddingTop - paddingBottom;\r\n try {\r\n // measure outer axes areas\r\n this.measureTopOuterAxes();\r\n this.measureBottomOuterAxes();\r\n this.measureLeftOuterAxes();\r\n this.measureRightOuterAxes();\r\n // measure inner axes areas\r\n this.measureTopInnerAxes();\r\n this.measureBottomInnerAxes();\r\n this.measureLeftInnerAxes();\r\n this.measureRightInnerAxes();\r\n var remainingWidth = availableWidth - this.chartLayoutState.leftOuterAreaSize - this.chartLayoutState.rightOuterAreaSize;\r\n var remainingHeight = availableHeight - this.chartLayoutState.topOuterAreaSize - this.chartLayoutState.bottomOuterAreaSize;\r\n var leftStart = paddingLeft;\r\n var leftEnd = leftStart + this.chartLayoutState.leftOuterAreaSize;\r\n var rightStart = leftEnd + (remainingWidth < MIN_SERIES_AREA_SIZE ? MIN_SERIES_AREA_SIZE : remainingWidth);\r\n var rightEnd = rightStart + this.chartLayoutState.rightOuterAreaSize;\r\n var topStart = paddingTop;\r\n var topEnd = topStart + this.chartLayoutState.topOuterAreaSize;\r\n var bottomStart = topEnd + (remainingHeight < MIN_SERIES_AREA_SIZE ? MIN_SERIES_AREA_SIZE : remainingHeight);\r\n var bottomEnd = bottomStart + this.chartLayoutState.bottomOuterAreaSize;\r\n // layout center parts\r\n if (this.sciChartSurface.drawSeriesBehindAxis) {\r\n this.layoutChartCenter(leftStart, topStart, rightEnd, bottomEnd);\r\n }\r\n else {\r\n this.layoutChartCenter(leftEnd, topEnd, rightStart, bottomStart);\r\n }\r\n // layout outer axes\r\n this.leftOuterAxesLayoutStrategy.layoutAxes(leftStart, topEnd, leftEnd - this.sciChartSurface.leftViewportBorder, bottomStart, this.axesGroupedByLayoutStrategy.leftOuterAxes);\r\n this.rightOuterAxesLayoutStrategy.layoutAxes(rightStart + this.sciChartSurface.rightViewportBorder, topEnd, rightEnd, bottomStart, this.axesGroupedByLayoutStrategy.rightOuterAxes);\r\n this.topOuterAxesLayoutStrategy.layoutAxes(leftEnd, topStart, rightStart, topEnd - this.sciChartSurface.topViewportBorder, this.axesGroupedByLayoutStrategy.topOuterAxes);\r\n this.bottomOuterAxesLayoutStrategy.layoutAxes(leftEnd, bottomStart + this.sciChartSurface.bottomViewportBorder, rightStart, bottomEnd, this.axesGroupedByLayoutStrategy.bottomOuterAxes);\r\n var innerLeftEnd = leftEnd + this.chartLayoutState.leftInnerAreaSize;\r\n var innerRightStart = rightStart - this.chartLayoutState.rightInnerAreaSize;\r\n var innerTopEnd = topEnd + this.chartLayoutState.topInnerAreaSize;\r\n var innerBottomStart = bottomStart - this.chartLayoutState.bottomInnerAreaSize;\r\n // layout inner axes\r\n this.leftInnerAxesLayoutStrategy.layoutAxes(leftEnd, topEnd, innerLeftEnd, bottomStart, this.axesGroupedByLayoutStrategy.leftInnerAxes);\r\n this.rightInnerAxesLayoutStrategy.layoutAxes(innerRightStart, topEnd, rightStart, bottomStart, this.axesGroupedByLayoutStrategy.rightInnerAxes);\r\n this.topInnerAxesLayoutStrategy.layoutAxes(leftEnd, topEnd, rightStart, innerTopEnd, this.axesGroupedByLayoutStrategy.topInnerAxes);\r\n this.bottomInnerAxesLayoutStrategy.layoutAxes(leftEnd, innerBottomStart, rightStart, bottomStart, this.axesGroupedByLayoutStrategy.bottomInnerAxes);\r\n return this.sciChartSurface.seriesViewRect;\r\n }\r\n finally {\r\n this.chartLayoutState.clear();\r\n }\r\n return undefined;\r\n };\r\n LayoutManager.prototype.toJSON = function () {\r\n var options = {\r\n BottomInner: this.bottomInnerAxesLayoutStrategy.toJSON(),\r\n BottomOuter: this.bottomOuterAxesLayoutStrategy.toJSON(),\r\n LeftInner: this.leftInnerAxesLayoutStrategy.toJSON(),\r\n LeftOuter: this.leftOuterAxesLayoutStrategy.toJSON(),\r\n RightInner: this.rightInnerAxesLayoutStrategy.toJSON(),\r\n RightOuter: this.rightOuterAxesLayoutStrategy.toJSON(),\r\n TopInner: this.topInnerAxesLayoutStrategy.toJSON(),\r\n TopOuter: this.topOuterAxesLayoutStrategy.toJSON()\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n LayoutManager.prototype.measureLeftOuterAxes = function () {\r\n this.leftOuterAxesLayoutStrategy.measureAxes(this.sciChartSurface, this.chartLayoutState, this.axesGroupedByLayoutStrategy.leftOuterAxes);\r\n };\r\n LayoutManager.prototype.measureRightOuterAxes = function () {\r\n this.rightOuterAxesLayoutStrategy.measureAxes(this.sciChartSurface, this.chartLayoutState, this.axesGroupedByLayoutStrategy.rightOuterAxes);\r\n };\r\n LayoutManager.prototype.measureTopOuterAxes = function () {\r\n this.topOuterAxesLayoutStrategy.measureAxes(this.sciChartSurface, this.chartLayoutState, this.axesGroupedByLayoutStrategy.topOuterAxes);\r\n };\r\n LayoutManager.prototype.measureBottomOuterAxes = function () {\r\n this.bottomOuterAxesLayoutStrategy.measureAxes(this.sciChartSurface, this.chartLayoutState, this.axesGroupedByLayoutStrategy.bottomOuterAxes);\r\n };\r\n LayoutManager.prototype.measureLeftInnerAxes = function () {\r\n this.leftInnerAxesLayoutStrategy.measureAxes(this.sciChartSurface, this.chartLayoutState, this.axesGroupedByLayoutStrategy.leftInnerAxes);\r\n };\r\n LayoutManager.prototype.measureRightInnerAxes = function () {\r\n this.rightInnerAxesLayoutStrategy.measureAxes(this.sciChartSurface, this.chartLayoutState, this.axesGroupedByLayoutStrategy.rightInnerAxes);\r\n };\r\n LayoutManager.prototype.measureTopInnerAxes = function () {\r\n this.topInnerAxesLayoutStrategy.measureAxes(this.sciChartSurface, this.chartLayoutState, this.axesGroupedByLayoutStrategy.topInnerAxes);\r\n };\r\n LayoutManager.prototype.measureBottomInnerAxes = function () {\r\n this.bottomInnerAxesLayoutStrategy.measureAxes(this.sciChartSurface, this.chartLayoutState, this.axesGroupedByLayoutStrategy.bottomInnerAxes);\r\n };\r\n LayoutManager.prototype.groupAxesByLayoutStrategy = function () {\r\n this.axesGroupedByLayoutStrategy.clear();\r\n var _a = this.axesGroupedByLayoutStrategy, topInnerAxes = _a.topInnerAxes, bottomInnerAxes = _a.bottomInnerAxes, leftInnerAxes = _a.leftInnerAxes, rightInnerAxes = _a.rightInnerAxes, topOuterAxes = _a.topOuterAxes, bottomOuterAxes = _a.bottomOuterAxes, leftOuterAxes = _a.leftOuterAxes, rightOuterAxes = _a.rightOuterAxes;\r\n var groupAxes = function (axes) {\r\n axes.forEach(function (axis) {\r\n var axisAlignment = axis.axisAlignment, isInnerAxis = axis.isInnerAxis, isVisible = axis.isVisible;\r\n if (isInnerAxis) {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n topInnerAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n bottomInnerAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n leftInnerAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n rightInnerAxes.push(axis);\r\n break;\r\n }\r\n }\r\n else {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n topOuterAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n bottomOuterAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n leftOuterAxes.push(axis);\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n rightOuterAxes.push(axis);\r\n break;\r\n }\r\n }\r\n });\r\n };\r\n groupAxes(this.sciChartSurface.xAxes.asArray());\r\n groupAxes(this.sciChartSurface.yAxes.asArray());\r\n };\r\n LayoutManager.prototype.layoutChartCenter = function (left, top, right, bottom) {\r\n this.setSeriesViewRect(left, top, right, bottom);\r\n this.sciChartSurface.annotationUnderlaySurfaceViewRect = Rect_1.Rect.createWithCoords(left, top, right, bottom);\r\n this.sciChartSurface.annotationOverlaySurfaceViewRect = Rect_1.Rect.createWithCoords(left, top, right, bottom);\r\n this.sciChartSurface.chartModifierSurfaceViewRect = Rect_1.Rect.createWithCoords(left, top, right, bottom);\r\n };\r\n LayoutManager.prototype.setSeriesViewRect = function (left, top, right, bottom) {\r\n var seriesViewRect = this.sciChartSurface.seriesViewRect;\r\n var newRect = Rect_1.Rect.createWithCoords(left, top, right, bottom);\r\n if (!seriesViewRect || !Rect_1.Rect.isEqual(seriesViewRect, newRect)) {\r\n this.sciChartSurface.setSeriesViewRect(newRect);\r\n }\r\n };\r\n LayoutManager.prototype.createStrategy = function (option, strategy) {\r\n if (option && option.type !== strategy.type) {\r\n if (\"measureAxes\" in option) {\r\n return option;\r\n }\r\n if (option.type === LayoutStrategyType_1.ELayoutStrategyType.Custom) {\r\n return (0, classFactory_1.createType)(BaseType_1.EBaseType.LayoutStrategy, option.customType, undefined, option.options);\r\n }\r\n else {\r\n return (0, classFactory_1.createType)(BaseType_1.EBaseType.LayoutStrategy, option.type, undefined, option.options);\r\n }\r\n }\r\n else {\r\n return strategy;\r\n }\r\n };\r\n return LayoutManager;\r\n}());\r\nexports.LayoutManager = LayoutManager;\r\nvar resetAxes = function (axes) {\r\n if (axes.length > 0) {\r\n axes[0].isPrimaryAxis = true;\r\n }\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LayoutStrategyAxes = void 0;\r\n/**\r\n * @ignore\r\n */\r\nvar LayoutStrategyAxes = /** @class */ (function () {\r\n function LayoutStrategyAxes() {\r\n this.topInnerAxes = [];\r\n this.bottomInnerAxes = [];\r\n this.leftInnerAxes = [];\r\n this.rightInnerAxes = [];\r\n this.topOuterAxes = [];\r\n this.bottomOuterAxes = [];\r\n this.leftOuterAxes = [];\r\n this.rightOuterAxes = [];\r\n }\r\n LayoutStrategyAxes.prototype.clear = function () {\r\n this.topInnerAxes = [];\r\n this.bottomInnerAxes = [];\r\n this.leftInnerAxes = [];\r\n this.rightInnerAxes = [];\r\n this.topOuterAxes = [];\r\n this.bottomOuterAxes = [];\r\n this.leftOuterAxes = [];\r\n this.rightOuterAxes = [];\r\n };\r\n return LayoutStrategyAxes;\r\n}());\r\nexports.LayoutStrategyAxes = LayoutStrategyAxes;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LeftAlignedInnerAxisLayoutStrategy = void 0;\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseCenteredAxisLayoutStrategy_1 = require(\"./BaseCenteredAxisLayoutStrategy\");\r\n/**\r\n * The default LayoutStrategy for Left Inner Axis\r\n */\r\nvar LeftAlignedInnerAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(LeftAlignedInnerAxisLayoutStrategy, _super);\r\n function LeftAlignedInnerAxisLayoutStrategy(options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.LeftInner;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsRightStrategy;\r\n return _this;\r\n }\r\n LeftAlignedInnerAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n this.sciChartSurface = sciChartSurface;\r\n var requiredSize = 0;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n requiredSize += (0, AxisLayoutHelpers_1.getVerticalAxisRequiredSize)(axis.axisLayoutState);\r\n });\r\n chartLayoutState.leftInnerAreaSize = Math.max(chartLayoutState.leftInnerAreaSize, requiredSize);\r\n };\r\n LeftAlignedInnerAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n // Set axisLength to default value which is seriesViewRect.height\r\n axes.forEach(function (axis) {\r\n axis.axisLength = undefined;\r\n axis.offset = 0;\r\n });\r\n if (axes.length === 0) {\r\n return;\r\n }\r\n var leftCoord = left;\r\n // calculate custom axis position\r\n if (this.axisPosition !== undefined) {\r\n var horizontalAxis = this.sciChartSurface.getXAxisById(this.orthogonalAxisId) ||\r\n this.sciChartSurface.getYAxisById(this.orthogonalAxisId);\r\n if (!horizontalAxis || !horizontalAxis.isHorizontalAxis) {\r\n throw new Error(\"orthogonalAxisId should be a valid id of horizontal axis on the surface!\");\r\n }\r\n var coordinateCalculator = horizontalAxis.getCurrentCoordinateCalculator();\r\n var absoluteAxisPosition = (0, AxisLayoutHelpers_1.getCoordinateWithCoordinateMode)(this.axisPosition, coordinateCalculator, this.coordinateMode);\r\n var offset = horizontalAxis.parentSurface.seriesViewRect.left;\r\n leftCoord = absoluteAxisPosition + offset;\r\n }\r\n this.layoutAxesFromLeftToRight(leftCoord, top, right, bottom, axes);\r\n };\r\n return LeftAlignedInnerAxisLayoutStrategy;\r\n}(BaseCenteredAxisLayoutStrategy_1.BaseCenteredAxisLayoutStrategy));\r\nexports.LeftAlignedInnerAxisLayoutStrategy = LeftAlignedInnerAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LeftAlignedOuterAxisLayoutStrategy = void 0;\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\n/**\r\n * The default LayoutStrategy for Left Axis\r\n */\r\nvar LeftAlignedOuterAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(LeftAlignedOuterAxisLayoutStrategy, _super);\r\n function LeftAlignedOuterAxisLayoutStrategy() {\r\n var _this = _super.call(this) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.LeftOuter;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsLeftStrategy;\r\n return _this;\r\n }\r\n LeftAlignedOuterAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n var _a, _b;\r\n var requiredSize = (_b = (_a = sciChartSurface.adjustedPadding) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0;\r\n requiredSize += sciChartSurface.leftViewportBorder + sciChartSurface.leftCanvasBorder;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n requiredSize += (0, AxisLayoutHelpers_1.getVerticalAxisRequiredSize)(axis.axisLayoutState);\r\n _this.updateTopAndBottomChartLayoutState(chartLayoutState, axis.axisLayoutState.additionalTopSize, axis.axisLayoutState.additionalBottomSize);\r\n });\r\n chartLayoutState.leftOuterAreaSize = Math.max(chartLayoutState.leftOuterAreaSize, requiredSize);\r\n };\r\n LeftAlignedOuterAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n // Set axisLength to default value which is seriesViewRect.height\r\n axes.forEach(function (axis) {\r\n axis.axisLength = undefined;\r\n axis.offset = 0;\r\n });\r\n this.layoutAxesFromRightToLeft(left, top, right, bottom, axes);\r\n };\r\n return LeftAlignedOuterAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.LeftAlignedOuterAxisLayoutStrategy = LeftAlignedOuterAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LeftAlignedOuterVerticallyStackedAxisLayoutStrategy = void 0;\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\n/**\r\n * The Vertically Stacked Layout Strategy for Left Axes\r\n */\r\nvar LeftAlignedOuterVerticallyStackedAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(LeftAlignedOuterVerticallyStackedAxisLayoutStrategy, _super);\r\n function LeftAlignedOuterVerticallyStackedAxisLayoutStrategy() {\r\n var _this = _super.call(this) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.LeftStacked;\r\n _this.isStacked = true;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsLeftStrategy;\r\n return _this;\r\n }\r\n LeftAlignedOuterVerticallyStackedAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n var _a;\r\n var requiredSize = 0;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n var currentAxisRequiredSize = (0, AxisLayoutHelpers_1.getVerticalAxisRequiredSize)(axis.axisLayoutState);\r\n requiredSize = currentAxisRequiredSize > requiredSize ? currentAxisRequiredSize : requiredSize;\r\n });\r\n var firstStackedAxis = axes[0];\r\n var lastStackedAxis = axes[axes.length - 1];\r\n this.updateTopAndBottomChartLayoutState(chartLayoutState, firstStackedAxis === null || firstStackedAxis === void 0 ? void 0 : firstStackedAxis.axisLayoutState.additionalTopSize, lastStackedAxis === null || lastStackedAxis === void 0 ? void 0 : lastStackedAxis.axisLayoutState.additionalBottomSize);\r\n var leftViewportBorder = sciChartSurface.leftViewportBorder, leftCanvasBorder = sciChartSurface.leftCanvasBorder, adjustedPadding = sciChartSurface.adjustedPadding;\r\n requiredSize += (_a = leftViewportBorder + leftCanvasBorder + (adjustedPadding === null || adjustedPadding === void 0 ? void 0 : adjustedPadding.left)) !== null && _a !== void 0 ? _a : 0;\r\n chartLayoutState.leftOuterAreaSize = Math.max(chartLayoutState.leftOuterAreaSize, requiredSize);\r\n };\r\n LeftAlignedOuterVerticallyStackedAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n var _this = this;\r\n // doesn't include top border of the first and bottom border of the last axis\r\n var totalAxisAreaHeight = bottom - top;\r\n var firstAxis = axes[0];\r\n var lastAxis = axes[axes.length - 1];\r\n var axesWithDefinedLength = axes.filter(function (axis) { return axis.stackedAxisLength !== undefined; });\r\n var spaceWithoutBorders = axes.reduce(function (acc, axis) { return acc - axis.axisLayoutState.additionalBottomSize - axis.axisLayoutState.additionalTopSize; }, totalAxisAreaHeight +\r\n (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalTopSize) +\r\n (lastAxis === null || lastAxis === void 0 ? void 0 : lastAxis.axisLayoutState.additionalBottomSize));\r\n var totalDefinedAxesLength = axesWithDefinedLength.reduce(function (acc, axis) { return acc + _this.calculateTotalAxisHeight(axis, spaceWithoutBorders); }, 0);\r\n var availableSpaceForAxes = totalAxisAreaHeight +\r\n (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalTopSize) +\r\n (lastAxis === null || lastAxis === void 0 ? void 0 : lastAxis.axisLayoutState.additionalBottomSize) -\r\n totalDefinedAxesLength;\r\n if (availableSpaceForAxes < 0) {\r\n throw new Error(\"Left stacked axes with defined size total \".concat(totalDefinedAxesLength, \" pixels which is \").concat(-availableSpaceForAxes, \" more than the space available\"));\r\n }\r\n var defaultAxisReservedHeight = availableSpaceForAxes / (axes.length - axesWithDefinedLength.length);\r\n var topOffset = top - (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalTopSize);\r\n axes.forEach(function (axis) {\r\n var _a = axis.axisLayoutState, axisSize = _a.axisSize, additionalRightSize = _a.additionalRightSize, additionalBottomSize = _a.additionalBottomSize, additionalTopSize = _a.additionalTopSize;\r\n var rightOffset = right - additionalRightSize;\r\n var leftOffset = rightOffset - axisSize;\r\n var axisReservedHeight = axis.stackedAxisLength !== undefined\r\n ? _this.calculateTotalAxisHeight(axis, spaceWithoutBorders)\r\n : defaultAxisReservedHeight;\r\n var bottomOffset = topOffset + axisReservedHeight - additionalBottomSize;\r\n topOffset += additionalTopSize;\r\n axis.offset = topOffset - top;\r\n axis.axisLength = bottomOffset - topOffset;\r\n axis.isPrimaryAxis = true;\r\n axis.viewRect = Rect_1.Rect.createWithCoords(leftOffset, topOffset, rightOffset, bottomOffset);\r\n topOffset = bottomOffset + additionalBottomSize;\r\n (0, AxisLayoutHelpers_1.layoutAxisParts)(axis, _this.layoutAxisPartsStrategy);\r\n });\r\n };\r\n return LeftAlignedOuterVerticallyStackedAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.LeftAlignedOuterVerticallyStackedAxisLayoutStrategy = LeftAlignedOuterVerticallyStackedAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RightAlignedInnerAxisLayoutStrategy = void 0;\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseCenteredAxisLayoutStrategy_1 = require(\"./BaseCenteredAxisLayoutStrategy\");\r\n/**\r\n * The default LayoutStrategy for Right Inner Axis\r\n */\r\nvar RightAlignedInnerAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(RightAlignedInnerAxisLayoutStrategy, _super);\r\n function RightAlignedInnerAxisLayoutStrategy(options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.RightInner;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsLeftStrategy;\r\n return _this;\r\n }\r\n RightAlignedInnerAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n this.sciChartSurface = sciChartSurface;\r\n var requiredSize = 0;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n requiredSize += (0, AxisLayoutHelpers_1.getVerticalAxisRequiredSize)(axis.axisLayoutState);\r\n });\r\n chartLayoutState.rightInnerAreaSize = Math.max(chartLayoutState.rightInnerAreaSize, requiredSize);\r\n };\r\n RightAlignedInnerAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n // Set axisLength to default value which is seriesViewRect.height\r\n axes.forEach(function (axis) {\r\n axis.axisLength = undefined;\r\n axis.offset = 0;\r\n });\r\n if (axes.length === 0) {\r\n return;\r\n }\r\n var rightCoord = right;\r\n // calculate custom axis position\r\n if (this.axisPosition !== undefined) {\r\n var horizontalAxis = this.sciChartSurface.getXAxisById(this.orthogonalAxisId) ||\r\n this.sciChartSurface.getYAxisById(this.orthogonalAxisId);\r\n if (!horizontalAxis || !horizontalAxis.isHorizontalAxis) {\r\n throw new Error(\"orthogonalAxisId should be a valid id of horizontal axis on the surface!\");\r\n }\r\n var coordinateCalculator = horizontalAxis.getCurrentCoordinateCalculator();\r\n var absoluteAxisPosition = (0, AxisLayoutHelpers_1.getCoordinateWithCoordinateMode)(this.axisPosition, coordinateCalculator, this.coordinateMode);\r\n var offset = horizontalAxis.parentSurface.seriesViewRect.left;\r\n rightCoord = absoluteAxisPosition + offset;\r\n }\r\n this.layoutAxesFromRightToLeft(left, top, rightCoord, bottom, axes);\r\n };\r\n return RightAlignedInnerAxisLayoutStrategy;\r\n}(BaseCenteredAxisLayoutStrategy_1.BaseCenteredAxisLayoutStrategy));\r\nexports.RightAlignedInnerAxisLayoutStrategy = RightAlignedInnerAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RightAlignedOuterAxisLayoutStrategy = void 0;\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\n/**\r\n * The default LayoutStrategy for Right Axis\r\n */\r\nvar RightAlignedOuterAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(RightAlignedOuterAxisLayoutStrategy, _super);\r\n function RightAlignedOuterAxisLayoutStrategy() {\r\n var _this = _super.call(this) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.RightOuter;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsRightStrategy;\r\n return _this;\r\n }\r\n RightAlignedOuterAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n var _a, _b;\r\n var requiredSize = (_b = (_a = sciChartSurface.adjustedPadding) === null || _a === void 0 ? void 0 : _a.right) !== null && _b !== void 0 ? _b : 0;\r\n requiredSize += sciChartSurface.rightViewportBorder + sciChartSurface.rightCanvasBorder;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n requiredSize += (0, AxisLayoutHelpers_1.getVerticalAxisRequiredSize)(axis.axisLayoutState);\r\n _this.updateTopAndBottomChartLayoutState(chartLayoutState, axis.axisLayoutState.additionalTopSize, axis.axisLayoutState.additionalBottomSize);\r\n });\r\n chartLayoutState.rightOuterAreaSize = Math.max(chartLayoutState.rightOuterAreaSize, requiredSize);\r\n };\r\n RightAlignedOuterAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n // Set axisLength to default value which is seriesViewRect.height\r\n axes.forEach(function (axis) {\r\n axis.axisLength = undefined;\r\n axis.offset = 0;\r\n });\r\n this.layoutAxesFromLeftToRight(left, top, right, bottom, axes);\r\n };\r\n return RightAlignedOuterAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.RightAlignedOuterAxisLayoutStrategy = RightAlignedOuterAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RightAlignedOuterVerticallyStackedAxisLayoutStrategy = void 0;\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\n/**\r\n * The Vertically Stacked Layout Strategy for Right Axes\r\n */\r\nvar RightAlignedOuterVerticallyStackedAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(RightAlignedOuterVerticallyStackedAxisLayoutStrategy, _super);\r\n function RightAlignedOuterVerticallyStackedAxisLayoutStrategy() {\r\n var _this = _super.call(this) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.RightStacked;\r\n _this.isStacked = true;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsRightStrategy;\r\n return _this;\r\n }\r\n RightAlignedOuterVerticallyStackedAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n var _a;\r\n var requiredSize = 0;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n var currentAxisRequiredSize = (0, AxisLayoutHelpers_1.getVerticalAxisRequiredSize)(axis.axisLayoutState);\r\n requiredSize = currentAxisRequiredSize > requiredSize ? currentAxisRequiredSize : requiredSize;\r\n });\r\n var firstStackedAxis = axes[0];\r\n var lastStackedAxis = axes[axes.length - 1];\r\n this.updateTopAndBottomChartLayoutState(chartLayoutState, firstStackedAxis === null || firstStackedAxis === void 0 ? void 0 : firstStackedAxis.axisLayoutState.additionalTopSize, lastStackedAxis === null || lastStackedAxis === void 0 ? void 0 : lastStackedAxis.axisLayoutState.additionalBottomSize);\r\n var rightViewportBorder = sciChartSurface.rightViewportBorder, rightCanvasBorder = sciChartSurface.rightCanvasBorder, adjustedPadding = sciChartSurface.adjustedPadding;\r\n requiredSize += (_a = rightViewportBorder + rightCanvasBorder + (adjustedPadding === null || adjustedPadding === void 0 ? void 0 : adjustedPadding.right)) !== null && _a !== void 0 ? _a : 0;\r\n chartLayoutState.rightOuterAreaSize = Math.max(chartLayoutState.rightOuterAreaSize, requiredSize);\r\n };\r\n RightAlignedOuterVerticallyStackedAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n var _this = this;\r\n var totalAxisAreaHeight = bottom - top;\r\n var firstAxis = axes[0];\r\n var lastAxis = axes[axes.length - 1];\r\n var axesWithDefinedLength = axes.filter(function (axis) { return axis.stackedAxisLength; });\r\n var spaceWithoutBorders = axes.reduce(function (acc, axis) { return acc - axis.axisLayoutState.additionalBottomSize - axis.axisLayoutState.additionalTopSize; }, totalAxisAreaHeight +\r\n (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalTopSize) +\r\n (lastAxis === null || lastAxis === void 0 ? void 0 : lastAxis.axisLayoutState.additionalBottomSize));\r\n var totalDefinedAxesLength = axesWithDefinedLength.reduce(function (acc, axis) { return acc + _this.calculateTotalAxisHeight(axis, spaceWithoutBorders); }, 0);\r\n var availableSpaceForAxes = totalAxisAreaHeight +\r\n (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalTopSize) +\r\n (lastAxis === null || lastAxis === void 0 ? void 0 : lastAxis.axisLayoutState.additionalBottomSize) -\r\n totalDefinedAxesLength;\r\n if (availableSpaceForAxes < 0) {\r\n throw new Error(\"Right stacked axes with defined size total \".concat(totalDefinedAxesLength, \" pixels which is \").concat(-availableSpaceForAxes, \" more than the space available\"));\r\n }\r\n var defaultAxisReservedHeight = availableSpaceForAxes / (axes.length - axesWithDefinedLength.length);\r\n var topOffset = top - (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalTopSize);\r\n axes.forEach(function (axis) {\r\n var _a = axis.axisLayoutState, axisSize = _a.axisSize, additionalLeftSize = _a.additionalLeftSize, additionalBottomSize = _a.additionalBottomSize, additionalTopSize = _a.additionalTopSize;\r\n var leftOffset = left + additionalLeftSize;\r\n var rightOffset = leftOffset + axisSize;\r\n var axisReservedHeight = axis.stackedAxisLength\r\n ? _this.calculateTotalAxisHeight(axis, spaceWithoutBorders)\r\n : defaultAxisReservedHeight;\r\n var bottomOffset = topOffset + axisReservedHeight - additionalBottomSize;\r\n topOffset += additionalTopSize;\r\n axis.offset = topOffset - top;\r\n axis.axisLength = bottomOffset - topOffset;\r\n axis.isPrimaryAxis = true;\r\n axis.viewRect = Rect_1.Rect.createWithCoords(leftOffset, topOffset, rightOffset, bottomOffset);\r\n topOffset = bottomOffset + additionalBottomSize;\r\n (0, AxisLayoutHelpers_1.layoutAxisParts)(axis, _this.layoutAxisPartsStrategy);\r\n });\r\n };\r\n return RightAlignedOuterVerticallyStackedAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.RightAlignedOuterVerticallyStackedAxisLayoutStrategy = RightAlignedOuterVerticallyStackedAxisLayoutStrategy;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartHorizontalGroup = void 0;\r\nvar Thickness_1 = require(\"../../Core/Thickness\");\r\nvar LayoutMangerType_1 = require(\"../../types/LayoutMangerType\");\r\nvar LayoutManager_1 = require(\"./LayoutManager\");\r\nvar SynchronizedLayoutManager_1 = require(\"./SynchronizedLayoutManager\");\r\nvar SciChartHorizontalGroup = /** @class */ (function () {\r\n function SciChartHorizontalGroup() {\r\n this.groupTopSize = 0;\r\n this.groupBottomSize = 0;\r\n this.layoutManagers = [];\r\n this.topOuterLayoutSizes = {};\r\n this.bottomOuterLayoutSizes = {};\r\n }\r\n SciChartHorizontalGroup.prototype.addSurfaceToGroup = function (sciChartSurface) {\r\n var syncLayoutManager = sciChartSurface.layoutManager;\r\n if (syncLayoutManager.type !== LayoutMangerType_1.ELayoutManagerType.Synchronised) {\r\n syncLayoutManager = new SynchronizedLayoutManager_1.SynchronizedLayoutManager(undefined, this);\r\n // Use any custom layout strategies\r\n syncLayoutManager.bottomInnerAxesLayoutStrategy =\r\n sciChartSurface.layoutManager.bottomInnerAxesLayoutStrategy;\r\n syncLayoutManager.bottomOuterAxesLayoutStrategy =\r\n sciChartSurface.layoutManager.bottomOuterAxesLayoutStrategy;\r\n syncLayoutManager.leftInnerAxesLayoutStrategy = sciChartSurface.layoutManager.leftInnerAxesLayoutStrategy;\r\n syncLayoutManager.leftOuterAxesLayoutStrategy = sciChartSurface.layoutManager.leftOuterAxesLayoutStrategy;\r\n syncLayoutManager.rightInnerAxesLayoutStrategy = sciChartSurface.layoutManager.rightInnerAxesLayoutStrategy;\r\n syncLayoutManager.rightOuterAxesLayoutStrategy = sciChartSurface.layoutManager.rightOuterAxesLayoutStrategy;\r\n syncLayoutManager.topInnerAxesLayoutStrategy = sciChartSurface.layoutManager.topInnerAxesLayoutStrategy;\r\n syncLayoutManager.topOuterAxesLayoutStrategy = sciChartSurface.layoutManager.topOuterAxesLayoutStrategy;\r\n sciChartSurface.layoutManager = syncLayoutManager;\r\n }\r\n else {\r\n syncLayoutManager.horizontalGroup = this;\r\n }\r\n this.layoutManagers.push(syncLayoutManager);\r\n sciChartSurface.layoutManager.layoutChart(sciChartSurface.renderSurface.viewportSize, this.calculateMaxTitleSize());\r\n this.synchronizeAxisSizes();\r\n sciChartSurface.invalidateElement();\r\n };\r\n SciChartHorizontalGroup.prototype.removeSurface = function (sciChartSurface) {\r\n var syncLayoutManager = sciChartSurface.layoutManager;\r\n var indexToRemove = this.layoutManagers.findIndex(function (manager) { return manager === syncLayoutManager; });\r\n if (indexToRemove < 0) {\r\n throw new Error(\"Surface \".concat(sciChartSurface.id, \" not found in Horizontal Group!\"));\r\n }\r\n this.layoutManagers.splice(indexToRemove, 1);\r\n if (!syncLayoutManager.verticalGroup) {\r\n var defaultLayoutManager = new LayoutManager_1.LayoutManager();\r\n defaultLayoutManager.leftInnerAxesLayoutStrategy = syncLayoutManager.leftInnerAxesLayoutStrategy;\r\n defaultLayoutManager.leftOuterAxesLayoutStrategy = syncLayoutManager.leftOuterAxesLayoutStrategy;\r\n defaultLayoutManager.rightInnerAxesLayoutStrategy = syncLayoutManager.rightInnerAxesLayoutStrategy;\r\n defaultLayoutManager.rightOuterAxesLayoutStrategy = syncLayoutManager.rightOuterAxesLayoutStrategy;\r\n defaultLayoutManager.bottomInnerAxesLayoutStrategy = syncLayoutManager.bottomInnerAxesLayoutStrategy;\r\n defaultLayoutManager.bottomOuterAxesLayoutStrategy = syncLayoutManager.bottomOuterAxesLayoutStrategy;\r\n defaultLayoutManager.topInnerAxesLayoutStrategy = syncLayoutManager.topInnerAxesLayoutStrategy;\r\n defaultLayoutManager.topOuterAxesLayoutStrategy = syncLayoutManager.topOuterAxesLayoutStrategy;\r\n sciChartSurface.layoutManager = defaultLayoutManager;\r\n }\r\n else {\r\n // Remove only the horizontal part of the layout manager\r\n syncLayoutManager.horizontalGroup = undefined;\r\n }\r\n sciChartSurface.layoutManager.layoutChart(sciChartSurface.renderSurface.viewportSize, sciChartSurface.chartTitleRenderer.titleOffset);\r\n this.onTopSizeChanged(syncLayoutManager.id, 0);\r\n this.onBottomSizeChanged(syncLayoutManager.id, 0);\r\n delete this.topOuterLayoutSizes[syncLayoutManager.id];\r\n delete this.bottomOuterLayoutSizes[syncLayoutManager.id];\r\n this.synchronizeAxisSizes();\r\n sciChartSurface.invalidateElement();\r\n };\r\n SciChartHorizontalGroup.prototype.calculateMaxTitleSize = function () {\r\n var maxPadding = new Thickness_1.Thickness(0, 0, 0, 0);\r\n this.layoutManagers.forEach(function (manager) {\r\n var padding = manager.sciChartSurface.chartTitleRenderer.titleOffset;\r\n // Horizontal group does not care about left/right titles\r\n maxPadding = Thickness_1.Thickness.mergeMax(maxPadding, new Thickness_1.Thickness(padding.top, 0, padding.bottom, 0));\r\n });\r\n return maxPadding;\r\n };\r\n SciChartHorizontalGroup.prototype.synchronizeAxisSizes = function () {\r\n this.layoutManagers.forEach(function (lm) {\r\n lm.trySynchronizeLayouts();\r\n });\r\n };\r\n SciChartHorizontalGroup.prototype.onTopSizeChanged = function (key, value) {\r\n this.topOuterLayoutSizes[key] = value;\r\n this.groupTopSize = calculateMaxGroupSize(this.topOuterLayoutSizes);\r\n };\r\n SciChartHorizontalGroup.prototype.onBottomSizeChanged = function (key, value) {\r\n this.bottomOuterLayoutSizes[key] = value;\r\n this.groupBottomSize = calculateMaxGroupSize(this.bottomOuterLayoutSizes);\r\n };\r\n return SciChartHorizontalGroup;\r\n}());\r\nexports.SciChartHorizontalGroup = SciChartHorizontalGroup;\r\nvar calculateMaxGroupSize = function (outerLayoutSizes) {\r\n var areaHeight = 0;\r\n Object.keys(outerLayoutSizes).forEach(function (key) {\r\n areaHeight = Math.max(areaHeight, outerLayoutSizes[key]);\r\n });\r\n return areaHeight;\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartVerticalGroup = void 0;\r\nvar Thickness_1 = require(\"../../Core/Thickness\");\r\nvar LayoutMangerType_1 = require(\"../../types/LayoutMangerType\");\r\nvar LayoutManager_1 = require(\"./LayoutManager\");\r\nvar SynchronizedLayoutManager_1 = require(\"./SynchronizedLayoutManager\");\r\nvar SciChartVerticalGroup = /** @class */ (function () {\r\n function SciChartVerticalGroup() {\r\n this.groupRightSize = 0;\r\n this.groupLeftSize = 0;\r\n this.layoutManagers = [];\r\n this.leftOuterLayoutSizes = {};\r\n this.rightOuterLayoutSizes = {};\r\n }\r\n SciChartVerticalGroup.prototype.addSurfaceToGroup = function (sciChartSurface) {\r\n var syncLayoutManager = sciChartSurface.layoutManager;\r\n if (syncLayoutManager.type !== LayoutMangerType_1.ELayoutManagerType.Synchronised) {\r\n syncLayoutManager = new SynchronizedLayoutManager_1.SynchronizedLayoutManager(this);\r\n // Use any custom layout strategies\r\n syncLayoutManager.bottomInnerAxesLayoutStrategy =\r\n sciChartSurface.layoutManager.bottomInnerAxesLayoutStrategy;\r\n syncLayoutManager.bottomOuterAxesLayoutStrategy =\r\n sciChartSurface.layoutManager.bottomOuterAxesLayoutStrategy;\r\n syncLayoutManager.leftInnerAxesLayoutStrategy = sciChartSurface.layoutManager.leftInnerAxesLayoutStrategy;\r\n syncLayoutManager.leftOuterAxesLayoutStrategy = sciChartSurface.layoutManager.leftOuterAxesLayoutStrategy;\r\n syncLayoutManager.rightInnerAxesLayoutStrategy = sciChartSurface.layoutManager.rightInnerAxesLayoutStrategy;\r\n syncLayoutManager.rightOuterAxesLayoutStrategy = sciChartSurface.layoutManager.rightOuterAxesLayoutStrategy;\r\n syncLayoutManager.topInnerAxesLayoutStrategy = sciChartSurface.layoutManager.topInnerAxesLayoutStrategy;\r\n syncLayoutManager.topOuterAxesLayoutStrategy = sciChartSurface.layoutManager.topOuterAxesLayoutStrategy;\r\n sciChartSurface.layoutManager = syncLayoutManager;\r\n }\r\n else {\r\n syncLayoutManager.verticalGroup = this;\r\n }\r\n this.layoutManagers.push(syncLayoutManager);\r\n sciChartSurface.layoutManager.layoutChart(sciChartSurface.renderSurface.viewportSize, this.calculateMaxTitleSize());\r\n this.synchronizeAxisSizes();\r\n sciChartSurface.invalidateElement();\r\n };\r\n SciChartVerticalGroup.prototype.removeSurface = function (sciChartSurface) {\r\n var syncLayoutManager = sciChartSurface.layoutManager;\r\n var indexToRemove = this.layoutManagers.findIndex(function (manager) { return manager === syncLayoutManager; });\r\n if (indexToRemove < 0) {\r\n throw new Error(\"Surface \".concat(sciChartSurface.id, \" not found in Vertical Group!\"));\r\n }\r\n this.layoutManagers.splice(indexToRemove, 1);\r\n if (!syncLayoutManager.horizontalGroup) {\r\n var defaultLayoutManager = new LayoutManager_1.LayoutManager();\r\n defaultLayoutManager.bottomInnerAxesLayoutStrategy = syncLayoutManager.bottomInnerAxesLayoutStrategy;\r\n defaultLayoutManager.bottomOuterAxesLayoutStrategy = syncLayoutManager.bottomOuterAxesLayoutStrategy;\r\n defaultLayoutManager.topInnerAxesLayoutStrategy = syncLayoutManager.topInnerAxesLayoutStrategy;\r\n defaultLayoutManager.topOuterAxesLayoutStrategy = syncLayoutManager.topOuterAxesLayoutStrategy;\r\n defaultLayoutManager.leftInnerAxesLayoutStrategy = syncLayoutManager.leftInnerAxesLayoutStrategy;\r\n defaultLayoutManager.leftOuterAxesLayoutStrategy = syncLayoutManager.leftOuterAxesLayoutStrategy;\r\n defaultLayoutManager.rightInnerAxesLayoutStrategy = syncLayoutManager.rightInnerAxesLayoutStrategy;\r\n defaultLayoutManager.rightOuterAxesLayoutStrategy = syncLayoutManager.rightOuterAxesLayoutStrategy;\r\n sciChartSurface.layoutManager = defaultLayoutManager;\r\n }\r\n else {\r\n // Remove only the horizontal part of the layout manager\r\n syncLayoutManager.verticalGroup = undefined;\r\n }\r\n sciChartSurface.layoutManager.layoutChart(sciChartSurface.renderSurface.viewportSize, sciChartSurface.chartTitleRenderer.titleOffset);\r\n this.onLeftSizeChanged(syncLayoutManager.id, 0);\r\n this.onRightSizeChanged(syncLayoutManager.id, 0);\r\n delete this.leftOuterLayoutSizes[syncLayoutManager.id];\r\n delete this.rightOuterLayoutSizes[syncLayoutManager.id];\r\n this.synchronizeAxisSizes();\r\n };\r\n SciChartVerticalGroup.prototype.calculateMaxTitleSize = function () {\r\n var maxPadding = new Thickness_1.Thickness(0, 0, 0, 0);\r\n this.layoutManagers.forEach(function (manager) {\r\n var padding = manager.sciChartSurface.chartTitleRenderer.titleOffset;\r\n // Vertical group does not care about top/bottom titles\r\n maxPadding = Thickness_1.Thickness.mergeMax(maxPadding, new Thickness_1.Thickness(0, padding.right, 0, padding.left));\r\n });\r\n return maxPadding;\r\n };\r\n SciChartVerticalGroup.prototype.synchronizeAxisSizes = function () {\r\n this.layoutManagers.forEach(function (lm) {\r\n lm.trySynchronizeLayouts();\r\n });\r\n };\r\n SciChartVerticalGroup.prototype.onLeftSizeChanged = function (key, value) {\r\n this.leftOuterLayoutSizes[key] = value;\r\n this.groupLeftSize = calculateMaxGroupSize(this.leftOuterLayoutSizes);\r\n };\r\n SciChartVerticalGroup.prototype.onRightSizeChanged = function (key, value) {\r\n this.rightOuterLayoutSizes[key] = value;\r\n this.groupRightSize = calculateMaxGroupSize(this.rightOuterLayoutSizes);\r\n };\r\n return SciChartVerticalGroup;\r\n}());\r\nexports.SciChartVerticalGroup = SciChartVerticalGroup;\r\nvar calculateMaxGroupSize = function (outerLayoutSizes) {\r\n var areaWidth = 0;\r\n Object.keys(outerLayoutSizes).forEach(function (key) {\r\n areaWidth = Math.max(areaWidth, outerLayoutSizes[key]);\r\n });\r\n return areaWidth;\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SynchronizedLayoutManager = void 0;\r\nvar LayoutMangerType_1 = require(\"../../types/LayoutMangerType\");\r\nvar guid_1 = require(\"../../utils/guid\");\r\nvar LayoutManager_1 = require(\"./LayoutManager\");\r\nvar Thickness_1 = require(\"../../Core/Thickness\");\r\n/**\r\n * An {@link ILayoutManager} used by {@link SciChartVerticalGroup} to synchronise Layout accross mutltiple SciChartSurfaces in a group\r\n */\r\nvar SynchronizedLayoutManager = /** @class */ (function (_super) {\r\n __extends(SynchronizedLayoutManager, _super);\r\n function SynchronizedLayoutManager(verticalGroup, horizontalGroup, options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.type = LayoutMangerType_1.ELayoutManagerType.Synchronised;\r\n _this.id = (0, guid_1.generateGuid)();\r\n _this.lastLeftOuterAreaSize = 0;\r\n _this.lastRightOuterAreaSize = 0;\r\n _this.lastTopOuterAreaSize = 0;\r\n _this.lastBottomOuterAreaSize = 0;\r\n _this.verticalGroup = verticalGroup !== null && verticalGroup !== void 0 ? verticalGroup : undefined;\r\n _this.horizontalGroup = horizontalGroup !== null && horizontalGroup !== void 0 ? horizontalGroup : undefined;\r\n return _this;\r\n }\r\n SynchronizedLayoutManager.prototype.layoutChart = function (viewportSize, padding) {\r\n if (this.verticalGroup && this.horizontalGroup) {\r\n var groupTitleSize = Thickness_1.Thickness.mergeMax(this.verticalGroup.calculateMaxTitleSize(), this.horizontalGroup.calculateMaxTitleSize());\r\n var maxTitleSize = Thickness_1.Thickness.mergeMax(padding, groupTitleSize);\r\n var size = _super.prototype.layoutChart.call(this, viewportSize, maxTitleSize);\r\n this.verticalGroup.synchronizeAxisSizes();\r\n this.horizontalGroup.synchronizeAxisSizes();\r\n return size;\r\n }\r\n else if (this.verticalGroup) {\r\n var size = _super.prototype.layoutChart.call(this, viewportSize, Thickness_1.Thickness.mergeMax(padding, this.verticalGroup.calculateMaxTitleSize()));\r\n // use own title padding for top/bottom if vertical\r\n this.verticalGroup.synchronizeAxisSizes();\r\n return size;\r\n }\r\n else if (this.horizontalGroup) {\r\n var size = _super.prototype.layoutChart.call(this, viewportSize, Thickness_1.Thickness.mergeMax(padding, this.horizontalGroup.calculateMaxTitleSize()));\r\n this.horizontalGroup.synchronizeAxisSizes();\r\n return size;\r\n }\r\n return _super.prototype.layoutChart.call(this, viewportSize, padding);\r\n };\r\n SynchronizedLayoutManager.prototype.trySynchronizeLayouts = function () {\r\n if (this.verticalGroup) {\r\n if (this.lastLeftOuterAreaSize !== this.verticalGroup.groupLeftSize ||\r\n this.lastRightOuterAreaSize !== this.verticalGroup.groupRightSize) {\r\n this.sciChartSurface.invalidateElement();\r\n }\r\n }\r\n if (this.horizontalGroup) {\r\n if (this.lastTopOuterAreaSize !== this.horizontalGroup.groupTopSize ||\r\n this.lastBottomOuterAreaSize !== this.horizontalGroup.groupBottomSize) {\r\n this.sciChartSurface.invalidateElement();\r\n }\r\n }\r\n };\r\n // for Vertical Group\r\n SynchronizedLayoutManager.prototype.measureLeftOuterAxes = function () {\r\n _super.prototype.measureLeftOuterAxes.call(this);\r\n if (!this.verticalGroup) {\r\n _super.prototype.measureLeftOuterAxes.call(this);\r\n return;\r\n }\r\n this.verticalGroup.onLeftSizeChanged(this.id, this.chartLayoutState.leftOuterAreaSize);\r\n var newSize = Math.max(this.chartLayoutState.leftOuterAreaSize, this.verticalGroup.groupLeftSize);\r\n // Sync axis widths. Expand the outer one only.\r\n if (this.axesGroupedByLayoutStrategy.leftOuterAxes.length > 0) {\r\n var axis = this.axesGroupedByLayoutStrategy.leftOuterAxes[this.axesGroupedByLayoutStrategy.leftOuterAxes.length - 1];\r\n var otherSize = this.chartLayoutState.leftOuterAreaSize - axis.axisLayoutState.axisSize;\r\n axis.axisLayoutState.axisSize = newSize - otherSize;\r\n }\r\n this.chartLayoutState.leftOuterAreaSize = newSize;\r\n this.lastLeftOuterAreaSize = newSize;\r\n };\r\n SynchronizedLayoutManager.prototype.measureRightOuterAxes = function () {\r\n _super.prototype.measureRightOuterAxes.call(this);\r\n if (!this.verticalGroup) {\r\n _super.prototype.measureRightOuterAxes.call(this);\r\n return;\r\n }\r\n this.verticalGroup.onRightSizeChanged(this.id, this.chartLayoutState.rightOuterAreaSize);\r\n var newSize = Math.max(this.chartLayoutState.rightOuterAreaSize, this.verticalGroup.groupRightSize);\r\n // Sync axis widths. Expand the outer one only.\r\n if (this.axesGroupedByLayoutStrategy.rightOuterAxes.length > 0) {\r\n var axis = this.axesGroupedByLayoutStrategy.rightOuterAxes[this.axesGroupedByLayoutStrategy.rightOuterAxes.length - 1];\r\n var otherSize = this.chartLayoutState.rightOuterAreaSize - axis.axisLayoutState.axisSize;\r\n axis.axisLayoutState.axisSize = newSize - otherSize;\r\n }\r\n this.chartLayoutState.rightOuterAreaSize = newSize;\r\n this.lastRightOuterAreaSize = newSize;\r\n };\r\n // for Horizontal Group\r\n SynchronizedLayoutManager.prototype.measureTopOuterAxes = function () {\r\n _super.prototype.measureTopOuterAxes.call(this);\r\n if (!this.horizontalGroup) {\r\n return;\r\n }\r\n this.horizontalGroup.onTopSizeChanged(this.id, this.chartLayoutState.topOuterAreaSize);\r\n var newSize = Math.max(this.chartLayoutState.topOuterAreaSize, this.horizontalGroup.groupTopSize);\r\n // Sync axis heights. Expand the outer one only.\r\n if (this.axesGroupedByLayoutStrategy.topOuterAxes.length > 0) {\r\n var axis = this.axesGroupedByLayoutStrategy.topOuterAxes[this.axesGroupedByLayoutStrategy.topOuterAxes.length - 1];\r\n var otherSize = this.chartLayoutState.topOuterAreaSize - axis.axisLayoutState.axisSize;\r\n axis.axisLayoutState.axisSize = newSize - otherSize;\r\n }\r\n this.chartLayoutState.topOuterAreaSize = newSize;\r\n this.lastTopOuterAreaSize = newSize;\r\n };\r\n SynchronizedLayoutManager.prototype.measureBottomOuterAxes = function () {\r\n _super.prototype.measureBottomOuterAxes.call(this);\r\n if (!this.horizontalGroup) {\r\n return;\r\n }\r\n this.horizontalGroup.onBottomSizeChanged(this.id, this.chartLayoutState.bottomOuterAreaSize);\r\n var newSize = Math.max(this.chartLayoutState.bottomOuterAreaSize, this.horizontalGroup.groupBottomSize);\r\n // Sync axis heights. Expand the outer one only.\r\n if (this.axesGroupedByLayoutStrategy.bottomOuterAxes.length > 0) {\r\n var axis = this.axesGroupedByLayoutStrategy.bottomOuterAxes[this.axesGroupedByLayoutStrategy.bottomOuterAxes.length - 1];\r\n var otherSize = this.chartLayoutState.bottomOuterAreaSize - axis.axisLayoutState.axisSize;\r\n axis.axisLayoutState.axisSize = newSize - otherSize;\r\n }\r\n this.chartLayoutState.bottomOuterAreaSize = newSize;\r\n this.lastBottomOuterAreaSize = newSize;\r\n };\r\n return SynchronizedLayoutManager;\r\n}(LayoutManager_1.LayoutManager));\r\nexports.SynchronizedLayoutManager = SynchronizedLayoutManager;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TopAlignedInnerAxisLayoutStrategy = void 0;\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseCenteredAxisLayoutStrategy_1 = require(\"./BaseCenteredAxisLayoutStrategy\");\r\n/**\r\n * The default LayoutStrategy for Top Inner Axis\r\n */\r\nvar TopAlignedInnerAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(TopAlignedInnerAxisLayoutStrategy, _super);\r\n function TopAlignedInnerAxisLayoutStrategy(options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.TopInner;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsBottomStrategy;\r\n return _this;\r\n }\r\n TopAlignedInnerAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n this.sciChartSurface = sciChartSurface;\r\n var requiredSize = 0;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n requiredSize += (0, AxisLayoutHelpers_1.getHorizontalAxisRequiredSize)(axis.axisLayoutState);\r\n });\r\n chartLayoutState.topInnerAreaSize = Math.max(chartLayoutState.topInnerAreaSize, requiredSize);\r\n };\r\n TopAlignedInnerAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n // Set axisLength to default value which is seriesViewRect.width\r\n axes.forEach(function (axis) {\r\n axis.axisLength = undefined;\r\n axis.offset = 0;\r\n });\r\n if (axes.length === 0) {\r\n return;\r\n }\r\n var topCoord = top;\r\n // calculate custom axis position\r\n if (this.axisPosition !== undefined) {\r\n var verticalAxis = this.sciChartSurface.getYAxisById(this.orthogonalAxisId) ||\r\n this.sciChartSurface.getXAxisById(this.orthogonalAxisId);\r\n if (!verticalAxis || verticalAxis.isHorizontalAxis) {\r\n throw new Error(\"orthogonalAxisId should be a valid id of vertical axis on the surface!\");\r\n }\r\n var coordinateCalculator = verticalAxis.getCurrentCoordinateCalculator();\r\n var absoluteAxisPosition = (0, AxisLayoutHelpers_1.getCoordinateWithCoordinateMode)(this.axisPosition, coordinateCalculator, this.coordinateMode);\r\n var offset = verticalAxis.viewRect.top;\r\n topCoord = absoluteAxisPosition + offset;\r\n }\r\n this.layoutAxesFromTopToBottom(left, topCoord, right, bottom, axes);\r\n };\r\n return TopAlignedInnerAxisLayoutStrategy;\r\n}(BaseCenteredAxisLayoutStrategy_1.BaseCenteredAxisLayoutStrategy));\r\nexports.TopAlignedInnerAxisLayoutStrategy = TopAlignedInnerAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TopAlignedOuterAxisLayoutStrategy = void 0;\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\n/**\r\n * The default LayoutStrategy for Top Axis\r\n */\r\nvar TopAlignedOuterAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(TopAlignedOuterAxisLayoutStrategy, _super);\r\n function TopAlignedOuterAxisLayoutStrategy() {\r\n var _this = _super.call(this) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.TopOuter;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsTopStrategy;\r\n return _this;\r\n }\r\n TopAlignedOuterAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n var _a, _b;\r\n var requiredSize = (_b = (_a = sciChartSurface.adjustedPadding) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 0;\r\n requiredSize += sciChartSurface.topViewportBorder + sciChartSurface.topCanvasBorder;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n requiredSize += (0, AxisLayoutHelpers_1.getHorizontalAxisRequiredSize)(axis.axisLayoutState);\r\n _this.updateLeftAndRightChartLayoutState(chartLayoutState, axis.axisLayoutState.additionalLeftSize, axis.axisLayoutState.additionalRightSize);\r\n });\r\n chartLayoutState.topOuterAreaSize = Math.max(chartLayoutState.topOuterAreaSize, requiredSize);\r\n };\r\n TopAlignedOuterAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n // Set axisLength to default value which is seriesViewRect.width\r\n axes.forEach(function (axis) {\r\n axis.axisLength = undefined;\r\n axis.offset = 0;\r\n });\r\n this.layoutAxesFromBottomToTop(left, top, right, bottom, axes);\r\n };\r\n return TopAlignedOuterAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.TopAlignedOuterAxisLayoutStrategy = TopAlignedOuterAxisLayoutStrategy;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TopAlignedOuterHorizontallyStackedAxisLayoutStrategy = void 0;\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar LayoutStrategyType_1 = require(\"../../types/LayoutStrategyType\");\r\nvar AxisLayoutHelpers_1 = require(\"./AxisLayoutHelpers\");\r\nvar BaseAxisLayoutStrategy_1 = require(\"./BaseAxisLayoutStrategy\");\r\n/**\r\n * The Horizontally Stacked Layout Strategy for Top Axes\r\n */\r\nvar TopAlignedOuterHorizontallyStackedAxisLayoutStrategy = /** @class */ (function (_super) {\r\n __extends(TopAlignedOuterHorizontallyStackedAxisLayoutStrategy, _super);\r\n function TopAlignedOuterHorizontallyStackedAxisLayoutStrategy() {\r\n var _this = _super.call(this) || this;\r\n _this.type = LayoutStrategyType_1.ELayoutStrategyType.TopStacked;\r\n _this.isStacked = true;\r\n _this.layoutAxisPartsStrategy = AxisLayoutHelpers_1.layoutAxisPartsTopStrategy;\r\n return _this;\r\n }\r\n TopAlignedOuterHorizontallyStackedAxisLayoutStrategy.prototype.measureAxes = function (sciChartSurface, chartLayoutState, axes) {\r\n var _this = this;\r\n var _a;\r\n var requiredSize = 0;\r\n axes.forEach(function (axis) {\r\n axis.measure();\r\n _this.updateAxisLayoutState(axis);\r\n var currentAxisRequiredSize = (0, AxisLayoutHelpers_1.getHorizontalAxisRequiredSize)(axis.axisLayoutState);\r\n requiredSize = currentAxisRequiredSize > requiredSize ? currentAxisRequiredSize : requiredSize;\r\n });\r\n var firstStackedAxis = axes[0];\r\n var lastStackedAxis = axes[axes.length - 1];\r\n this.updateLeftAndRightChartLayoutState(chartLayoutState, firstStackedAxis === null || firstStackedAxis === void 0 ? void 0 : firstStackedAxis.axisLayoutState.additionalLeftSize, lastStackedAxis === null || lastStackedAxis === void 0 ? void 0 : lastStackedAxis.axisLayoutState.additionalRightSize);\r\n var topViewportBorder = sciChartSurface.topViewportBorder, topCanvasBorder = sciChartSurface.topCanvasBorder, adjustedPadding = sciChartSurface.adjustedPadding;\r\n requiredSize += (_a = topViewportBorder + topCanvasBorder + (adjustedPadding === null || adjustedPadding === void 0 ? void 0 : adjustedPadding.top)) !== null && _a !== void 0 ? _a : 0;\r\n chartLayoutState.topOuterAreaSize = Math.max(chartLayoutState.topOuterAreaSize, requiredSize);\r\n };\r\n TopAlignedOuterHorizontallyStackedAxisLayoutStrategy.prototype.layoutAxes = function (left, top, right, bottom, axes) {\r\n var _this = this;\r\n var totalAxisAreaWidth = right - left;\r\n var firstAxis = axes[0];\r\n var lastAxis = axes[axes.length - 1];\r\n var axesWithDefinedLength = axes.filter(function (axis) { return axis.stackedAxisLength; });\r\n var spaceWithoutBorders = axes.reduce(function (acc, axis) { return acc - axis.axisLayoutState.additionalBottomSize - axis.axisLayoutState.additionalTopSize; }, totalAxisAreaWidth +\r\n (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalLeftSize) +\r\n (lastAxis === null || lastAxis === void 0 ? void 0 : lastAxis.axisLayoutState.additionalRightSize));\r\n var totalDefinedAxesLength = axesWithDefinedLength.reduce(function (acc, axis) { return acc + _this.calculateTotalAxisWidth(axis, spaceWithoutBorders); }, 0);\r\n var availableSpaceForAxes = totalAxisAreaWidth +\r\n (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalLeftSize) +\r\n (lastAxis === null || lastAxis === void 0 ? void 0 : lastAxis.axisLayoutState.additionalRightSize) -\r\n totalDefinedAxesLength;\r\n if (availableSpaceForAxes < 0) {\r\n throw new Error(\"Top stacked axes with defined size total \".concat(totalDefinedAxesLength, \" pixels which is \").concat(-availableSpaceForAxes, \" more than the space available\"));\r\n }\r\n var defaultAxisReservedHeight = availableSpaceForAxes / (axes.length - axesWithDefinedLength.length);\r\n var leftOffset = left - (firstAxis === null || firstAxis === void 0 ? void 0 : firstAxis.axisLayoutState.additionalLeftSize);\r\n axes.forEach(function (axis) {\r\n var _a = axis.axisLayoutState, axisSize = _a.axisSize, additionalLeftSize = _a.additionalLeftSize, additionalRightSize = _a.additionalRightSize, additionalBottomSize = _a.additionalBottomSize;\r\n var bottomOffset = bottom - additionalBottomSize;\r\n var topOffset = bottomOffset - axisSize;\r\n var axisReservedHeight = axis.stackedAxisLength\r\n ? _this.calculateTotalAxisWidth(axis, spaceWithoutBorders)\r\n : defaultAxisReservedHeight;\r\n var rightOffset = leftOffset + axisReservedHeight - additionalRightSize;\r\n leftOffset += additionalLeftSize;\r\n axis.offset = leftOffset - left;\r\n axis.axisLength = rightOffset - leftOffset;\r\n axis.isPrimaryAxis = true;\r\n axis.viewRect = Rect_1.Rect.createWithCoords(leftOffset, topOffset, rightOffset, bottomOffset);\r\n leftOffset = rightOffset + additionalRightSize;\r\n (0, AxisLayoutHelpers_1.layoutAxisParts)(axis, _this.layoutAxisPartsStrategy);\r\n });\r\n };\r\n return TopAlignedOuterHorizontallyStackedAxisLayoutStrategy;\r\n}(BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy));\r\nexports.TopAlignedOuterHorizontallyStackedAxisLayoutStrategy = TopAlignedOuterHorizontallyStackedAxisLayoutStrategy;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"AXIS_POSITION_COORDINATE\"] = \"AXIS_POSITION_COORDINATE\";\r\n PROPERTY[\"COORDINATE_MODE\"] = \"COORDINATE_MODE\";\r\n PROPERTY[\"VERTICAL_AXIS_ID\"] = \"VERTICAL_AXIS_ID\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getWindowedYRange = exports.getIndicesRange = exports.BaseDataSeries = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar SearchMode_1 = require(\"../../types/SearchMode\");\r\nvar YRangeMode_1 = require(\"../../types/YRangeMode\");\r\nvar array_1 = require(\"../../utils/array\");\r\nvar copyVector_1 = require(\"../../utils/copyVector\");\r\nvar guid_1 = require(\"../../utils/guid\");\r\nvar isRealNumber_1 = require(\"../../utils/isRealNumber\");\r\nvar DataDistributionCalculator_1 = require(\"./DataDistributionCalculator/DataDistributionCalculator\");\r\nvar DoubleVectorProvider_1 = require(\"./DoubleVectorProvider\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\nvar IPointMetadata_1 = require(\"./IPointMetadata\");\r\n/**\r\n * The base class for DataSeries in SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseDataSeries} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.\r\n */\r\nvar BaseDataSeries = /** @class */ (function (_super) {\r\n __extends(BaseDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link BaseDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IBaseDataSeriesOptions} which can be passed to config the DataSeries at construct time\r\n */\r\n function BaseDataSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n _this = _super.call(this) || this;\r\n /** @inheritDoc */\r\n _this.dataChanged = new EventHandler_1.EventHandler();\r\n /** @inheritDoc */\r\n _this.dataDistributionCalculator = new DataDistributionCalculator_1.DataDistributionCalculator();\r\n _this.minXSpacing = 0;\r\n _this.doubleVectorProvider = new DoubleVectorProvider_1.DoubleVectorProvider();\r\n _this.isSortedProperty = undefined;\r\n _this.containsNaNProperty = undefined;\r\n _this.isEvenlySpacedProperty = false;\r\n _this.metadataGeneratorProperty = undefined;\r\n _this.changeCountProperty = 0;\r\n _this.fifoCapacityProperty = undefined;\r\n _this.fifoSweepingProperty = false;\r\n _this.fifoSweepingGapProperty = 1;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n if (options === null || options === void 0 ? void 0 : options.fifoCapacity) {\r\n _this.fifoCapacityProperty = options.fifoCapacity;\r\n _this.doubleVectorProvider = new DoubleVectorProvider_1.FIFOVectorProvider(options.fifoCapacity);\r\n }\r\n else {\r\n var initialCapacity = _this.calculateInitialCapacity(options);\r\n Guard_1.Guard.argumentIsRealInteger(initialCapacity, \"initialCapacity\");\r\n _this.doubleVectorProvider.capacity = initialCapacity;\r\n }\r\n _this.fifoSweepingProperty = (options === null || options === void 0 ? void 0 : options.fifoSweeping) || _this.fifoSweepingProperty;\r\n _this.fifoSweepingGapProperty = (options === null || options === void 0 ? void 0 : options.fifoSweepingGap) || _this.fifoSweepingGapProperty;\r\n _this.xValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n _this.yValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n // Indexes do not need to be fifo\r\n _this.indexes = new webAssemblyContext.SCRTDoubleVector();\r\n _this.dataSeriesNameProperty = (_b = options === null || options === void 0 ? void 0 : options.dataSeriesName) !== null && _b !== void 0 ? _b : _this.dataSeriesNameProperty;\r\n _this.isSorted = (_d = (_c = options === null || options === void 0 ? void 0 : options.dataIsSortedInX) !== null && _c !== void 0 ? _c : options === null || options === void 0 ? void 0 : options.isSorted) !== null && _d !== void 0 ? _d : _this.isSortedProperty;\r\n _this.containsNaN = (_e = options === null || options === void 0 ? void 0 : options.containsNaN) !== null && _e !== void 0 ? _e : _this.containsNaNProperty;\r\n _this.isEvenlySpaced = (_f = options === null || options === void 0 ? void 0 : options.dataEvenlySpacedInX) !== null && _f !== void 0 ? _f : _this.isEvenlySpacedProperty;\r\n if (options === null || options === void 0 ? void 0 : options.metadata) {\r\n if (\"type\" in options.metadata) {\r\n _this.metadataGeneratorProperty = (0, classFactory_1.createType)(BaseType_1.EBaseType.MetadataGenerator, options.metadata.type, webAssemblyContext, options.metadata.data);\r\n options.metadata = (_g = _this.metadataGeneratorProperty) === null || _g === void 0 ? void 0 : _g.getMetadata();\r\n }\r\n else if (!Array.isArray(options === null || options === void 0 ? void 0 : options.metadata)) {\r\n _this.metadataGeneratorProperty = new IPointMetadata_1.TemplateMetadataGenerator(options === null || options === void 0 ? void 0 : options.metadata);\r\n options.metadata = undefined;\r\n }\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.clear = function () {\r\n var _a;\r\n (_a = this.indexes) === null || _a === void 0 ? void 0 : _a.clear();\r\n this.dataDistributionCalculator.clear(this.isSorted, this.containsNaN);\r\n };\r\n Object.defineProperty(BaseDataSeries.prototype, \"capacity\", {\r\n /**\r\n * Gets or sets the capacity of data-points in the DataSeries\r\n */\r\n get: function () {\r\n return this.xValues.capacity();\r\n },\r\n /**\r\n * Gets or sets the capacity of data-points in the DataSeries\r\n */\r\n set: function (value) {\r\n if (value > this.capacity) {\r\n this.reserve(value);\r\n }\r\n // TODO Not sure whether this is needed\r\n // this.notifyDataChanged(EDataChangeType.Property, undefined, undefined, \"capacity\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataSeries.prototype, \"containsNaN\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.containsNaNProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (containsNaN) {\r\n this.containsNaNProperty = containsNaN;\r\n if (containsNaN !== undefined) {\r\n this.dataDistributionCalculator.setContainsNaN(containsNaN);\r\n }\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, \"containsNaN\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataSeries.prototype, \"isSorted\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isSortedProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isSorted) {\r\n this.isSortedProperty = isSorted;\r\n if (isSorted !== undefined) {\r\n this.dataDistributionCalculator.setIsSortedAscending(isSorted);\r\n }\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, \"isSorted\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataSeries.prototype, \"isEvenlySpaced\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isEvenlySpacedProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isSorted) {\r\n this.isEvenlySpacedProperty = isSorted;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, \"isEvenlySpaced\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataSeries.prototype, \"dataSeriesName\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.dataSeriesNameProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (dataSeriesName) {\r\n this.dataSeriesNameProperty = dataSeriesName;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, \"dataSeriesName\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.count = function () {\r\n if (this.xValues) {\r\n return this.xValues.size();\r\n }\r\n return 0;\r\n };\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.getIsDeleted = function () {\r\n return this.isDeleted;\r\n };\r\n Object.defineProperty(BaseDataSeries.prototype, \"fifoCapacity\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.fifoCapacityProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataSeries.prototype, \"fifoStartIndex\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.fifoCapacity > 0 ? this.xValues.getStartIndex() : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataSeries.prototype, \"fifoSweeping\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.fifoCapacity && this.fifoSweepingProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (enabled) {\r\n this.fifoSweepingProperty = enabled;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, \"fifoSweeping\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataSeries.prototype, \"fifoSweepingGap\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.fifoSweepingGapProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (fifoSweepingGap) {\r\n this.fifoSweepingGapProperty = fifoSweepingGap;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, \"fifoSweepingGap\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.getNativeIndexes = function () {\r\n if (!this.indexes) {\r\n return undefined;\r\n }\r\n var expectedDataSeriesSize = this.count();\r\n var currentIndexesSize = this.indexes.size();\r\n if (currentIndexesSize < expectedDataSeriesSize) {\r\n this.webAssemblyContext.SCRTFillVectorSequential(this.indexes, expectedDataSeriesSize);\r\n }\r\n else if (currentIndexesSize > expectedDataSeriesSize) {\r\n this.indexes.resizeFast(expectedDataSeriesSize);\r\n }\r\n return this.indexes;\r\n };\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.getNativeXValues = function () {\r\n return this.xValues;\r\n };\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.getNativeValue = function (values, index) {\r\n // @ts-ignore\r\n if (!this.fifoSweeping || !values.getRaw) {\r\n return values.get(index);\r\n }\r\n else {\r\n return values.getRaw(index);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.getNativeYValues = function () {\r\n return this.yValues;\r\n };\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.delete = function () {\r\n this.xValues = (0, Deleter_1.deleteSafe)(this.xValues);\r\n this.yValues = (0, Deleter_1.deleteSafe)(this.yValues);\r\n this.indexes = (0, Deleter_1.deleteSafe)(this.indexes);\r\n this.xInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.xInitialAnimationValues);\r\n this.yInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.yInitialAnimationValues);\r\n this.xFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.xFinalAnimationValues);\r\n this.yFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.yFinalAnimationValues);\r\n this.setMetadata(undefined);\r\n this.isDeleted = true;\r\n };\r\n /**\r\n * Call to notify subscribers of {@link dataChanged} that the data has changed and {@link SciChartSurface} needs redrawing\r\n */\r\n BaseDataSeries.prototype.notifyDataChanged = function (changeType, index, count, name) {\r\n this.changeCountProperty++;\r\n this.dataChanged.raiseEvent({ changeType: changeType, index: index, count: count });\r\n };\r\n Object.defineProperty(BaseDataSeries.prototype, \"xRange\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.getXRange();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.getXRange = function (dataSeriesValueType) {\r\n var xValues = this.getXValues(dataSeriesValueType);\r\n var temp;\r\n if (this.count() === 1) {\r\n var min = xValues.get(0) - 1;\r\n var max = xValues.get(0) + 1;\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n else if (this.count() > 1) {\r\n var min = xValues.get(0);\r\n var max = xValues.get(this.count() - 1);\r\n if (!this.dataDistributionCalculator.isSortedAscending) {\r\n var minMax = void 0;\r\n try {\r\n minMax = this.webAssemblyContext.NumberUtil.MinMax(this.getNativeXValues());\r\n if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {\r\n return new NumberRange_1.NumberRange(0, 0);\r\n }\r\n min = minMax.minD;\r\n max = minMax.maxD;\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n }\r\n }\r\n if (min === max) {\r\n return new NumberRange_1.NumberRange(min - 1, max + 1);\r\n }\r\n else if (min > max) {\r\n temp = min;\r\n min = max;\r\n max = temp;\r\n }\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n return new NumberRange_1.NumberRange(0, 0);\r\n };\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, yRangeMode) {\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }\r\n if (yRangeMode === void 0) { yRangeMode = YRangeMode_1.EYRangeMode.Visible; }\r\n var xValues = this.getXValues(dataSeriesValueType);\r\n var yValues = this.getYValues(dataSeriesValueType);\r\n return (0, exports.getWindowedYRange)(this.webAssemblyContext, xValues, yValues, xRange, getPositiveRange, isXCategoryAxis, this.dataDistributionCalculator.isSortedAscending, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);\r\n };\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.getIndicesRange = function (xRange, isCategoryData, downSearchMode, upSearchMode) {\r\n if (isCategoryData === void 0) { isCategoryData = false; }\r\n if (downSearchMode === void 0) { downSearchMode = SearchMode_1.ESearchMode.RoundDown; }\r\n if (upSearchMode === void 0) { upSearchMode = SearchMode_1.ESearchMode.RoundUp; }\r\n // TODO SearchMode downSearchMode = SearchMode.RoundDown, SearchMode upSearchMode = SearchMode.RoundUp\r\n var vector = isCategoryData ? this.getNativeIndexes() : this.xValues;\r\n return (0, exports.getIndicesRange)(this.webAssemblyContext, vector, xRange, this.dataDistributionCalculator.isSortedAscending, downSearchMode, upSearchMode);\r\n };\r\n Object.defineProperty(BaseDataSeries.prototype, \"hasValues\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.count() > 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Check if the series has an existing metadataGenerator\r\n */\r\n BaseDataSeries.prototype.hasMetadataGenerator = function () {\r\n return typeof this.metadataGeneratorProperty !== \"undefined\";\r\n };\r\n /**\r\n * Sets a function that will be used to generate metadata for values when they are appended/inserted, if no explicit metadata is supplied.\r\n * @param generator\r\n */\r\n BaseDataSeries.prototype.setMetadataGenerator = function (generator) {\r\n var _this = this;\r\n var newGenerator = !this.hasMetadataGenerator();\r\n this.metadataGeneratorProperty = generator;\r\n if (newGenerator && !this.metadataProperty) {\r\n var metadata = Array(this.xValues.size())\r\n .fill(1)\r\n .map(function (x) { return _this.metadataGeneratorProperty.getSingleMetadata(); });\r\n this.metadataProperty = metadata;\r\n }\r\n };\r\n /**\r\n * Gets the metadata by index\r\n * @param index The X index\r\n */\r\n BaseDataSeries.prototype.getMetadataAt = function (index, ignoreFifo) {\r\n if (ignoreFifo === void 0) { ignoreFifo = false; }\r\n this.validateIndex(index);\r\n if (!this.metadataProperty) {\r\n return undefined;\r\n }\r\n if (this.fifoCapacity && !ignoreFifo) {\r\n var fifoIndex = (this.xValues.getStartIndex() + index) % this.fifoCapacity;\r\n return this.metadataProperty[fifoIndex];\r\n }\r\n else {\r\n return this.metadataProperty[index];\r\n }\r\n };\r\n /**\r\n * Gets the metadata array length\r\n */\r\n BaseDataSeries.prototype.getMetadataLength = function () {\r\n if (!this.metadataProperty) {\r\n return this.count();\r\n }\r\n return this.metadataProperty.length;\r\n };\r\n Object.defineProperty(BaseDataSeries.prototype, \"hasMetadata\", {\r\n /**\r\n * Check if the series has an existing metadata\r\n */\r\n get: function () {\r\n return this.metadataProperty !== undefined;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BaseDataSeries.prototype.createAnimationVectors = function () {\r\n this.xInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.yInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.xFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.yFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n };\r\n /**\r\n * Sets initial values for the data animation\r\n * @param dataSeries The {@link BaseDataSeries} to be used for initial values\r\n */\r\n BaseDataSeries.prototype.setInitialAnimationVectors = function (dataSeries) {\r\n if (!dataSeries) {\r\n this.xInitialAnimationValues.resize(0, 0);\r\n this.yInitialAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeXValues(), this.xInitialAnimationValues, this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeYValues(), this.yInitialAnimationValues, this.webAssemblyContext);\r\n };\r\n /**\r\n * Sets final values for the data animation\r\n * @param dataSeries The {@link BaseDataSeries} to be used for final values\r\n */\r\n BaseDataSeries.prototype.setFinalAnimationVectors = function (dataSeries) {\r\n if (!dataSeries) {\r\n this.xFinalAnimationValues.resize(0, 0);\r\n this.yFinalAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeXValues(), this.xFinalAnimationValues, this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeYValues(), this.yFinalAnimationValues, this.webAssemblyContext);\r\n };\r\n /**\r\n * Puts the animation values back into the dataSeries after a reverse animation\r\n * @param dataSeries The {@link BaseDataSeries} to be used for target values\r\n */\r\n BaseDataSeries.prototype.revertAnimationVectors = function (dataSeries) {\r\n dataSeries = dataSeries !== null && dataSeries !== void 0 ? dataSeries : this;\r\n (0, copyVector_1.copyDoubleVector)(this.xFinalAnimationValues, dataSeries.getNativeXValues(), this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(this.yFinalAnimationValues, dataSeries.getNativeYValues(), this.webAssemblyContext);\r\n };\r\n /**\r\n * Validates the length of the animation vectors\r\n */\r\n BaseDataSeries.prototype.validateAnimationVectors = function () {\r\n var size = this.xInitialAnimationValues.size();\r\n if (size !== this.yInitialAnimationValues.size() ||\r\n size !== this.xFinalAnimationValues.size() ||\r\n size !== this.yFinalAnimationValues.size()) {\r\n throw Error(\"initialAnimationValues and finalAnimationValues must have the same length\");\r\n }\r\n };\r\n /**\r\n * Updates the {@link BaseDataSeries} values for the animation\r\n * @param progress The animation progress from 0 to 1\r\n * @param animation The animation\r\n */\r\n BaseDataSeries.prototype.updateAnimationProperties = function (progress, animation) {\r\n if (animation.isOnStartAnimation) {\r\n animation.calculateAnimationValues(this.webAssemblyContext, this.yFinalAnimationValues, this.getNativeYValues(), progress);\r\n }\r\n else if (animation.isDataSeriesAnimation) {\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.xInitialAnimationValues, this.xFinalAnimationValues, this.getNativeXValues(), progress);\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.yInitialAnimationValues, this.yFinalAnimationValues, this.getNativeYValues(), progress);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseDataSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var options = this.getOptions(excludeData);\r\n return { type: this.type, options: options };\r\n };\r\n Object.defineProperty(BaseDataSeries.prototype, \"changeCount\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.changeCountProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BaseDataSeries.prototype.getOptions = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var options = __assign({ id: this.id, containsNaN: this.containsNaN, isSorted: this.isSorted, dataIsSortedInX: this.isSorted, dataEvenlySpacedInX: this.isEvenlySpaced, dataSeriesName: this.dataSeriesName, fifoCapacity: this.fifoCapacity, fifoSweeping: this.fifoSweeping, fifoSweepingGap: this.fifoSweepingGap, fifoStartIndex: this.fifoSweeping ? this.fifoStartIndex : 0, capacity: this.capacity, metadata: undefined, \r\n // values must be serialized in derived classes\r\n xValues: undefined, yValues: undefined }, this.dataIds);\r\n // @ts-ignore\r\n options.metadata = this.metadataGeneratorProperty\r\n ? this.metadataGeneratorProperty.toJSON()\r\n : excludeData\r\n ? undefined\r\n : this.metadataProperty;\r\n return options;\r\n };\r\n /**\r\n * Finds the nearest index of the xValue passed in by performing binary or linear search on the X-Values array.\r\n * Returns -1 for index not found. Other negative numbers indicate an error condition\r\n * @param xValue the X-value to find\r\n * @param findMode the {@link ESearchMode} to use when searching. Defaults to {@link ESearchMode.Nearest}.\r\n * Mode {@link ESearchMode.Exact} will result in a slower search, other modes will result in fast binary search.\r\n * @return The index, or -1 if not found\r\n */\r\n BaseDataSeries.prototype.findIndex = function (xValue, searchMode) {\r\n var _a, _b;\r\n if (searchMode === void 0) { searchMode = SearchMode_1.ESearchMode.Nearest; }\r\n if (this.count() === 0) {\r\n return -1;\r\n }\r\n // Get whether data is sorted ascending or not (affects which algorithms can be used)\r\n var dataIsSorted = (_b = (_a = this.dataDistributionCalculator) === null || _a === void 0 ? void 0 : _a.isSortedAscending) !== null && _b !== void 0 ? _b : false;\r\n // Search mode Exact must be used when data is not sorted, else, use user-defined search mode\r\n var findMode = dataIsSorted\r\n ? (0, SearchMode_1.convertSearchMode)(this.webAssemblyContext, searchMode)\r\n : this.webAssemblyContext.SCRTFindIndexSearchMode.Exact;\r\n return this.webAssemblyContext.NumberUtil.FindIndex(this.xValues, xValue, findMode, dataIsSorted);\r\n };\r\n BaseDataSeries.prototype.validateIndex = function (index, message) {\r\n if (Math.round(index) !== index) {\r\n throw Error(\"Index must be an integer\");\r\n }\r\n var msg = message !== null && message !== void 0 ? message : \"Index is out of range\";\r\n if (index < 0 || index >= this.count()) {\r\n throw new Error(msg);\r\n }\r\n };\r\n BaseDataSeries.prototype.setMetadataAt = function (index, metadata) {\r\n if (!metadata) {\r\n return;\r\n }\r\n this.validateIndex(index);\r\n this.fillMetadataIfUndefined();\r\n if (this.fifoCapacity) {\r\n var fifoIndex = (this.xValues.getStartIndex() + index) % this.fifoCapacity;\r\n this.metadataProperty[fifoIndex] = metadata;\r\n }\r\n else {\r\n this.metadataProperty[index] = metadata;\r\n }\r\n };\r\n BaseDataSeries.prototype.appendMetadata = function (metadata) {\r\n if (!metadata) {\r\n if (!this.metadataGeneratorProperty) {\r\n return;\r\n }\r\n else {\r\n metadata = this.metadataGeneratorProperty.getSingleMetadata();\r\n }\r\n }\r\n this.fillMetadataIfUndefined();\r\n if (this.fifoCapacity && this.count() === this.fifoCapacity) {\r\n this.metadataProperty[this.xValues.getStartIndex()] = metadata;\r\n }\r\n else {\r\n this.metadataProperty.push(metadata);\r\n }\r\n };\r\n BaseDataSeries.prototype.appendMetadataRange = function (metadata, length) {\r\n var _this = this;\r\n if (!metadata) {\r\n if (!this.metadataGeneratorProperty) {\r\n return;\r\n }\r\n else {\r\n metadata = Array(length)\r\n .fill(1)\r\n .map(function (x) { return _this.metadataGeneratorProperty.getSingleMetadata(); });\r\n }\r\n }\r\n this.fillMetadataIfUndefined();\r\n if (this.fifoCapacity) {\r\n (0, array_1.appendRangeFifo)(metadata, this.metadataProperty, this.fifoCapacity, this.xValues.getStartIndex());\r\n }\r\n else {\r\n var startIndex = this.metadataProperty.length;\r\n // reserve space for new values\r\n this.metadataProperty.length += length;\r\n // merge new values into the collection\r\n for (var i = 0; i < length; ++i) {\r\n this.metadataProperty[startIndex + i] = metadata[i];\r\n }\r\n }\r\n // Alternative approach\r\n // this.metadataProperty = this.metadataProperty.concat(metadata);\r\n };\r\n BaseDataSeries.prototype.insertMetadata = function (startIndex, metadata) {\r\n if (!metadata) {\r\n if (!this.metadataGeneratorProperty) {\r\n return;\r\n }\r\n else {\r\n metadata = this.metadataGeneratorProperty.getSingleMetadata();\r\n }\r\n }\r\n this.fillMetadataIfUndefined();\r\n this.metadataProperty.splice(startIndex, 0, metadata);\r\n };\r\n BaseDataSeries.prototype.insertMetadataRange = function (startIndex, metadata) {\r\n var _this = this;\r\n if (!metadata) {\r\n if (!this.metadataGeneratorProperty) {\r\n return;\r\n }\r\n else {\r\n metadata = Array(length)\r\n .fill(1)\r\n .map(function (x) { return _this.metadataGeneratorProperty.getSingleMetadata(); });\r\n }\r\n }\r\n this.fillMetadataIfUndefined();\r\n // TODO probably this could be optimized\r\n var previousValues = this.metadataProperty.slice(0, startIndex);\r\n var nextValues = this.metadataProperty.slice(startIndex);\r\n this.metadataProperty = previousValues.concat(metadata, nextValues);\r\n };\r\n BaseDataSeries.prototype.removeMetadataAt = function (index) {\r\n if (!this.metadataProperty) {\r\n return;\r\n }\r\n this.metadataProperty.splice(index, 1);\r\n };\r\n BaseDataSeries.prototype.removeMetadataRange = function (startIndex, count) {\r\n if (!this.metadataProperty) {\r\n return;\r\n }\r\n this.metadataProperty.splice(startIndex, count);\r\n };\r\n BaseDataSeries.prototype.setMetadata = function (value) {\r\n this.metadataProperty = value;\r\n };\r\n BaseDataSeries.prototype.getXValues = function (dataSeriesValueType) {\r\n var xValues;\r\n switch (dataSeriesValueType) {\r\n case IDataSeries_1.EDataSeriesValueType.FinalAnimationValues:\r\n xValues = this.xFinalAnimationValues;\r\n break;\r\n case IDataSeries_1.EDataSeriesValueType.InitialAnimationValues:\r\n xValues = this.xInitialAnimationValues;\r\n break;\r\n default:\r\n xValues = this.xValues;\r\n }\r\n return xValues;\r\n };\r\n BaseDataSeries.prototype.throwIfFifo = function (operation) {\r\n if (this.fifoCapacity) {\r\n throw new Error(\"\".concat(operation, \" is not supported in fifo mode\"));\r\n }\r\n };\r\n BaseDataSeries.prototype.reserve = function (size) {\r\n if (this.fifoCapacity) {\r\n throw new Error(\"Resizing a fifo dataSeries is not currently supported.\");\r\n }\r\n Guard_1.Guard.argumentIsRealInteger(size, \"capacity\");\r\n this.xValues.reserve(size);\r\n this.yValues.reserve(size);\r\n };\r\n BaseDataSeries.prototype.calculateInitialCapacity = function (options) {\r\n var _a, _b, _c;\r\n return Math.max((_a = options === null || options === void 0 ? void 0 : options.capacity) !== null && _a !== void 0 ? _a : 0, (_c = (_b = options === null || options === void 0 ? void 0 : options.xValues) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);\r\n };\r\n BaseDataSeries.prototype.fillMetadataIfUndefined = function () {\r\n if (this.metadataProperty === undefined) {\r\n var length_1 = this.count();\r\n this.metadataProperty = Array(length_1).fill(undefined);\r\n }\r\n };\r\n BaseDataSeries.prototype.getYValues = function (dataSeriesValueType) {\r\n var yValues;\r\n switch (dataSeriesValueType) {\r\n case IDataSeries_1.EDataSeriesValueType.FinalAnimationValues:\r\n yValues = this.yFinalAnimationValues;\r\n break;\r\n case IDataSeries_1.EDataSeriesValueType.InitialAnimationValues:\r\n yValues = this.yInitialAnimationValues;\r\n break;\r\n default:\r\n yValues = this.yValues;\r\n }\r\n return yValues;\r\n };\r\n return BaseDataSeries;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BaseDataSeries = BaseDataSeries;\r\n/** @ignore */\r\nvar getIndicesRange = function (webAssemblyContext, xValues, xRange, isSorted, downSearchMode, upSearchMode) {\r\n if (downSearchMode === void 0) { downSearchMode = SearchMode_1.ESearchMode.RoundDown; }\r\n if (upSearchMode === void 0) { upSearchMode = SearchMode_1.ESearchMode.RoundUp; }\r\n var count = xValues.size();\r\n var result = new NumberRange_1.NumberRange(0, -1);\r\n if (count > 0) {\r\n // For unsorted data, we need to draw everything\r\n if (!isSorted) {\r\n return new NumberRange_1.NumberRange(0, count - 1);\r\n }\r\n var convertSearchMode_1 = function (mode) {\r\n switch (mode) {\r\n case SearchMode_1.ESearchMode.Exact:\r\n return webAssemblyContext.SCRTFindIndexSearchMode.Exact;\r\n case SearchMode_1.ESearchMode.Nearest:\r\n return webAssemblyContext.SCRTFindIndexSearchMode.Nearest;\r\n case SearchMode_1.ESearchMode.RoundDown:\r\n return webAssemblyContext.SCRTFindIndexSearchMode.RoundDown;\r\n case SearchMode_1.ESearchMode.RoundUp:\r\n return webAssemblyContext.SCRTFindIndexSearchMode.RoundUp;\r\n }\r\n };\r\n // For sorted data, we search the points in the viewport\r\n var iMin = webAssemblyContext.NumberUtil.FindIndex(xValues, xRange.min, convertSearchMode_1(downSearchMode), true);\r\n var iMax = webAssemblyContext.NumberUtil.FindIndex(xValues, xRange.max, convertSearchMode_1(upSearchMode), true);\r\n result = new NumberRange_1.NumberRange(iMin, iMax);\r\n }\r\n return result;\r\n};\r\nexports.getIndicesRange = getIndicesRange;\r\nvar getWindowedYRange = function (webAssemblyContext, xValues, yValues, xRange, getPositiveRange, isXCategoryAxis, // false\r\nisSorted, minSearchMode, maxSearchMode) {\r\n if (minSearchMode === void 0) { minSearchMode = SearchMode_1.ESearchMode.RoundUp; }\r\n if (maxSearchMode === void 0) { maxSearchMode = SearchMode_1.ESearchMode.RoundDown; }\r\n // TODO: getPositiveRange\r\n var count = xValues.size();\r\n // if one point\r\n // We will expand zero width ranges in the axis\r\n if (count === 1) {\r\n var y = yValues.get(0);\r\n return new NumberRange_1.NumberRange(y, y);\r\n }\r\n var indicesRange = isXCategoryAxis\r\n ? xRange\r\n : (0, exports.getIndicesRange)(webAssemblyContext, xValues, xRange, isSorted, minSearchMode, maxSearchMode);\r\n var iMin = Math.max(Math.floor(indicesRange.min), 0);\r\n var iMax = Math.min(Math.ceil(indicesRange.max), count - 1);\r\n if (iMax < iMin) {\r\n return undefined;\r\n }\r\n var minMax;\r\n try {\r\n minMax = webAssemblyContext.NumberUtil.MinMaxWithIndex(yValues, iMin, iMax - iMin + 1);\r\n if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {\r\n return undefined;\r\n }\r\n return new NumberRange_1.NumberRange(minMax.minD, minMax.maxD);\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n }\r\n};\r\nexports.getWindowedYRange = getWindowedYRange;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseHeatmapDataSeries = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar guid_1 = require(\"../../utils/guid\");\r\nvar isRealNumber_1 = require(\"../../utils/isRealNumber\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\nvar IPointMetadata_1 = require(\"./IPointMetadata\");\r\n/**\r\n * The base class for Heatmap-style DataSeries in SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseHeatmapDataSeries} to find out what Heatmap data-series are available.\r\n * See {@link UniformHeatmapRenderableSeries} to see the class for rendering a 2D JavaScript Heatmap Chart.\r\n */\r\nvar BaseHeatmapDataSeries = /** @class */ (function () {\r\n /**\r\n * Creates an instance of {@link BaseHeatmapDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IBaseHeatmapSeriesOptions} which can be passed to configure the DataSeries at construct time\r\n */\r\n function BaseHeatmapDataSeries(webAssemblyContext, options) {\r\n var _a, _b, _c, _d;\r\n /** @inheritDoc */\r\n this.dataChanged = new EventHandler_1.EventHandler();\r\n /** @inheritDoc */\r\n this.minXSpacing = 0;\r\n /**\r\n * Gets the width of the 2-dimensional array of {@link getZValues | Z-Values} where array is ranked [width][height]\r\n */\r\n this.arrayWidth = 0;\r\n /**\r\n * Gets the height of the 2-dimensional array of {@link getZValues | Z-Values} where array is ranked [width][height]\r\n */\r\n this.arrayHeight = 0;\r\n /**\r\n * When true, the {@link BaseHeatmapDataSeries} has data changes and requires redrawing\r\n */\r\n this.hasDataChangesProperty = false;\r\n this.hasNaNsProperty = false;\r\n this.lastZMin = -1;\r\n this.lastZMax = -1;\r\n this.lastFillValuesOutOfRange = undefined;\r\n this.metadataGeneratorProperty = undefined;\r\n this.changeCountProperty = 0;\r\n this.webAssemblyContext = webAssemblyContext;\r\n this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n this.dataSeriesNameProperty = (_b = options === null || options === void 0 ? void 0 : options.dataSeriesName) !== null && _b !== void 0 ? _b : this.dataSeriesNameProperty;\r\n this.hasNaNsProperty = (_c = options === null || options === void 0 ? void 0 : options.containsNaN) !== null && _c !== void 0 ? _c : this.hasNaNsProperty;\r\n this.normalizedVector = new this.webAssemblyContext.SCRTFloatVector();\r\n if (options === null || options === void 0 ? void 0 : options.metadata) {\r\n if (\"type\" in options.metadata) {\r\n this.metadataGeneratorProperty = (0, classFactory_1.createType)(BaseType_1.EBaseType.MetadataGenerator, options.metadata.type, webAssemblyContext, options.metadata.data);\r\n options.metadata = (_d = this.metadataGeneratorProperty) === null || _d === void 0 ? void 0 : _d.getMetadata();\r\n }\r\n else if (!Array.isArray(options === null || options === void 0 ? void 0 : options.metadata)) {\r\n this.metadataGeneratorProperty = new IPointMetadata_1.TemplateMetadataGenerator(options === null || options === void 0 ? void 0 : options.metadata);\r\n options.metadata = undefined;\r\n }\r\n }\r\n // Copy zValues\r\n this.setZValues(options === null || options === void 0 ? void 0 : options.zValues, options === null || options === void 0 ? void 0 : options.metadata);\r\n }\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"isSorted\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return true;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n throw new Error(\"setting isSorted on a heatmap series is not supported\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"isEvenlySpaced\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return true;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n throw new Error(\"setting isEvenlySpaced on a heatmap series is not supported\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"containsNaN\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return false;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n throw new Error(\"setting containsNaN is not supported on BaseHeatmapDataSeries\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"dataDistributionCalculator\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n throw new Error(\"dataDistributionCalculator is not supported on BaseHeatmapDataSeries\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseHeatmapDataSeries.prototype.getNativeValue = function (values, index) {\r\n throw new Error(\"getNativeValue not supported for HeatmapDataSeries\");\r\n };\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"hasDataChanges\", {\r\n /**\r\n * Returns true if the Heatmap DataSeries has data changes.\r\n * This flag is set to true when notifyDataChanged is called, and reset to false after\r\n */\r\n get: function () {\r\n return this.hasDataChangesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets a readonly collection of Z-values which can be read in the format zValues[y][x]\r\n * Note that changes or manipulation of the 2D array will not update the Heatmap. Set it back via setZValues()\r\n * to see changes to the chart\r\n */\r\n BaseHeatmapDataSeries.prototype.getZValues = function () {\r\n return this.zValuesProperty;\r\n };\r\n /**\r\n * Sets a 2D array of zValues. Input is in the format zValues[y][x] where Y is 0 to height and X is 0 to Width\r\n * @param zValues\r\n * @param metadata The array of arrays of point metadata\r\n */\r\n BaseHeatmapDataSeries.prototype.setZValues = function (zValues, metadata) {\r\n if (!zValues || !zValues[0]) {\r\n this.zValuesProperty = undefined;\r\n this.arrayHeight = 0;\r\n this.arrayWidth = 0;\r\n this.size = 0;\r\n return;\r\n }\r\n var firstRowLength = zValues[0].length;\r\n zValues.forEach(function (zRow) {\r\n if (!zRow) {\r\n throw new Error(\"Each row in zValues must be defined. See how to declare a 2D array in Javascript here https://stackoverflow.com/a/966234/303612\");\r\n }\r\n if (zRow.length !== firstRowLength) {\r\n throw new Error(\"Each row in zValues must be the same length, so that the overall 2D array is square\");\r\n }\r\n });\r\n if (metadata) {\r\n guardSameLengthZValuesAndMetadata(zValues, metadata);\r\n }\r\n var w = zValues[0].length;\r\n var h = zValues.length;\r\n // const metadata2 = fillMetadata(w, h, metadata);\r\n this.arrayWidth = w;\r\n this.arrayHeight = h;\r\n this.size = w * h;\r\n this.zValuesProperty = zValues;\r\n this.setMetadata(metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append);\r\n };\r\n /**\r\n * Gets the ZValue at the specific Y,X index where Y must be within 0-arrayHeight and X must be within 0-arrayWidth\r\n * @param yIndex the y-index from 0 to arrayHeight\r\n * @param xIndex the x-index from 0 to arrayWidth\r\n */\r\n BaseHeatmapDataSeries.prototype.getZValue = function (yIndex, xIndex) {\r\n return this.zValuesProperty[yIndex][xIndex];\r\n };\r\n /**\r\n * Sets the ZValue at the specific Y,X index where Y must be within 0-arrayHeight and X must be within 0-arrayWidth\r\n * @param yIndex the y-index from 0 to arrayHeight\r\n * @param xIndex the x-index from 0 to arrayWidth\r\n * @param zValue the new Z-value\r\n * @param metadata The point metadata\r\n */\r\n BaseHeatmapDataSeries.prototype.setZValue = function (yIndex, xIndex, zValue, metadata) {\r\n this.zValuesProperty[yIndex][xIndex] = zValue;\r\n this.setMetadataAt(yIndex, xIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, xIndex, yIndex);\r\n };\r\n /** @inheritDoc */\r\n BaseHeatmapDataSeries.prototype.clear = function () {\r\n if (!this.getIsDeleted()) {\r\n this.setZValues(undefined);\r\n this.setMetadata(undefined);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);\r\n }\r\n };\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"xMin\", {\r\n /**\r\n * Gets the minimum X-value for this heatmap, which controls where it is displayed on a cartesian chart\r\n */\r\n get: function () {\r\n return this.xRange.min;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"xMax\", {\r\n /**\r\n * Gets the maximum X-value for this heatmap, which controls where it is displayed on a cartesian chart\r\n */\r\n get: function () {\r\n return this.xRange.max;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"yMin\", {\r\n /**\r\n * Gets the minimum Y-value for this heatmap, which controls where it is displayed on a cartesian chart\r\n */\r\n get: function () {\r\n return this.yRange.min;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"yMax\", {\r\n /**\r\n * Gets the maximum Y-value for this heatmap, which controls where it is displayed on a cartesian chart\r\n */\r\n get: function () {\r\n return this.yRange.max;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"zMin\", {\r\n /**\r\n * Computes the minimum Z-value for this heatmap\r\n * @remarks\r\n * Be aware for performance reasons, every call to zMin will result in a recalculation\r\n */\r\n get: function () {\r\n return this.zRange.min;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"zMax\", {\r\n /**\r\n * Computes the maximum Z-value for this heatmap\r\n * @remarks\r\n * Be aware for performance reasons, every call to zMax will result in a recalculation\r\n */\r\n get: function () {\r\n return this.zRange.max;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"xRange\", {\r\n /**\r\n * Gets the XRange for this heatmap, which controls where it is displayed on a cartesian chart\r\n */\r\n get: function () {\r\n return this.getXRange();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"yRange\", {\r\n /**\r\n * Gets the YRange for this heatmap, which controls where it is displayed on a cartesian chart\r\n */\r\n get: function () {\r\n return this.getYRange();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"zRange\", {\r\n /**\r\n * Computes the ZRange for this heatmap, which controls where it is displayed on a cartesian chart\r\n * @remarks\r\n * Be aware for performance reasons, every call to zRange will result in a recalculation\r\n */\r\n get: function () {\r\n return this.getZRange();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"dataSeriesName\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.dataSeriesNameProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (dataSeriesName) {\r\n this.dataSeriesNameProperty = dataSeriesName;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, null, null, \"dataSeriesName\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"hasValues\", {\r\n /**\r\n * Gets whether this Heatmap has values to display\r\n */\r\n get: function () {\r\n return this.arrayWidth > 0 && this.arrayHeight > 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"hasNaNs\", {\r\n /**\r\n * Gets/sets whether this Heatmap has NaN value, to display them as transparent tiles\r\n */\r\n get: function () {\r\n return this.hasNaNsProperty;\r\n },\r\n /**\r\n * Gets/sets whether this Heatmap has NaN value, to display them as transparent tiles\r\n */\r\n set: function (value) {\r\n this.hasNaNsProperty = value;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, null, null, \"hasNaNs\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets the number of heatmap cells\r\n */\r\n BaseHeatmapDataSeries.prototype.count = function () {\r\n return this.arrayWidth * this.arrayHeight;\r\n };\r\n /**\r\n * Sets a function that will be used to generate metadata for values when they are appended/inserted, if no explicit metadata is supplied.\r\n * @param generator\r\n */\r\n BaseHeatmapDataSeries.prototype.setMetadataGenerator = function (generator) {\r\n var shouldGenerate = typeof this.metadataGeneratorProperty === \"undefined\";\r\n this.metadataGeneratorProperty = generator;\r\n if (shouldGenerate) {\r\n this.setMetadata(null);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHeatmapDataSeries.prototype.delete = function () {\r\n this.isDeleted = true;\r\n this.normalizedVector = (0, Deleter_1.deleteSafe)(this.normalizedVector);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHeatmapDataSeries.prototype.getIsDeleted = function () {\r\n return this.isDeleted;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHeatmapDataSeries.prototype.getNativeIndexes = function () {\r\n throw new Error(\"getNativeIndexes is invalid for heatmap type series. Try getting or setting zValues instead\");\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHeatmapDataSeries.prototype.getNativeXValues = function () {\r\n throw new Error(\"getNativeXValues is invalid for heatmap type series. Try getting or setting zValues instead\");\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHeatmapDataSeries.prototype.getNativeYValues = function () {\r\n throw new Error(\"getNativeYValues is invalid for heatmap type series. Try getting or setting zValues instead\");\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHeatmapDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isCategoryAxis) {\r\n return this.yRange;\r\n };\r\n /**\r\n * Notify subscribers to dataChanged that data has changed. Also sets internal flags.\r\n * This will trigger a redraw on a parent SciChartSurface\r\n */\r\n BaseHeatmapDataSeries.prototype.notifyDataChanged = function (changeType, xIndex, yIndex, name) {\r\n this.changeCountProperty++;\r\n this.hasDataChangesProperty = true;\r\n this.dataChanged.raiseEvent({ changeType: changeType, index: xIndex, yIndex: yIndex, name: name });\r\n };\r\n /**\r\n * Returns a FloatVector with normalized values based on the color map passed in\r\n * @param colorMap the {@link IColorMapParams} provides properties used to map heatmap Z-values into colors\r\n * for rendering in SciChart's {@link https://www.scichart.com/javascript-chart-features | Realtime JavaScript Charts}\r\n */\r\n BaseHeatmapDataSeries.prototype.getNormalizedVector = function (colorMap, fillValuesOutOfRange) {\r\n Guard_1.Guard.notNull(colorMap, \"colorMap\");\r\n Guard_1.Guard.argumentIsRealNumber(colorMap.minimum, \"colorMap.minimum\");\r\n Guard_1.Guard.argumentIsRealNumber(colorMap.maximum, \"colorMap.maximum\");\r\n var size = this.arrayWidth * this.arrayHeight;\r\n if (this.hasDataChangesProperty ||\r\n size !== this.normalizedVector.size() ||\r\n colorMap.minimum !== this.lastZMin ||\r\n colorMap.maximum !== this.lastZMax ||\r\n fillValuesOutOfRange !== this.lastFillValuesOutOfRange) {\r\n this.recreateNormalizedVector(colorMap.minimum, colorMap.maximum, fillValuesOutOfRange);\r\n this.lastZMin = colorMap.minimum;\r\n this.lastZMax = colorMap.maximum;\r\n this.lastFillValuesOutOfRange = fillValuesOutOfRange;\r\n this.hasDataChangesProperty = false;\r\n }\r\n return this.normalizedVector;\r\n };\r\n /**\r\n * Recreates the normalized vector (internally used for drawing heatmap) according to zMin and zMax values\r\n * @param zMin\r\n * @param zMax\r\n */\r\n BaseHeatmapDataSeries.prototype.recreateNormalizedVector = function (zMin, zMax, fillValuesOutOfRange) {\r\n var size = this.arrayWidth * this.arrayHeight;\r\n this.normalizedVector.clear();\r\n this.normalizedVector.resizeFast(size);\r\n // We need to offset newMinValue which is being used for NaN values\r\n // for the double distance of the texture, which is 256\r\n var newZMin = this.hasNaNs ? zMin - (zMax - zMin) / 128 : zMin;\r\n if (!(0, isRealNumber_1.isRealNumber)(newZMin)) {\r\n throw Error(\"Can not create newZMin for try to use different zMin and zMax values\");\r\n }\r\n var index = 0;\r\n var normalizationFactor = 1.0 / (zMax - newZMin);\r\n var rowArray = new Float32Array(this.arrayWidth);\r\n for (var y = 0; y < this.arrayHeight; y++) {\r\n for (var x = 0; x < this.arrayWidth; x++) {\r\n // normalized value from 0..1 = (zValue - zMin) / ((zMax - zMin))\r\n var zValueRaw = this.zValuesProperty[y][x];\r\n var zValue = zValueRaw - newZMin;\r\n // if value !== value is a simple but fast isNaN check\r\n // equivalent to isNaN(zValueRaw)\r\n if (zValueRaw !== zValueRaw) {\r\n zValue = 0;\r\n }\r\n else if (zValue < zMin - newZMin) {\r\n zValue = fillValuesOutOfRange ? zMin - newZMin : 0;\r\n }\r\n else if (zValue > zMax - newZMin) {\r\n zValue = fillValuesOutOfRange ? zMax - newZMin : 0;\r\n }\r\n var normalizedZValue = zValue * normalizationFactor;\r\n rowArray[x] = normalizedZValue;\r\n }\r\n (0, appendDoubleVectorFromJsArray_1.memCopyFloat32)(this.webAssemblyContext, rowArray, this.normalizedVector, index);\r\n index += this.arrayWidth;\r\n }\r\n };\r\n /**\r\n * Gets the metadata by Y and X indexes\r\n * @param yIndex The Y index\r\n * @param xIndex The X index\r\n */\r\n BaseHeatmapDataSeries.prototype.getMetadataAt = function (yIndex, xIndex) {\r\n this.validateIndexes(yIndex, xIndex);\r\n if (!this.metadataProperty) {\r\n return undefined;\r\n }\r\n return this.metadataProperty[yIndex][xIndex];\r\n };\r\n /**\r\n * Gets the metadata matrix height\r\n */\r\n BaseHeatmapDataSeries.prototype.getMetadataHeight = function () {\r\n if (!this.metadataProperty) {\r\n return this.arrayHeight;\r\n }\r\n return this.metadataProperty.length;\r\n };\r\n /**\r\n * Gets the metadata matrix width\r\n */\r\n BaseHeatmapDataSeries.prototype.getMetadataWidth = function () {\r\n if (!this.metadataProperty) {\r\n return this.arrayWidth;\r\n }\r\n return this.metadataProperty[0].length;\r\n };\r\n BaseHeatmapDataSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var options = this.getOptions(excludeData);\r\n return { type: this.type, options: options };\r\n };\r\n /** @inheritDoc */\r\n BaseHeatmapDataSeries.prototype.getIndicesRange = function (visibleRange, isCategoryData, downSearchMode, upSearchMode) {\r\n return undefined;\r\n };\r\n Object.defineProperty(BaseHeatmapDataSeries.prototype, \"changeCount\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.changeCountProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BaseHeatmapDataSeries.prototype.getOptions = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var options = {\r\n id: this.id,\r\n containsNaN: this.hasNaNs,\r\n dataSeriesName: this.dataSeriesName,\r\n zValues: excludeData ? undefined : this.zValuesProperty,\r\n metadata: this.metadataGeneratorProperty\r\n ? this.metadataGeneratorProperty.toJSON()\r\n : excludeData\r\n ? undefined\r\n : this.metadataProperty\r\n };\r\n return options;\r\n };\r\n /**\r\n * Computes the range in the Z-direction for this DataSeries\r\n * @remarks\r\n * Be aware for performance reasons, every call to getZRange will result in a recalculation\r\n * @protected\r\n */\r\n BaseHeatmapDataSeries.prototype.getZRange = function () {\r\n var zValues = this.getZValues();\r\n if (zValues) {\r\n var zMin = Number.MAX_VALUE;\r\n var zMax = -Number.MAX_VALUE;\r\n for (var y = 0; y < this.arrayHeight; ++y) {\r\n for (var x = 0; x < this.arrayWidth; x++) {\r\n var zValue = zValues[y][x];\r\n if (zValue < zMin)\r\n zMin = zValue;\r\n if (zValue > zMax)\r\n zMax = zValue;\r\n }\r\n }\r\n return new NumberRange_1.NumberRange(zMin, zMax);\r\n }\r\n return undefined;\r\n };\r\n BaseHeatmapDataSeries.prototype.validateIndexes = function (yIndex, xIndex) {\r\n if (Math.round(yIndex) !== yIndex) {\r\n throw Error(\"yIndex must be an integer\");\r\n }\r\n if (Math.round(xIndex) !== xIndex) {\r\n throw Error(\"xIndex must be an integer\");\r\n }\r\n if (yIndex < 0 || yIndex >= this.arrayHeight) {\r\n throw new Error(\"yIndex is out of range\");\r\n }\r\n if (xIndex < 0 || xIndex >= this.arrayWidth) {\r\n throw new Error(\"xIndex is out of range\");\r\n }\r\n };\r\n BaseHeatmapDataSeries.prototype.setMetadata = function (metadata) {\r\n if (!metadata && this.metadataGeneratorProperty) {\r\n for (var h = 0; h < this.arrayHeight; h++) {\r\n for (var w = 0; w < this.arrayWidth; w++) {\r\n metadata[h][w] = this.metadataGeneratorProperty.getSingleMetadata();\r\n }\r\n }\r\n }\r\n this.metadataProperty = metadata;\r\n };\r\n BaseHeatmapDataSeries.prototype.setMetadataAt = function (yIndex, xIndex, metadata) {\r\n if (!metadata) {\r\n return;\r\n }\r\n this.validateIndexes(yIndex, xIndex);\r\n this.fillMetadataIfUndefined();\r\n this.metadataProperty[yIndex][xIndex] = metadata;\r\n };\r\n BaseHeatmapDataSeries.prototype.fillMetadataIfUndefined = function () {\r\n if (this.metadataProperty === undefined) {\r\n var metadata = Array(this.arrayHeight).fill(undefined);\r\n for (var i = 0; i < this.arrayHeight; i++) {\r\n metadata[i] = Array(this.arrayWidth).fill(undefined);\r\n }\r\n }\r\n };\r\n return BaseHeatmapDataSeries;\r\n}());\r\nexports.BaseHeatmapDataSeries = BaseHeatmapDataSeries;\r\n// @ignore\r\nvar guardSameLengthZValuesAndMetadata = function (zValues, metadata) {\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: zValues, name: \"zValues\" },\r\n { arg: metadata, name: \"metadata\" }\r\n ]);\r\n for (var i = 0; i < zValues.length; i++) {\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: zValues[i], name: \"zValues[\".concat(i, \"]\") },\r\n { arg: metadata[i], name: \"metadata[\".concat(i, \"]\") }\r\n ]);\r\n }\r\n};\r\n// @ignore\r\nvar fillMetadata = function (width, height, metadata) {\r\n if (metadata) {\r\n return metadata;\r\n }\r\n var metadata2 = Array(height).fill(undefined);\r\n for (var i = 0; i < height; i++) {\r\n metadata2[i] = Array(width).fill(undefined);\r\n }\r\n return metadata2;\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BasePaletteProvider = void 0;\r\n/**\r\n * The base class for PaletteProvider that allows you to perform per-point paletting or coloring of series or data-points\r\n * in SciChart's {@link https://www.scichart.com/javascript-chart-features | High Performance Realtime JavaScript Charts}\r\n * @remarks\r\n * See derived type {@link IStrokePaletteProvider} for coloring line series or strokes.\r\n * See derived type {@link IFillPaletteProvider} for coloring fills or areas.\r\n */\r\nvar BasePaletteProvider = /** @class */ (function () {\r\n function BasePaletteProvider() {\r\n }\r\n BasePaletteProvider.prototype.onAttached = function (parentSeries) {\r\n // Nothing to do in base class\r\n };\r\n BasePaletteProvider.prototype.onDetached = function () {\r\n // Nothing to do in base class\r\n };\r\n return BasePaletteProvider;\r\n}());\r\nexports.BasePaletteProvider = BasePaletteProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HeatmapSeriesInfo = void 0;\r\nvar NumericFormat_1 = require(\"../../../types/NumericFormat\");\r\nvar number_1 = require(\"../../../utils/number\");\r\nvar SeriesInfo_1 = require(\"./SeriesInfo\");\r\nvar HeatmapSeriesInfo = /** @class */ (function (_super) {\r\n __extends(HeatmapSeriesInfo, _super);\r\n function HeatmapSeriesInfo(renderableSeries, hitTestInfo) {\r\n var _this = _super.call(this, renderableSeries, hitTestInfo) || this;\r\n _this.xIndex = hitTestInfo.heatmapXIndex;\r\n _this.yIndex = hitTestInfo.heatmapYIndex;\r\n _this.zValue = hitTestInfo.zValue;\r\n // TODO: set color\r\n _this.color = undefined;\r\n return _this;\r\n }\r\n Object.defineProperty(HeatmapSeriesInfo.prototype, \"formattedZValue\", {\r\n get: function () {\r\n var rs = this.renderableSeries;\r\n if (rs) {\r\n return rs.zLabelProvider.formatCursorLabel(this.zValue);\r\n }\r\n else {\r\n return (0, number_1.formatNumber)(this.zValue, NumericFormat_1.ENumericFormat.Decimal, 2);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return HeatmapSeriesInfo;\r\n}(SeriesInfo_1.SeriesInfo));\r\nexports.HeatmapSeriesInfo = HeatmapSeriesInfo;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HlcSeriesInfo = void 0;\r\nvar SeriesInfo_1 = require(\"./SeriesInfo\");\r\nvar HlcSeriesInfo = /** @class */ (function (_super) {\r\n __extends(HlcSeriesInfo, _super);\r\n function HlcSeriesInfo(renderableSeries, hitTestInfo) {\r\n var _this = _super.call(this, renderableSeries, hitTestInfo) || this;\r\n _this.highValue = hitTestInfo.highValue;\r\n _this.lowValue = hitTestInfo.lowValue;\r\n _this.closeValue = hitTestInfo.closeValue;\r\n return _this;\r\n }\r\n Object.defineProperty(HlcSeriesInfo.prototype, \"formattedHighValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.highValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HlcSeriesInfo.prototype, \"formattedLowValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.lowValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HlcSeriesInfo.prototype, \"formattedCloseValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.closeValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return HlcSeriesInfo;\r\n}(SeriesInfo_1.SeriesInfo));\r\nexports.HlcSeriesInfo = HlcSeriesInfo;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcSeriesInfo = void 0;\r\nvar SeriesInfo_1 = require(\"./SeriesInfo\");\r\nvar OhlcSeriesInfo = /** @class */ (function (_super) {\r\n __extends(OhlcSeriesInfo, _super);\r\n function OhlcSeriesInfo(renderableSeries, hitTestInfo) {\r\n var _this = _super.call(this, renderableSeries, hitTestInfo) || this;\r\n _this.openValue = hitTestInfo.openValue;\r\n _this.highValue = hitTestInfo.highValue;\r\n _this.lowValue = hitTestInfo.lowValue;\r\n _this.closeValue = hitTestInfo.closeValue;\r\n return _this;\r\n }\r\n Object.defineProperty(OhlcSeriesInfo.prototype, \"formattedOpenValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.openValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcSeriesInfo.prototype, \"formattedHighValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.highValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcSeriesInfo.prototype, \"formattedLowValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.lowValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcSeriesInfo.prototype, \"formattedCloseValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.closeValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return OhlcSeriesInfo;\r\n}(SeriesInfo_1.SeriesInfo));\r\nexports.OhlcSeriesInfo = OhlcSeriesInfo;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesInfo = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\n/**\r\n * SeriesInfo is a data-structure which provides enriched information about a hit-test operation.\r\n * It's derived by calling {@link BaseRenderableSeries.hitTestProvider.hitTest} (returns {@link HitTestInfo}) and then\r\n * enriched by calling {@link BaseRenderableSeries.getSeriesInfo}. There is a class hierachy for {@link SeriesInfo} which\r\n * is a different class depending on series type, e.g. line, mountain, scatter series has {@link XySeriesInfo},\r\n * heatmap series as {@link HeatmapSeriesInfo} etc.\r\n */\r\nvar SeriesInfo = /** @class */ (function () {\r\n function SeriesInfo(renderableSeries, hitTestInfo) {\r\n var _a;\r\n this.renderableSeries = renderableSeries;\r\n this.seriesName = (_a = renderableSeries.dataSeries) === null || _a === void 0 ? void 0 : _a.dataSeriesName;\r\n this.stroke = renderableSeries.stroke;\r\n this.dataSeriesType = hitTestInfo.dataSeriesType;\r\n this.dataSeriesIndex = hitTestInfo.dataSeriesIndex;\r\n this.isHit = hitTestInfo.isHit;\r\n this.isWithinDataBounds = hitTestInfo.isWithinDataBounds;\r\n this.hitTestPointValues = hitTestInfo.hitTestPointValues;\r\n this.xValue = hitTestInfo.isCategoryAxis ? hitTestInfo.xCategoryValue : hitTestInfo.xValue;\r\n this.point2xValue = hitTestInfo.point2xValue;\r\n this.yValue = hitTestInfo.yValue;\r\n this.point2yValue = hitTestInfo.point2yValue;\r\n this.xCoordinate = hitTestInfo.xCoord;\r\n this.yCoordinate = hitTestInfo.yCoord;\r\n this.point2xCoordinate = hitTestInfo.point2xCoord;\r\n this.point2yCoordinate = hitTestInfo.point2yCoord;\r\n this.pointMetadata = hitTestInfo.metadata;\r\n this.point2metadata = hitTestInfo.point2metadata;\r\n this.distance = hitTestInfo.distance;\r\n if (renderableSeries.type === SeriesType_1.ESeriesType.ColumnSeries) {\r\n this.fill = renderableSeries.fill;\r\n }\r\n else if (renderableSeries.type === SeriesType_1.ESeriesType.MountainSeries) {\r\n this.fill = renderableSeries.fill;\r\n }\r\n else if (renderableSeries.type === SeriesType_1.ESeriesType.BandSeries) {\r\n this.fill = renderableSeries.fill;\r\n }\r\n }\r\n Object.defineProperty(SeriesInfo.prototype, \"isVisible\", {\r\n get: function () {\r\n return this.renderableSeries.isVisible;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SeriesInfo.prototype, \"formattedYValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.yValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SeriesInfo.prototype, \"formattedXValue\", {\r\n get: function () {\r\n return this.getXCursorFormattedValue(this.xValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SeriesInfo.prototype.getYCursorFormattedValue = function (value) {\r\n return this.renderableSeries.yAxis.labelProvider.formatCursorLabel(value);\r\n };\r\n SeriesInfo.prototype.getXCursorFormattedValue = function (value) {\r\n return this.renderableSeries.xAxis.labelProvider.formatCursorLabel(value);\r\n };\r\n SeriesInfo.prototype.equals = function (other) {\r\n return (other &&\r\n this.renderableSeries.id === other.renderableSeries.id &&\r\n this.isHit === other.isHit &&\r\n (this.xValue === other.xValue || (this.xValue !== this.xValue && other.xValue !== other.xValue)) &&\r\n (this.yValue === other.yValue || (this.yValue !== this.yValue && other.yValue !== other.yValue)) &&\r\n this.pointMetadata === other.pointMetadata);\r\n };\r\n return SeriesInfo;\r\n}());\r\nexports.SeriesInfo = SeriesInfo;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedXySeriesInfo = void 0;\r\nvar SeriesInfo_1 = require(\"./SeriesInfo\");\r\nvar StackedXySeriesInfo = /** @class */ (function (_super) {\r\n __extends(StackedXySeriesInfo, _super);\r\n function StackedXySeriesInfo(renderableSeries, hitTestInfo) {\r\n var _this = _super.call(this, renderableSeries, hitTestInfo) || this;\r\n // Hit-test on StackedMountainSeries and StackedColumnSeries returns Y accumulated, Y1 original\r\n _this.yValue = hitTestInfo.y1Value;\r\n _this.accumulatedValue = hitTestInfo.yValue;\r\n return _this;\r\n }\r\n return StackedXySeriesInfo;\r\n}(SeriesInfo_1.SeriesInfo));\r\nexports.StackedXySeriesInfo = StackedXySeriesInfo;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XySeriesInfo = void 0;\r\nvar SeriesInfo_1 = require(\"./SeriesInfo\");\r\nvar XySeriesInfo = /** @class */ (function (_super) {\r\n __extends(XySeriesInfo, _super);\r\n function XySeriesInfo(renderableSeries, hitTestInfo) {\r\n return _super.call(this, renderableSeries, hitTestInfo) || this;\r\n }\r\n return XySeriesInfo;\r\n}(SeriesInfo_1.SeriesInfo));\r\nexports.XySeriesInfo = XySeriesInfo;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyySeriesInfo = void 0;\r\nvar SeriesInfo_1 = require(\"./SeriesInfo\");\r\nvar XyySeriesInfo = /** @class */ (function (_super) {\r\n __extends(XyySeriesInfo, _super);\r\n function XyySeriesInfo(renderableSeries, hitTestInfo) {\r\n var _this = _super.call(this, renderableSeries, hitTestInfo) || this;\r\n _this.isFirstSeries = true;\r\n _this.y1Value = hitTestInfo.y1Value;\r\n _this.point2y1Value = hitTestInfo.point2y1Value;\r\n _this.y1Coordinate = hitTestInfo.y1Coord;\r\n _this.point2y1Coordinate = hitTestInfo.point2y1Coord;\r\n return _this;\r\n }\r\n Object.defineProperty(XyySeriesInfo.prototype, \"formattedY1Value\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.y1Value);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return XyySeriesInfo;\r\n}(SeriesInfo_1.SeriesInfo));\r\nexports.XyySeriesInfo = XyySeriesInfo;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyzSeriesInfo = void 0;\r\nvar SeriesInfo_1 = require(\"./SeriesInfo\");\r\nvar XyzSeriesInfo = /** @class */ (function (_super) {\r\n __extends(XyzSeriesInfo, _super);\r\n function XyzSeriesInfo(renderableSeries, hitTestInfo) {\r\n var _this = _super.call(this, renderableSeries, hitTestInfo) || this;\r\n _this.zValue = hitTestInfo.zValue;\r\n return _this;\r\n }\r\n Object.defineProperty(XyzSeriesInfo.prototype, \"formattedZValue\", {\r\n get: function () {\r\n return this.getYCursorFormattedValue(this.zValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return XyzSeriesInfo;\r\n}(SeriesInfo_1.SeriesInfo));\r\nexports.XyzSeriesInfo = XyzSeriesInfo;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataDistributionCalculator = void 0;\r\nvar performanceWarnings_1 = require(\"../../../constants/performanceWarnings\");\r\nvar array_1 = require(\"../../../utils/array\");\r\nvar number_1 = require(\"../../../utils/number\");\r\nvar DataDistributionCalculator = /** @class */ (function () {\r\n function DataDistributionCalculator() {\r\n this.containsNanProperty = false;\r\n this.isSortedAscendingProperty = true;\r\n }\r\n Object.defineProperty(DataDistributionCalculator.prototype, \"containsNaN\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.containsNanProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataDistributionCalculator.prototype, \"isSortedAscending\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isSortedAscendingProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n DataDistributionCalculator.prototype.onAppend = function (isSorted, containsNaN, currentXValues, newXValues, newYValues) {\r\n if (containsNaN !== undefined) {\r\n this.containsNanProperty = containsNaN;\r\n }\r\n else {\r\n if (this.containsNanProperty === false) {\r\n this.containsNanProperty = newYValues.some(number_1.checkIsNaN);\r\n if (this.containsNanProperty === false)\r\n performanceWarnings_1.performanceWarnings.dataDistributionFlagNaN.warn();\r\n }\r\n }\r\n if (isSorted !== undefined) {\r\n this.isSortedAscendingProperty = isSorted;\r\n }\r\n else {\r\n if (this.isSortedAscendingProperty === true) {\r\n var newSectionSortedAsc = (0, array_1.isArraySorted)(newXValues);\r\n var oldSectionLength = currentXValues.size();\r\n var newSectionAfterOldSection = oldSectionLength === 0 || currentXValues.get(oldSectionLength - 1) < newXValues[0];\r\n this.isSortedAscendingProperty = newSectionSortedAsc && newSectionAfterOldSection;\r\n if (this.isSortedAscendingProperty === true)\r\n performanceWarnings_1.performanceWarnings.dataDistributionFlagSortedAscending.warn();\r\n }\r\n }\r\n };\r\n /** @inheritDoc */\r\n DataDistributionCalculator.prototype.onInsert = function (isSorted, containsNaN, currentXValues, newXValues, newYValues, indexWhereInserted) {\r\n if (containsNaN !== undefined) {\r\n this.containsNanProperty = containsNaN;\r\n }\r\n else {\r\n if (this.containsNanProperty === false) {\r\n this.containsNanProperty = newYValues.some(number_1.checkIsNaN);\r\n if (this.containsNanProperty === false)\r\n performanceWarnings_1.performanceWarnings.dataDistributionFlagNaN.warn();\r\n }\r\n }\r\n if (isSorted !== undefined) {\r\n this.isSortedAscendingProperty = isSorted;\r\n }\r\n else {\r\n if (this.isSortedAscendingProperty === true && newXValues) {\r\n var newSectionSortedAsc = (0, array_1.isArraySorted)(newXValues);\r\n var valueOnTheLeftAscending = indexWhereInserted === 0 || currentXValues.get(indexWhereInserted - 1) < newXValues[0];\r\n var valueOnTheRightAscending = indexWhereInserted >= currentXValues.size() ||\r\n newXValues[newXValues.length - 1] < currentXValues.get(indexWhereInserted);\r\n this.isSortedAscendingProperty =\r\n newSectionSortedAsc && valueOnTheLeftAscending && valueOnTheRightAscending;\r\n if (this.isSortedAscendingProperty === true)\r\n performanceWarnings_1.performanceWarnings.dataDistributionFlagSortedAscending.warn();\r\n }\r\n }\r\n };\r\n /** @inheritDoc */\r\n DataDistributionCalculator.prototype.onUpdate = function (isSorted, containsNaN, currentXValues, newXValues, newYValues, indexWhereUpdated) {\r\n if (containsNaN !== undefined) {\r\n this.containsNanProperty = containsNaN;\r\n }\r\n else {\r\n if (this.containsNanProperty === false) {\r\n this.containsNanProperty = newYValues.some(number_1.checkIsNaN);\r\n }\r\n }\r\n if (isSorted !== undefined) {\r\n this.isSortedAscendingProperty = isSorted;\r\n }\r\n else {\r\n if (this.isSortedAscendingProperty === true && newXValues) {\r\n var newSectionSortedAsc = (0, array_1.isArraySorted)(newXValues);\r\n var valueOnTheLeftAscending = indexWhereUpdated === 0 || currentXValues.get(indexWhereUpdated - 1) < newXValues[0];\r\n var oldSectionLength = currentXValues.size();\r\n var rightIndex = indexWhereUpdated + newXValues.length;\r\n var valueOnTheRightAscending = rightIndex >= oldSectionLength ||\r\n newXValues[newXValues.length - 1] < currentXValues.get(rightIndex);\r\n this.isSortedAscendingProperty =\r\n newSectionSortedAsc && valueOnTheLeftAscending && valueOnTheRightAscending;\r\n }\r\n }\r\n };\r\n /** @inheritDoc */\r\n DataDistributionCalculator.prototype.clear = function (isSorted, containsNaN) {\r\n this.isSortedAscendingProperty = isSorted !== null && isSorted !== void 0 ? isSorted : true;\r\n this.containsNanProperty = containsNaN !== null && containsNaN !== void 0 ? containsNaN : false;\r\n };\r\n /** @inheritDoc */\r\n DataDistributionCalculator.prototype.setIsSortedAscending = function (value) {\r\n this.isSortedAscendingProperty = value;\r\n };\r\n /** @inheritDoc */\r\n DataDistributionCalculator.prototype.setContainsNaN = function (value) {\r\n this.containsNanProperty = value;\r\n };\r\n return DataDistributionCalculator;\r\n}());\r\nexports.DataDistributionCalculator = DataDistributionCalculator;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataPointSelectionPaletteProvider = void 0;\r\nvar PaletteProviderType_1 = require(\"../../types/PaletteProviderType\");\r\nvar SeriesType_1 = require(\"../../types/SeriesType\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar IPaletteProvider_1 = require(\"./IPaletteProvider\");\r\nvar DataPointSelectionPaletteProvider = /** @class */ (function () {\r\n function DataPointSelectionPaletteProvider(options) {\r\n this.strokePaletteMode = IPaletteProvider_1.EStrokePaletteMode.SOLID;\r\n this.fillPaletteMode = IPaletteProvider_1.EFillPaletteMode.SOLID;\r\n if (options === null || options === void 0 ? void 0 : options.stroke) {\r\n this.selectedStroke = (0, parseColor_1.parseColorToUIntArgb)(options === null || options === void 0 ? void 0 : options.stroke);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.fill) {\r\n this.selectedFill = (0, parseColor_1.parseColorToUIntArgb)(options === null || options === void 0 ? void 0 : options.fill);\r\n }\r\n this.selectedPointMarker = { stroke: this.selectedStroke, fill: this.selectedFill };\r\n }\r\n DataPointSelectionPaletteProvider.prototype.onAttached = function (parentSeries) {\r\n if (!this.seriesType) {\r\n this.seriesType = parentSeries.type;\r\n }\r\n else if (this.seriesType !== parentSeries.type) {\r\n parentSeries.paletteProvider = IPaletteProvider_1.DefaultPaletteProvider.createEmpty();\r\n console.error(\"One instance of a DataPointSelectionPaletteProvider cannot be shared between series of different types\");\r\n }\r\n };\r\n DataPointSelectionPaletteProvider.prototype.onDetached = function () { };\r\n DataPointSelectionPaletteProvider.prototype.overridePointMarkerArgb = function (xValue, yValue, index, opacity, metadata) {\r\n if (metadata === null || metadata === void 0 ? void 0 : metadata.isSelected) {\r\n return this.selectedPointMarker;\r\n }\r\n return undefined;\r\n };\r\n DataPointSelectionPaletteProvider.prototype.overrideStrokeArgb = function (xValue, yValue, index, opacity, metadata) {\r\n var strokeSeriesTypes = [SeriesType_1.ESeriesType.OhlcSeries, SeriesType_1.ESeriesType.CandlestickSeries, SeriesType_1.ESeriesType.ColumnSeries];\r\n if (strokeSeriesTypes.includes(this.seriesType) && (metadata === null || metadata === void 0 ? void 0 : metadata.isSelected))\r\n return this.selectedStroke;\r\n return undefined;\r\n };\r\n DataPointSelectionPaletteProvider.prototype.overrideFillArgb = function (xValue, yValue, index, opacity, metadata) {\r\n var fillSeriesTypes = [\r\n SeriesType_1.ESeriesType.StackedColumnSeries,\r\n SeriesType_1.ESeriesType.ColumnSeries,\r\n SeriesType_1.ESeriesType.CandlestickSeries\r\n ];\r\n if (fillSeriesTypes.includes(this.seriesType) && (metadata === null || metadata === void 0 ? void 0 : metadata.isSelected))\r\n return this.selectedFill;\r\n return undefined;\r\n };\r\n DataPointSelectionPaletteProvider.prototype.toJSON = function () {\r\n return {\r\n type: PaletteProviderType_1.EPaletteProviderType.DataPointSelection,\r\n options: {\r\n stroke: runIfValue(this.selectedStroke, parseColor_1.parseArgbToHtmlColor),\r\n fill: runIfValue(this.selectedFill, parseColor_1.parseArgbToHtmlColor)\r\n }\r\n };\r\n };\r\n return DataPointSelectionPaletteProvider;\r\n}());\r\nexports.DataPointSelectionPaletteProvider = DataPointSelectionPaletteProvider;\r\nvar runIfValue = function (value, fn) {\r\n if (!value)\r\n return undefined;\r\n return fn(value);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FIFOVectorProvider = exports.DoubleVectorProvider = void 0;\r\nvar NumberArray_1 = require(\"../../types/NumberArray\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar DoubleVectorProvider = /** @class */ (function () {\r\n function DoubleVectorProvider() {\r\n }\r\n DoubleVectorProvider.prototype.getDoubleVector = function (wasmContext) {\r\n if (this.capacity) {\r\n return new wasmContext.SCRTDoubleVector(this.capacity);\r\n }\r\n else {\r\n return new wasmContext.SCRTDoubleVector();\r\n }\r\n };\r\n DoubleVectorProvider.prototype.appendArray = function (wasmContext, destinationVector, jsArray) {\r\n (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(wasmContext, destinationVector, jsArray);\r\n };\r\n return DoubleVectorProvider;\r\n}());\r\nexports.DoubleVectorProvider = DoubleVectorProvider;\r\n// tslint:disable-next-line: max-classes-per-file\r\nvar FIFOVectorProvider = /** @class */ (function () {\r\n function FIFOVectorProvider(fifoCapacity) {\r\n this.capacity = fifoCapacity;\r\n }\r\n FIFOVectorProvider.prototype.getDoubleVector = function (wasmContext) {\r\n return new wasmContext.SCRTFifoVector(this.capacity);\r\n };\r\n FIFOVectorProvider.prototype.appendArray = function (wasmContext, destinationVector, jsArray) {\r\n var vectorSize = destinationVector.size();\r\n var fifoCapacity = destinationVector.capacity();\r\n var arraySize = jsArray.length;\r\n var startIndex = destinationVector.getStartIndex();\r\n //console.log(vectorSize, startIndex, fifoCapactiy, arraySize);\r\n if (fifoCapacity >= vectorSize + arraySize) {\r\n // Space to append all data. Use normal method\r\n // Get pointer to destination\r\n var bufferPointer = destinationVector.dataPtr(vectorSize);\r\n // HEAPF64.set copies js array into buffer pointer\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(jsArray, bufferPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);\r\n destinationVector.notifyAppend(arraySize);\r\n }\r\n else if (arraySize > fifoCapacity) {\r\n // new data is larger than buffer. Replace buffer with end of data\r\n var dataIndex = arraySize - fifoCapacity;\r\n var dataThatWillFit = (0, NumberArray_1.subArray)(jsArray, dataIndex);\r\n var zeroPointer = destinationVector.dataPtrZero();\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(dataThatWillFit, zeroPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);\r\n destinationVector.notifyAppend(fifoCapacity);\r\n }\r\n else if (fifoCapacity > vectorSize) {\r\n // buffer not full yet, but new data will overflow\r\n var remainingCap = fifoCapacity - vectorSize;\r\n var dataStart = (0, NumberArray_1.subArray)(jsArray, 0, remainingCap);\r\n var endPointer = destinationVector.dataPtr(vectorSize);\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(dataStart, endPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);\r\n var dataEnd = (0, NumberArray_1.subArray)(jsArray, remainingCap);\r\n var zeroPointer = destinationVector.dataPtrZero();\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(dataEnd, zeroPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);\r\n destinationVector.notifyAppend(arraySize);\r\n }\r\n else {\r\n // buffer already full\r\n if (startIndex + arraySize > fifoCapacity) {\r\n // need to do two writes\r\n var remainingCap = fifoCapacity - startIndex;\r\n var dataStart = (0, NumberArray_1.subArray)(jsArray, 0, remainingCap);\r\n var endPointer = destinationVector.dataPtr(0);\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(dataStart, endPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);\r\n var dataEnd = (0, NumberArray_1.subArray)(jsArray, remainingCap);\r\n var zeroPointer = destinationVector.dataPtrZero();\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(dataEnd, zeroPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);\r\n }\r\n else {\r\n var endPointer = destinationVector.dataPtr(0);\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(jsArray, endPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);\r\n }\r\n destinationVector.notifyAppend(arraySize);\r\n }\r\n // const newSize = destinationVector.size();\r\n // const newstartIndex = destinationVector.getStartIndex();\r\n // console.log(newSize, newstartIndex);\r\n };\r\n return FIFOVectorProvider;\r\n}());\r\nexports.FIFOVectorProvider = FIFOVectorProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HlcCustomFilter = void 0;\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar HlcFilterBase_1 = require(\"./HlcFilterBase\");\r\nvar HlcCustomFilter = /** @class */ (function (_super) {\r\n __extends(HlcCustomFilter, _super);\r\n function HlcCustomFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n if (originalSeries.type !== IDataSeries_1.EDataSeriesType.Hlc) {\r\n throw new Error(\"HlcCustomFilter only supports Hlc original series\");\r\n }\r\n _this.closefilterFunctionProperty = (_a = options === null || options === void 0 ? void 0 : options.closefilterFunction) !== null && _a !== void 0 ? _a : _this.closefilterFunctionProperty;\r\n _this.highfilterFunctionProperty = (_b = options === null || options === void 0 ? void 0 : options.highfilterFunction) !== null && _b !== void 0 ? _b : _this.closefilterFunction;\r\n _this.lowfilterFunctionProperty = (_c = options === null || options === void 0 ? void 0 : options.lowfilterFunction) !== null && _c !== void 0 ? _c : _this.closefilterFunction;\r\n if (_this.getOriginalCount() > 0 &&\r\n ((options === null || options === void 0 ? void 0 : options.closefilterFunction) || (options === null || options === void 0 ? void 0 : options.highfilterFunction) || (options === null || options === void 0 ? void 0 : options.lowfilterFunction))) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(HlcCustomFilter.prototype, \"closefilterFunction\", {\r\n get: function () {\r\n return this.closefilterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.closefilterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HlcCustomFilter.prototype, \"highfilterFunction\", {\r\n get: function () {\r\n return this.highfilterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.highfilterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HlcCustomFilter.prototype, \"lowfilterFunction\", {\r\n get: function () {\r\n return this.lowfilterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.lowfilterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n HlcCustomFilter.prototype.highfilterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n HlcCustomFilter.prototype.lowfilterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n HlcCustomFilter.prototype.closefilterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n HlcCustomFilter.prototype.filterOnAppend = function (count) {\r\n var _a = this.filter(this.count(), count), xValues = _a.xValues, highValues = _a.highValues, lowValues = _a.lowValues, closeValues = _a.closeValues, metadata = _a.metadata;\r\n this.appendRange(xValues, closeValues, highValues, lowValues, metadata);\r\n };\r\n HlcCustomFilter.prototype.filterOnUpdate = function (index) {\r\n var hlcSeries = this.originalSeries;\r\n this.update(index, this.highfilterFunction(index, hlcSeries.getNativeHighValues().get(index)), this.lowfilterFunction(index, hlcSeries.getNativeLowValues().get(index)), this.closefilterFunction(index, hlcSeries.getNativeYValues().get(index)), this.originalSeries.getMetadataAt(index));\r\n };\r\n HlcCustomFilter.prototype.filterOnInsert = function (startIndex, count) {\r\n var _a = this.filter(startIndex, count), xValues = _a.xValues, highValues = _a.highValues, lowValues = _a.lowValues, closeValues = _a.closeValues, metadata = _a.metadata;\r\n this.insertRange(startIndex, xValues, closeValues, highValues, lowValues, metadata);\r\n };\r\n HlcCustomFilter.prototype.filterOnRemove = function (startIndex, count) {\r\n this.removeRange(startIndex, count);\r\n };\r\n HlcCustomFilter.prototype.filterAll = function () {\r\n this.clear();\r\n var _a = this.filter(0, this.getOriginalCount()), xValues = _a.xValues, highValues = _a.highValues, lowValues = _a.lowValues, closeValues = _a.closeValues, metadata = _a.metadata;\r\n this.appendRange(xValues, closeValues, highValues, lowValues, metadata);\r\n };\r\n HlcCustomFilter.prototype.filter = function (startIndex, count) {\r\n var rawX = this.getOriginalXValues();\r\n var rawClose = this.getOriginalYValues();\r\n var rawHigh = this.getOriginalHighValues();\r\n var rawLow = this.getOriginalLowValues();\r\n var xValues = [];\r\n var highValues = [];\r\n var lowValues = [];\r\n var closeValues = [];\r\n var metadata = undefined;\r\n // leave metadata unset if if original series has no metadata\r\n if (this.originalSeries.hasMetadata) {\r\n metadata = [];\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n highValues.push(this.highfilterFunction(i, rawHigh.get(i)));\r\n lowValues.push(this.lowfilterFunction(i, rawLow.get(i)));\r\n closeValues.push(this.closefilterFunction(i, rawClose.get(i)));\r\n metadata.push(this.originalSeries.getMetadataAt(i));\r\n }\r\n }\r\n else {\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n highValues.push(this.highfilterFunction(i, rawHigh.get(i)));\r\n lowValues.push(this.lowfilterFunction(i, rawLow.get(i)));\r\n closeValues.push(this.closefilterFunction(i, rawClose.get(i)));\r\n }\r\n }\r\n return { xValues: xValues, highValues: highValues, lowValues: lowValues, closeValues: closeValues, metadata: metadata };\r\n };\r\n return HlcCustomFilter;\r\n}(HlcFilterBase_1.HlcFilterBase));\r\nexports.HlcCustomFilter = HlcCustomFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HlcFilterBase = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar HlcDataSeries_1 = require(\"../HlcDataSeries\");\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar XyFilterBase_1 = require(\"./XyFilterBase\");\r\nvar HlcFilterBase = /** @class */ (function (_super) {\r\n __extends(HlcFilterBase, _super);\r\n function HlcFilterBase(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries.webAssemblyContext, options) || this;\r\n _this.closefield = XyFilterBase_1.EDataSeriesField.Close;\r\n _this.highfield = XyFilterBase_1.EDataSeriesField.High;\r\n _this.lowfield = XyFilterBase_1.EDataSeriesField.Low;\r\n _this.originalSeriesProperty = originalSeries;\r\n _this.closefield = (_a = options === null || options === void 0 ? void 0 : options.closefield) !== null && _a !== void 0 ? _a : _this.closefield;\r\n _this.highfield = (_b = options === null || options === void 0 ? void 0 : options.highfield) !== null && _b !== void 0 ? _b : _this.highfield;\r\n _this.onBaseDataChanged = _this.onBaseDataChanged.bind(_this);\r\n originalSeries.dataChanged.subscribe(_this.onBaseDataChanged);\r\n switch (_this.originalSeries.type) {\r\n case IDataSeries_1.EDataSeriesType.Ohlc:\r\n var ohlcSeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.closefield, ohlcSeries_1.getNativeYValues(), ohlcSeries_1.getNativeOpenValues(), ohlcSeries_1.getNativeHighValues(), ohlcSeries_1.getNativeLowValues());\r\n };\r\n _this.getOriginalHighValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.highfield, ohlcSeries_1.getNativeYValues(), ohlcSeries_1.getNativeOpenValues(), ohlcSeries_1.getNativeHighValues(), ohlcSeries_1.getNativeLowValues());\r\n };\r\n _this.getOriginalLowValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.lowfield, ohlcSeries_1.getNativeYValues(), ohlcSeries_1.getNativeOpenValues(), ohlcSeries_1.getNativeHighValues(), ohlcSeries_1.getNativeLowValues());\r\n };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xy:\r\n var xySeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () { return xySeries_1.getNativeYValues(); };\r\n _this.getOriginalHighValues = function () { return xySeries_1.getNativeYValues(); };\r\n _this.getOriginalLowValues = function () { return xySeries_1.getNativeYValues(); };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xyy:\r\n var xyySeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.closefield, xyySeries_1.getNativeYValues(), xyySeries_1.getNativeY1Values());\r\n };\r\n _this.getOriginalHighValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.highfield, xyySeries_1.getNativeYValues(), xyySeries_1.getNativeY1Values());\r\n };\r\n _this.getOriginalLowValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.lowfield, xyySeries_1.getNativeYValues(), xyySeries_1.getNativeY1Values());\r\n };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xyz:\r\n var xyzSeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.closefield, xyzSeries_1.getNativeYValues(), xyzSeries_1.getNativeZValues());\r\n };\r\n _this.getOriginalHighValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.highfield, xyzSeries_1.getNativeYValues(), xyzSeries_1.getNativeZValues());\r\n };\r\n _this.getOriginalLowValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.lowfield, xyzSeries_1.getNativeYValues(), xyzSeries_1.getNativeZValues());\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(HlcFilterBase.prototype, \"originalSeries\", {\r\n get: function () {\r\n return this.originalSeriesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n HlcFilterBase.prototype.detachFromOriginalSeries = function () {\r\n this.originalSeries.dataChanged.unsubscribe(this.onBaseDataChanged);\r\n this.originalSeriesProperty = undefined;\r\n };\r\n HlcFilterBase.prototype.delete = function () {\r\n this.originalSeriesProperty = (0, Deleter_1.deleteSafe)(this.originalSeries);\r\n _super.prototype.delete.call(this);\r\n };\r\n HlcFilterBase.prototype.getOriginalXValues = function () {\r\n return this.originalSeries.getNativeXValues();\r\n };\r\n HlcFilterBase.prototype.getOriginalYValues = function () {\r\n return this.originalSeries.getNativeYValues();\r\n };\r\n HlcFilterBase.prototype.getOriginalHighValues = function () {\r\n return this.originalSeries.getNativeHighValues();\r\n };\r\n HlcFilterBase.prototype.getOriginalLowValues = function () {\r\n return this.originalSeries.getNativeLowValues();\r\n };\r\n HlcFilterBase.prototype.getOriginalCount = function () {\r\n return this.originalSeries.count();\r\n };\r\n HlcFilterBase.prototype.onOriginalPropertyChanged = function (name) { };\r\n HlcFilterBase.prototype.filterOnAppend = function (count) {\r\n this.filterAll();\r\n };\r\n HlcFilterBase.prototype.filterOnUpdate = function (index) {\r\n this.filterAll();\r\n };\r\n HlcFilterBase.prototype.filterOnInsert = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n HlcFilterBase.prototype.filterOnRemove = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n HlcFilterBase.prototype.onClear = function () {\r\n this.clear();\r\n };\r\n HlcFilterBase.prototype.onBaseDataChanged = function (args) {\r\n var changeType = args.changeType, name = args.name, index = args.index, count = args.count;\r\n switch (changeType) {\r\n case IDataSeries_1.EDataChangeType.Property:\r\n this.onOriginalPropertyChanged(name);\r\n return;\r\n case IDataSeries_1.EDataChangeType.Append:\r\n this.filterOnAppend(count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Clear:\r\n this.onClear();\r\n break;\r\n case IDataSeries_1.EDataChangeType.Insert:\r\n this.filterOnInsert(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Remove:\r\n this.filterOnRemove(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Update:\r\n this.filterOnUpdate(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return HlcFilterBase;\r\n}(HlcDataSeries_1.HlcDataSeries));\r\nexports.HlcFilterBase = HlcFilterBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HlcScaleOffsetFilter = void 0;\r\nvar DataFilterType_1 = require(\"../../../types/DataFilterType\");\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar HlcCustomFilter_1 = require(\"./HlcCustomFilter\");\r\nvar HlcScaleOffsetFilter = /** @class */ (function (_super) {\r\n __extends(HlcScaleOffsetFilter, _super);\r\n function HlcScaleOffsetFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.scaleProperty = 1;\r\n _this.offsetProperty = 0;\r\n if (originalSeries.type !== IDataSeries_1.EDataSeriesType.Hlc) {\r\n throw new Error(\"HlcScaleOffsetFilter only supports Hlc original series\");\r\n }\r\n _this.scaleProperty = (_a = options === null || options === void 0 ? void 0 : options.scale) !== null && _a !== void 0 ? _a : _this.scaleProperty;\r\n _this.offsetProperty = (_b = options === null || options === void 0 ? void 0 : options.offset) !== null && _b !== void 0 ? _b : _this.offsetProperty;\r\n if (_this.getOriginalCount() > 0) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(HlcScaleOffsetFilter.prototype, \"scale\", {\r\n get: function () {\r\n return this.scaleProperty;\r\n },\r\n set: function (value) {\r\n this.scaleProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HlcScaleOffsetFilter.prototype, \"offset\", {\r\n get: function () {\r\n return this.offsetProperty;\r\n },\r\n set: function (value) {\r\n this.offsetProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // @ts-ignore\r\n HlcScaleOffsetFilter.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var original = this.originalSeries.toJSON(excludeData);\r\n return __assign(__assign({}, original), { filter: {\r\n type: DataFilterType_1.EDataFilterType.HlcScaleOffset,\r\n options: { scale: this.scale, offset: this.offset }\r\n } });\r\n };\r\n HlcScaleOffsetFilter.prototype.defaultFunction = function (index, y) {\r\n return y * this.scaleProperty + this.offsetProperty;\r\n };\r\n return HlcScaleOffsetFilter;\r\n}(HlcCustomFilter_1.HlcCustomFilter));\r\nexports.HlcScaleOffsetFilter = HlcScaleOffsetFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcCustomFilter = void 0;\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar OhlcFilterBase_1 = require(\"./OhlcFilterBase\");\r\nvar OhlcCustomFilter = /** @class */ (function (_super) {\r\n __extends(OhlcCustomFilter, _super);\r\n function OhlcCustomFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n if (originalSeries.type !== IDataSeries_1.EDataSeriesType.Ohlc) {\r\n throw new Error(\"OhlcCustomFilter only supports Ohlc original series\");\r\n }\r\n _this.closefilterFunctionProperty = (_a = options === null || options === void 0 ? void 0 : options.closefilterFunction) !== null && _a !== void 0 ? _a : _this.closefilterFunctionProperty;\r\n _this.openfilterFunctionProperty = (_b = options === null || options === void 0 ? void 0 : options.openfilterFunction) !== null && _b !== void 0 ? _b : _this.closefilterFunction;\r\n _this.highfilterFunctionProperty = (_c = options === null || options === void 0 ? void 0 : options.highfilterFunction) !== null && _c !== void 0 ? _c : _this.closefilterFunction;\r\n _this.lowfilterFunctionProperty = (_d = options === null || options === void 0 ? void 0 : options.lowfilterFunction) !== null && _d !== void 0 ? _d : _this.closefilterFunction;\r\n if (_this.getOriginalCount() > 0 &&\r\n ((options === null || options === void 0 ? void 0 : options.closefilterFunction) ||\r\n (options === null || options === void 0 ? void 0 : options.openfilterFunction) ||\r\n (options === null || options === void 0 ? void 0 : options.highfilterFunction) ||\r\n (options === null || options === void 0 ? void 0 : options.lowfilterFunction))) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(OhlcCustomFilter.prototype, \"closefilterFunction\", {\r\n get: function () {\r\n return this.closefilterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.closefilterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcCustomFilter.prototype, \"openfilterFunction\", {\r\n get: function () {\r\n return this.openfilterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.openfilterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcCustomFilter.prototype, \"highfilterFunction\", {\r\n get: function () {\r\n return this.highfilterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.highfilterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcCustomFilter.prototype, \"lowfilterFunction\", {\r\n get: function () {\r\n return this.lowfilterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.lowfilterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n OhlcCustomFilter.prototype.openfilterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n OhlcCustomFilter.prototype.highfilterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n OhlcCustomFilter.prototype.lowfilterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n OhlcCustomFilter.prototype.closefilterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n OhlcCustomFilter.prototype.filterOnAppend = function (count) {\r\n var _a = this.filter(this.count(), count), xValues = _a.xValues, openValues = _a.openValues, highValues = _a.highValues, lowValues = _a.lowValues, closeValues = _a.closeValues, metadata = _a.metadata;\r\n this.appendRange(xValues, openValues, highValues, lowValues, closeValues, metadata);\r\n };\r\n OhlcCustomFilter.prototype.filterOnUpdate = function (index) {\r\n var ohlcSeries = this.originalSeries;\r\n this.update(index, this.openfilterFunction(index, ohlcSeries.getNativeOpenValues().get(index)), this.highfilterFunction(index, ohlcSeries.getNativeHighValues().get(index)), this.lowfilterFunction(index, ohlcSeries.getNativeLowValues().get(index)), this.closefilterFunction(index, ohlcSeries.getNativeCloseValues().get(index)), this.originalSeries.getMetadataAt(index));\r\n };\r\n OhlcCustomFilter.prototype.filterOnInsert = function (startIndex, count) {\r\n var _a = this.filter(startIndex, count), xValues = _a.xValues, openValues = _a.openValues, highValues = _a.highValues, lowValues = _a.lowValues, closeValues = _a.closeValues, metadata = _a.metadata;\r\n this.insertRange(startIndex, xValues, openValues, highValues, lowValues, closeValues, metadata);\r\n };\r\n OhlcCustomFilter.prototype.filterOnRemove = function (startIndex, count) {\r\n this.removeRange(startIndex, count);\r\n };\r\n OhlcCustomFilter.prototype.filterAll = function () {\r\n this.clear();\r\n var _a = this.filter(0, this.getOriginalCount()), xValues = _a.xValues, openValues = _a.openValues, highValues = _a.highValues, lowValues = _a.lowValues, closeValues = _a.closeValues, metadata = _a.metadata;\r\n this.appendRange(xValues, openValues, highValues, lowValues, closeValues, metadata);\r\n };\r\n OhlcCustomFilter.prototype.filter = function (startIndex, count) {\r\n var rawX = this.getOriginalXValues();\r\n var ohlcSeries = this.originalSeries;\r\n var xValues = [];\r\n var openValues = [];\r\n var highValues = [];\r\n var lowValues = [];\r\n var closeValues = [];\r\n var metadata = undefined;\r\n if (this.originalSeries.hasMetadata) {\r\n metadata = [];\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n openValues.push(this.openfilterFunction(i, ohlcSeries.getNativeOpenValues().get(i)));\r\n highValues.push(this.highfilterFunction(i, ohlcSeries.getNativeHighValues().get(i)));\r\n lowValues.push(this.lowfilterFunction(i, ohlcSeries.getNativeLowValues().get(i)));\r\n closeValues.push(this.closefilterFunction(i, ohlcSeries.getNativeCloseValues().get(i)));\r\n metadata.push(this.originalSeries.getMetadataAt(i));\r\n }\r\n }\r\n else {\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n openValues.push(this.openfilterFunction(i, ohlcSeries.getNativeOpenValues().get(i)));\r\n highValues.push(this.highfilterFunction(i, ohlcSeries.getNativeHighValues().get(i)));\r\n lowValues.push(this.lowfilterFunction(i, ohlcSeries.getNativeLowValues().get(i)));\r\n closeValues.push(this.closefilterFunction(i, ohlcSeries.getNativeCloseValues().get(i)));\r\n }\r\n }\r\n return { xValues: xValues, openValues: openValues, highValues: highValues, lowValues: lowValues, closeValues: closeValues, metadata: metadata };\r\n };\r\n return OhlcCustomFilter;\r\n}(OhlcFilterBase_1.OhlcFilterBase));\r\nexports.OhlcCustomFilter = OhlcCustomFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcFilterBase = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar OhlcDataSeries_1 = require(\"../OhlcDataSeries\");\r\nvar OhlcFilterBase = /** @class */ (function (_super) {\r\n __extends(OhlcFilterBase, _super);\r\n function OhlcFilterBase(originalSeries, options) {\r\n var _this = _super.call(this, originalSeries.webAssemblyContext, options) || this;\r\n _this.originalSeriesProperty = originalSeries;\r\n _this.onBaseDataChanged = _this.onBaseDataChanged.bind(_this);\r\n originalSeries.dataChanged.subscribe(_this.onBaseDataChanged);\r\n return _this;\r\n }\r\n Object.defineProperty(OhlcFilterBase.prototype, \"originalSeries\", {\r\n get: function () {\r\n return this.originalSeriesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n OhlcFilterBase.prototype.detachFromOriginalSeries = function () {\r\n this.originalSeries.dataChanged.unsubscribe(this.onBaseDataChanged);\r\n this.originalSeriesProperty = undefined;\r\n };\r\n OhlcFilterBase.prototype.delete = function () {\r\n this.originalSeriesProperty = (0, Deleter_1.deleteSafe)(this.originalSeries);\r\n _super.prototype.delete.call(this);\r\n };\r\n OhlcFilterBase.prototype.getOriginalXValues = function () {\r\n return this.originalSeries.getNativeXValues();\r\n };\r\n OhlcFilterBase.prototype.getOriginalCount = function () {\r\n return this.originalSeries.count();\r\n };\r\n OhlcFilterBase.prototype.onOriginalPropertyChanged = function (name) { };\r\n OhlcFilterBase.prototype.filterOnAppend = function (count) {\r\n this.filterAll();\r\n };\r\n OhlcFilterBase.prototype.filterOnUpdate = function (index) {\r\n this.filterAll();\r\n };\r\n OhlcFilterBase.prototype.filterOnInsert = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n OhlcFilterBase.prototype.filterOnRemove = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n OhlcFilterBase.prototype.onClear = function () {\r\n this.clear();\r\n };\r\n OhlcFilterBase.prototype.onBaseDataChanged = function (args) {\r\n var changeType = args.changeType, name = args.name, index = args.index, count = args.count;\r\n switch (changeType) {\r\n case IDataSeries_1.EDataChangeType.Property:\r\n this.onOriginalPropertyChanged(name);\r\n return;\r\n case IDataSeries_1.EDataChangeType.Append:\r\n this.filterOnAppend(count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Clear:\r\n this.onClear();\r\n break;\r\n case IDataSeries_1.EDataChangeType.Insert:\r\n this.filterOnInsert(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Remove:\r\n this.filterOnRemove(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Update:\r\n this.filterOnUpdate(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return OhlcFilterBase;\r\n}(OhlcDataSeries_1.OhlcDataSeries));\r\nexports.OhlcFilterBase = OhlcFilterBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcScaleOffsetFilter = void 0;\r\nvar DataFilterType_1 = require(\"../../../types/DataFilterType\");\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar OhlcCustomFilter_1 = require(\"./OhlcCustomFilter\");\r\nvar OhlcScaleOffsetFilter = /** @class */ (function (_super) {\r\n __extends(OhlcScaleOffsetFilter, _super);\r\n function OhlcScaleOffsetFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.scaleProperty = 1;\r\n _this.offsetProperty = 0;\r\n if (originalSeries.type !== IDataSeries_1.EDataSeriesType.Ohlc) {\r\n throw new Error(\"OhlcScaleOffsetFilter only supports Ohlc original series\");\r\n }\r\n _this.scaleProperty = (_a = options === null || options === void 0 ? void 0 : options.scale) !== null && _a !== void 0 ? _a : _this.scaleProperty;\r\n _this.offsetProperty = (_b = options === null || options === void 0 ? void 0 : options.offset) !== null && _b !== void 0 ? _b : _this.offsetProperty;\r\n if (_this.getOriginalCount() > 0) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(OhlcScaleOffsetFilter.prototype, \"scale\", {\r\n get: function () {\r\n return this.scaleProperty;\r\n },\r\n set: function (value) {\r\n this.scaleProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcScaleOffsetFilter.prototype, \"offset\", {\r\n get: function () {\r\n return this.offsetProperty;\r\n },\r\n set: function (value) {\r\n this.offsetProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // @ts-ignore\r\n OhlcScaleOffsetFilter.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var original = this.originalSeries.toJSON(excludeData);\r\n return __assign(__assign({}, original), { filter: {\r\n type: DataFilterType_1.EDataFilterType.OhlcScaleOffset,\r\n options: { scale: this.scale, offset: this.offset }\r\n } });\r\n };\r\n OhlcScaleOffsetFilter.prototype.defaultFunction = function (index, y) {\r\n return y * this.scaleProperty + this.offsetProperty;\r\n };\r\n return OhlcScaleOffsetFilter;\r\n}(OhlcCustomFilter_1.OhlcCustomFilter));\r\nexports.OhlcScaleOffsetFilter = OhlcScaleOffsetFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyCustomFilter = void 0;\r\nvar XyFilterBase_1 = require(\"./XyFilterBase\");\r\n/**\r\n * An XyDataSeries where an arbitrary function is applied to each y value on the original series.\r\n * eg const filterAboveZero = new XyCustomFilter(originalSeries);\r\n * filterAboveZero.filterFunction = (index: number, y: number) => y > 0 ? y : NaN;\r\n * If you want to be able to refer to the original series, use a normal function, rather than an arrow function,\r\n * so that 'this' will refer to the filter.\r\n * eg const addPreviousFilter = new XyCustomFilter(originalSeries);\r\n * addPreviousFilter.filterFunction = function(index: number, y: number) {\r\n * const prev = this.getOriginalYValues().get(index);\r\n * return prev + y;\r\n * };\r\n */\r\nvar XyCustomFilter = /** @class */ (function (_super) {\r\n __extends(XyCustomFilter, _super);\r\n function XyCustomFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.filterFunctionProperty = (_a = options === null || options === void 0 ? void 0 : options.filterFunction) !== null && _a !== void 0 ? _a : _this.filterFunctionProperty;\r\n if (_this.getOriginalCount() > 0 && (options === null || options === void 0 ? void 0 : options.filterFunction)) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyCustomFilter.prototype, \"filterFunction\", {\r\n /** Gets or sets the filter function to be used by this filter */\r\n get: function () {\r\n return this.filterFunctionProperty;\r\n },\r\n /** Gets or sets the filter function to be used by this filter */\r\n set: function (ff) {\r\n this.filterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyCustomFilter.prototype.filterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n XyCustomFilter.prototype.filterOnAppend = function (count) {\r\n var _a = this.filter(this.count(), count), xValues = _a.xValues, yValues = _a.yValues, metadata = _a.metadata;\r\n this.appendRange(xValues, yValues, metadata);\r\n };\r\n XyCustomFilter.prototype.filterOnUpdate = function (index) {\r\n this.update(index, this.filterFunction(index, this.getOriginalYValues().get(index)), this.originalSeries.getMetadataAt(index));\r\n };\r\n XyCustomFilter.prototype.filterOnInsert = function (startIndex, count) {\r\n var _a = this.filter(startIndex, count), xValues = _a.xValues, yValues = _a.yValues, metadata = _a.metadata;\r\n this.insertRange(startIndex, xValues, yValues, metadata);\r\n };\r\n XyCustomFilter.prototype.filterOnRemove = function (startIndex, count) {\r\n this.removeRange(startIndex, count);\r\n };\r\n XyCustomFilter.prototype.filterAll = function () {\r\n this.clear();\r\n var _a = this.filter(0, this.getOriginalCount()), xValues = _a.xValues, yValues = _a.yValues, metadata = _a.metadata;\r\n this.appendRange(xValues, yValues, metadata);\r\n };\r\n XyCustomFilter.prototype.filter = function (startIndex, count) {\r\n var rawX = this.getOriginalXValues();\r\n var rawY = this.getOriginalYValues();\r\n var xValues = [];\r\n var yValues = [];\r\n var metadata = undefined;\r\n // leave metadata unset if if original series has no metadata\r\n if (this.originalSeries.hasMetadata) {\r\n metadata = [];\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n yValues.push(this.filterFunction(i, rawY.get(i)));\r\n metadata.push(this.originalSeries.getMetadataAt(i));\r\n }\r\n }\r\n else {\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n yValues.push(this.filterFunction(i, rawY.get(i)));\r\n }\r\n }\r\n return { xValues: xValues, yValues: yValues, metadata: metadata };\r\n };\r\n return XyCustomFilter;\r\n}(XyFilterBase_1.XyFilterBase));\r\nexports.XyCustomFilter = XyCustomFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.switchData = exports.XyFilterBase = exports.EDataSeriesField = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar XyDataSeries_1 = require(\"../XyDataSeries\");\r\nvar EDataSeriesField;\r\n(function (EDataSeriesField) {\r\n EDataSeriesField[\"X\"] = \"x\";\r\n EDataSeriesField[\"Open\"] = \"open\";\r\n EDataSeriesField[\"High\"] = \"high\";\r\n EDataSeriesField[\"Low\"] = \"low\";\r\n EDataSeriesField[\"Close\"] = \"close\";\r\n EDataSeriesField[\"Y\"] = \"y\";\r\n EDataSeriesField[\"Y1\"] = \"y1\";\r\n EDataSeriesField[\"Z\"] = \"z\";\r\n})(EDataSeriesField = exports.EDataSeriesField || (exports.EDataSeriesField = {}));\r\n/**\r\n * Base class for a filter that produces an {@link XyDataSeries}.\r\n * @remarks\r\n * The originalSeries can be any series type (other than heatmap).\r\n * Pass field in the options to determine which field will be returned by getOriginalYValues.\r\n *\r\n * To create a filter it is only necessary to implement filterAll, and onClear,\r\n * but if possible you should override filterOnAppend, filterOnUpdate, filterOnInsert and filterOnRemove\r\n */\r\nvar XyFilterBase = /** @class */ (function (_super) {\r\n __extends(XyFilterBase, _super);\r\n /**\r\n * Creates an instance of {@link XyFilterBase}\r\n * @param originalSeries the {@link BaseDataSeries} to be filtered\r\n * @param options the {@link IXyFilterOptions} which can be passed to configure the Filter at construct time\r\n */\r\n function XyFilterBase(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries.webAssemblyContext, options) || this;\r\n /**\r\n * The field that will be returned by getOriginalYValues.\r\n */\r\n _this.field = EDataSeriesField.Y;\r\n /**\r\n * The field that will be returned by getOriginalYValues.\r\n */\r\n _this.xField = EDataSeriesField.X;\r\n _this.originalSeriesProperty = originalSeries;\r\n _this.field = (_a = options === null || options === void 0 ? void 0 : options.field) !== null && _a !== void 0 ? _a : _this.field;\r\n _this.xField = (_b = options === null || options === void 0 ? void 0 : options.xField) !== null && _b !== void 0 ? _b : _this.xField;\r\n _this.onBaseDataChanged = _this.onBaseDataChanged.bind(_this);\r\n originalSeries.dataChanged.subscribe(_this.onBaseDataChanged);\r\n switch (_this.originalSeries.type) {\r\n case IDataSeries_1.EDataSeriesType.Xy:\r\n if (_this.xField === EDataSeriesField.Y) {\r\n _this.getOriginalXValues = function () { return _this.originalSeries.getNativeYValues(); };\r\n }\r\n if (_this.field === EDataSeriesField.X) {\r\n _this.getOriginalYValues = function () { return _this.originalSeries.getNativeXValues(); };\r\n }\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Ohlc:\r\n _this.getOriginalXValues = function () {\r\n return _this.getValuesFromOHLC(_this.xField, _this.originalSeries);\r\n };\r\n _this.getOriginalYValues = function () {\r\n return _this.getValuesFromOHLC(_this.field, _this.originalSeries);\r\n };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xyy:\r\n _this.getOriginalXValues = function () {\r\n return _this.getValuesFromXyy(_this.xField, _this.originalSeries);\r\n };\r\n _this.getOriginalYValues = function () { return _this.getValuesFromXyy(_this.field, _this.originalSeries); };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xyz:\r\n _this.getOriginalXValues = function () {\r\n return _this.getValuesFromXyz(_this.xField, _this.originalSeries);\r\n };\r\n _this.getOriginalYValues = function () { return _this.getValuesFromXyz(_this.field, _this.originalSeries); };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Hlc:\r\n _this.getOriginalXValues = function () {\r\n return _this.getValuesFromHlc(_this.xField, _this.originalSeries);\r\n };\r\n _this.getOriginalYValues = function () { return _this.getValuesFromHlc(_this.field, _this.originalSeries); };\r\n break;\r\n default:\r\n break;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyFilterBase.prototype, \"originalSeries\", {\r\n get: function () {\r\n return this.originalSeriesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyFilterBase.prototype.detachFromOriginalSeries = function () {\r\n this.originalSeries.dataChanged.unsubscribe(this.onBaseDataChanged);\r\n this.originalSeriesProperty = undefined;\r\n };\r\n XyFilterBase.prototype.delete = function () {\r\n this.originalSeriesProperty = (0, Deleter_1.deleteSafe)(this.originalSeries);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * Get the X values of the original series\r\n */\r\n XyFilterBase.prototype.getOriginalXValues = function () {\r\n return this.originalSeries.getNativeXValues();\r\n };\r\n /**\r\n * Get the Y values of the original series, according to the field set.\r\n */\r\n XyFilterBase.prototype.getOriginalYValues = function () {\r\n return this.originalSeries.getNativeYValues();\r\n };\r\n /**\r\n * Get the length of the original series.\r\n */\r\n XyFilterBase.prototype.getOriginalCount = function () {\r\n return this.originalSeries.count();\r\n };\r\n /**\r\n * Callback when a property on the original series is changed.\r\n * @param name The name of the property that changed\r\n */\r\n XyFilterBase.prototype.onOriginalPropertyChanged = function (name) { };\r\n /**\r\n * Called when data is appended to the original series\r\n * @param count The number of points appended\r\n */\r\n XyFilterBase.prototype.filterOnAppend = function (count) {\r\n this.filterAll();\r\n };\r\n /**\r\n * Called when a point on the original series is updated\r\n * @param index The index of the updated point.\r\n */\r\n XyFilterBase.prototype.filterOnUpdate = function (index) {\r\n this.filterAll();\r\n };\r\n /**\r\n * Called when data is inserted to the original series\r\n * @param startIndex The first index where data is inserted\r\n * @param count The number of points inserted\r\n */\r\n XyFilterBase.prototype.filterOnInsert = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n /**\r\n * Called when data is removed form the original series\r\n * @param startIndex The first index where data is removed\r\n * @param count The number of points removed\r\n */\r\n XyFilterBase.prototype.filterOnRemove = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n /**\r\n * Called when the original series is cleared.\r\n */\r\n XyFilterBase.prototype.onClear = function () {\r\n this.clear();\r\n };\r\n XyFilterBase.prototype.onBaseDataChanged = function (args) {\r\n var changeType = args.changeType, name = args.name, index = args.index, count = args.count;\r\n switch (changeType) {\r\n case IDataSeries_1.EDataChangeType.Property:\r\n this.onOriginalPropertyChanged(name);\r\n return;\r\n case IDataSeries_1.EDataChangeType.Append:\r\n this.filterOnAppend(count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Clear:\r\n this.onClear();\r\n break;\r\n case IDataSeries_1.EDataChangeType.Insert:\r\n this.filterOnInsert(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Remove:\r\n this.filterOnRemove(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Update:\r\n this.filterOnUpdate(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n XyFilterBase.prototype.getValuesFromOHLC = function (field, ohlcSeries) {\r\n return (0, exports.switchData)(field, ohlcSeries.getNativeXValues(), ohlcSeries.getNativeYValues(), ohlcSeries.getNativeOpenValues(), ohlcSeries.getNativeHighValues(), ohlcSeries.getNativeLowValues());\r\n };\r\n XyFilterBase.prototype.getValuesFromXyy = function (field, xyySeries) {\r\n return (0, exports.switchData)(field, xyySeries.getNativeXValues(), xyySeries.getNativeYValues(), xyySeries.getNativeY1Values());\r\n };\r\n XyFilterBase.prototype.getValuesFromXyz = function (field, xyzSeries) {\r\n return (0, exports.switchData)(field, xyzSeries.getNativeXValues(), xyzSeries.getNativeYValues(), xyzSeries.getNativeZValues());\r\n };\r\n XyFilterBase.prototype.getValuesFromHlc = function (field, hlcSeries) {\r\n return (0, exports.switchData)(field, hlcSeries.getNativeXValues(), hlcSeries.getNativeYValues(), undefined, hlcSeries.getNativeHighValues(), hlcSeries.getNativeLowValues());\r\n };\r\n return XyFilterBase;\r\n}(XyDataSeries_1.XyDataSeries));\r\nexports.XyFilterBase = XyFilterBase;\r\nvar switchData = function (field, x, closey, openy1z, high, low) {\r\n var data;\r\n switch (field) {\r\n case EDataSeriesField.X:\r\n data = x;\r\n break;\r\n case EDataSeriesField.Close:\r\n case EDataSeriesField.Y:\r\n data = closey;\r\n break;\r\n case EDataSeriesField.Open:\r\n case EDataSeriesField.Y1:\r\n case EDataSeriesField.Z:\r\n data = openy1z;\r\n break;\r\n case EDataSeriesField.High:\r\n data = high;\r\n break;\r\n case EDataSeriesField.Low:\r\n data = low;\r\n break;\r\n }\r\n if (!data) {\r\n throw new Error(\"\".concat(field, \" does not exist\"));\r\n }\r\n return data;\r\n};\r\nexports.switchData = switchData;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyLinearTrendFilter = void 0;\r\nvar DataFilterType_1 = require(\"../../../types/DataFilterType\");\r\nvar XyFilterBase_1 = require(\"./XyFilterBase\");\r\n/**\r\n * An XyDataSeries that represents the linear trendline (or linear regression) of the original series\r\n */\r\nvar XyLinearTrendFilter = /** @class */ (function (_super) {\r\n __extends(XyLinearTrendFilter, _super);\r\n function XyLinearTrendFilter(originalSeries, options) {\r\n var _this = _super.call(this, originalSeries, options) || this;\r\n if (_this.getOriginalCount() > 0) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyLinearTrendFilter.prototype, \"slope\", {\r\n /**\r\n * Gets the slope of the trendline\r\n */\r\n get: function () {\r\n return this.slopeProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyLinearTrendFilter.prototype, \"intercept\", {\r\n /**\r\n * Gets the y-intercept of the trendline\r\n */\r\n get: function () {\r\n return this.interceptProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyLinearTrendFilter.prototype, \"correlation\", {\r\n /**\r\n * Gets the correlation coefficient of the trendline\r\n */\r\n get: function () {\r\n return this.correlationProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // @ts-ignore\r\n XyLinearTrendFilter.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var original = _super.prototype.toJSON.call(this, excludeData);\r\n return __assign(__assign({}, original), { filter: {\r\n type: DataFilterType_1.EDataFilterType.XyLinearTrend,\r\n options: { field: this.field, slope: this.slope, intercept: this.intercept }\r\n } });\r\n };\r\n XyLinearTrendFilter.prototype.filterAll = function () {\r\n var sumByIndex = 0;\r\n var sumX = 0;\r\n var sumY = 0;\r\n var sumPowX = 0;\r\n var sumPowY = 0;\r\n var rawX = this.getOriginalXValues();\r\n var rawY = this.getOriginalYValues();\r\n var originalCount = this.getOriginalCount();\r\n for (var i = 0; i < this.getOriginalCount(); i++) {\r\n var dblY = rawY.get(i);\r\n var dblX = rawX.get(i);\r\n sumByIndex += dblX * dblY;\r\n sumX += dblX;\r\n sumY += dblY;\r\n sumPowX += Math.pow(dblX, 2);\r\n sumPowY += Math.pow(dblY, 2);\r\n }\r\n var a = sumByIndex * originalCount;\r\n var b = sumX * sumY;\r\n var c = sumPowX * originalCount;\r\n var d = Math.pow(sumX, 2);\r\n this.correlationProperty = (a - b) / Math.sqrt((c - d) * (sumPowY * originalCount - Math.pow(sumY, 2)));\r\n this.slopeProperty = (a - b) / (c - d); // y = mx + c, m is a slope, c is an intercept\r\n var f = this.slopeProperty * sumX;\r\n this.interceptProperty = (sumY - f) / originalCount; // y = mx + c, m is a slope, c is an intercept\r\n var yValues = [];\r\n var xValues = [];\r\n for (var i = 0; i < originalCount; i++) {\r\n var x = rawX.get(i);\r\n xValues.push(x);\r\n yValues.push(x * this.slopeProperty + this.interceptProperty);\r\n }\r\n this.clear();\r\n this.appendRange(xValues, yValues);\r\n };\r\n return XyLinearTrendFilter;\r\n}(XyFilterBase_1.XyFilterBase));\r\nexports.XyLinearTrendFilter = XyLinearTrendFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyMovingAverageFilter = void 0;\r\nvar DataFilterType_1 = require(\"../../../types/DataFilterType\");\r\nvar XyFilterBase_1 = require(\"./XyFilterBase\");\r\n/**\r\n * An XyDataSeries that is the moving average of the original series\r\n */\r\nvar XyMovingAverageFilter = /** @class */ (function (_super) {\r\n __extends(XyMovingAverageFilter, _super);\r\n function XyMovingAverageFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.lengthProperty = 30;\r\n // Buffer to store the data for the latest average\r\n _this.buffer = [];\r\n // pointer to the latest position in the buffer\r\n _this.pointer = -1;\r\n _this.bufferTotal = 0;\r\n _this.lengthProperty = (_a = options === null || options === void 0 ? void 0 : options.length) !== null && _a !== void 0 ? _a : _this.lengthProperty;\r\n if (!originalSeries.dataDistributionCalculator.isSortedAscending) {\r\n throw new Error(\"XyMovingAverageFilter requires original data to be sorted in X\");\r\n }\r\n if (_this.getOriginalCount() > 0) {\r\n _this.calculate(0);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyMovingAverageFilter.prototype, \"length\", {\r\n /**\r\n * Gets or Sets the length of the moving average\r\n */\r\n get: function () {\r\n return this.lengthProperty;\r\n },\r\n /**\r\n * Gets or Sets the length of the moving average\r\n */\r\n set: function (value) {\r\n this.lengthProperty = value;\r\n this.calculate(0);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // @ts-ignore\r\n XyMovingAverageFilter.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var original = this.originalSeries.toJSON(excludeData);\r\n return __assign(__assign({}, original), { filter: {\r\n type: DataFilterType_1.EDataFilterType.XyMovingAverage,\r\n options: { field: this.field, length: this.length }\r\n } });\r\n };\r\n XyMovingAverageFilter.prototype.onOriginalPropertyChanged = function (name) { };\r\n XyMovingAverageFilter.prototype.filterOnAppend = function (count) {\r\n this.calculate(this.count());\r\n };\r\n XyMovingAverageFilter.prototype.filterOnUpdate = function (index) {\r\n var y = this.getOriginalYValues().get(index) || 0;\r\n this.calculateUpdate(index, y);\r\n };\r\n XyMovingAverageFilter.prototype.filterOnInsert = function (startIndex, count) {\r\n this.calculate(startIndex);\r\n };\r\n XyMovingAverageFilter.prototype.filterOnRemove = function (startIndex, count) {\r\n this.calculate(startIndex);\r\n };\r\n XyMovingAverageFilter.prototype.filterAll = function () {\r\n this.calculate(0);\r\n };\r\n XyMovingAverageFilter.prototype.calculateUpdate = function (index, y) {\r\n if (index < this.count() - 1) {\r\n this.calculate(index);\r\n }\r\n else {\r\n // Just update latest\r\n var oldY = this.buffer[this.pointer];\r\n this.bufferTotal = this.bufferTotal - oldY + y;\r\n this.buffer[this.pointer] = y;\r\n this.update(index, this.bufferTotal / this.length);\r\n }\r\n };\r\n XyMovingAverageFilter.prototype.calculate = function (start) {\r\n var originalStart = start;\r\n if (start < this.count()) {\r\n if (start === 0) {\r\n this.clear();\r\n }\r\n else {\r\n this.removeRange(start, this.count() - start);\r\n }\r\n start = Math.max(0, start - this.length + 1);\r\n this.buffer = [];\r\n this.pointer = -1;\r\n this.bufferTotal = 0;\r\n }\r\n var rawX = this.getOriginalXValues();\r\n var rawY = this.getOriginalYValues();\r\n var length = Math.min(this.length, this.getOriginalCount());\r\n for (var i = start; i < this.getOriginalCount(); i++) {\r\n var x = rawX.get(i) || 0;\r\n var y = rawY.get(i) || 0;\r\n this.pointer = (this.pointer + 1) % this.length;\r\n var oldY = this.buffer[this.pointer];\r\n this.buffer[this.pointer] = y;\r\n this.bufferTotal = this.bufferTotal + y - (oldY !== null && oldY !== void 0 ? oldY : 0);\r\n if (this.buffer.length === this.length) {\r\n this.append(x, this.bufferTotal / this.length);\r\n }\r\n else if (originalStart < this.length) {\r\n this.append(x, NaN);\r\n }\r\n }\r\n };\r\n return XyMovingAverageFilter;\r\n}(XyFilterBase_1.XyFilterBase));\r\nexports.XyMovingAverageFilter = XyMovingAverageFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyRatioFilter = void 0;\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar DataFilterType_1 = require(\"../../../types/DataFilterType\");\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar XyFilterBase_1 = require(\"./XyFilterBase\");\r\n/**\r\n * An XyDataSeries where each point is the ratio of the original series and the given divisorSeries\r\n */\r\nvar XyRatioFilter = /** @class */ (function (_super) {\r\n __extends(XyRatioFilter, _super);\r\n function XyRatioFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.divisorField = XyFilterBase_1.EDataSeriesField.Y;\r\n Guard_1.Guard.notNull(options.divisorSeries, \"divisorSeries\");\r\n _this.divisorSeries = options.divisorSeries;\r\n _this.divisorField = (_a = options.divisorField) !== null && _a !== void 0 ? _a : _this.divisorField;\r\n _this.onDivisorDataChanged = _this.onDivisorDataChanged.bind(_this);\r\n _this.divisorSeries.dataChanged.subscribe(_this.onDivisorDataChanged);\r\n if (_this.getOriginalCount() > 0) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n // @ts-ignore\r\n XyRatioFilter.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var original = this.originalSeries.toJSON(excludeData);\r\n var divisorValues = [];\r\n var divisorRaw = this.getDivisorYValues();\r\n for (var i = 0; i < this.divisorSeries.count(); i++) {\r\n divisorValues.push(divisorRaw.get(i));\r\n }\r\n return __assign(__assign({}, original), { filter: {\r\n type: DataFilterType_1.EDataFilterType.XyRatio,\r\n options: { field: this.field, divisorSeries: divisorValues }\r\n } });\r\n };\r\n XyRatioFilter.prototype.filterOnAppend = function (count) {\r\n // Don't filter unless both series are the same length.\r\n if (this.getOriginalCount() !== this.divisorSeries.count()) {\r\n return;\r\n }\r\n var _a = this.filter(this.count(), count), xValues = _a.xValues, yValues = _a.yValues;\r\n this.appendRange(xValues, yValues);\r\n };\r\n XyRatioFilter.prototype.filterOnUpdate = function (index) {\r\n this.update(index, this.getOriginalYValues().get(index) / this.getDivisorYValues().get(index));\r\n };\r\n XyRatioFilter.prototype.filterOnInsert = function (startIndex, count) {\r\n if (this.getOriginalCount() !== this.divisorSeries.count()) {\r\n return;\r\n }\r\n var _a = this.filter(startIndex, count), xValues = _a.xValues, yValues = _a.yValues;\r\n this.insertRange(startIndex, xValues, yValues);\r\n };\r\n XyRatioFilter.prototype.filterOnRemove = function (startIndex, count) {\r\n if (this.getOriginalCount() !== this.divisorSeries.count()) {\r\n return;\r\n }\r\n this.removeRange(startIndex, count);\r\n };\r\n XyRatioFilter.prototype.filterAll = function () {\r\n if (this.getOriginalCount() !== this.divisorSeries.count()) {\r\n return;\r\n }\r\n this.clear();\r\n var _a = this.filter(0, this.getOriginalCount()), xValues = _a.xValues, yValues = _a.yValues;\r\n this.appendRange(xValues, yValues);\r\n };\r\n XyRatioFilter.prototype.filter = function (startIndex, count) {\r\n var rawX = this.getOriginalXValues();\r\n var rawY = this.getOriginalYValues();\r\n var xValues = [];\r\n var yValues = [];\r\n // TODO check if metadata is needed here\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n yValues.push(rawY.get(i) / this.getDivisorYValues().get(i));\r\n }\r\n return { xValues: xValues, yValues: yValues };\r\n };\r\n XyRatioFilter.prototype.getDivisorYValues = function () {\r\n var divY = this.divisorSeries.getNativeYValues();\r\n if (this.divisorSeries.type === IDataSeries_1.EDataSeriesType.Xyy) {\r\n var xyySeries = this.divisorSeries;\r\n divY = (0, XyFilterBase_1.switchData)(this.divisorField, xyySeries.getNativeYValues(), xyySeries.getNativeY1Values());\r\n }\r\n else if (this.divisorSeries.type === IDataSeries_1.EDataSeriesType.Xyz) {\r\n var xyzSeries = this.divisorSeries;\r\n divY = (0, XyFilterBase_1.switchData)(this.field, xyzSeries.getNativeYValues(), xyzSeries.getNativeZValues());\r\n }\r\n else if (this.divisorSeries.type === IDataSeries_1.EDataSeriesType.Ohlc) {\r\n var ohlcSeries = this.divisorSeries;\r\n divY = (0, XyFilterBase_1.switchData)(this.field, ohlcSeries.getNativeYValues(), ohlcSeries.getNativeOpenValues(), ohlcSeries.getNativeHighValues(), ohlcSeries.getNativeLowValues());\r\n }\r\n return divY;\r\n };\r\n XyRatioFilter.prototype.onDivisorDataChanged = function (args) {\r\n var changeType = args.changeType, name = args.name, index = args.index, count = args.count;\r\n switch (changeType) {\r\n case IDataSeries_1.EDataChangeType.Append:\r\n this.filterOnAppend(count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Clear:\r\n this.onClear();\r\n break;\r\n case IDataSeries_1.EDataChangeType.Insert:\r\n this.filterOnInsert(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Remove:\r\n this.filterOnRemove(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Update:\r\n this.filterOnUpdate(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return XyRatioFilter;\r\n}(XyFilterBase_1.XyFilterBase));\r\nexports.XyRatioFilter = XyRatioFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyScaleOffsetFilter = void 0;\r\nvar DataFilterType_1 = require(\"../../../types/DataFilterType\");\r\nvar XyCustomFilter_1 = require(\"./XyCustomFilter\");\r\n/**\r\n * An XyDataSeries that is the result of applying a linear transformation (scale and offset)\r\n * to the y values of the original series\r\n */\r\nvar XyScaleOffsetFilter = /** @class */ (function (_super) {\r\n __extends(XyScaleOffsetFilter, _super);\r\n function XyScaleOffsetFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.scaleProperty = 1;\r\n _this.offsetProperty = 0;\r\n _this.scaleProperty = (_a = options === null || options === void 0 ? void 0 : options.scale) !== null && _a !== void 0 ? _a : _this.scaleProperty;\r\n _this.offsetProperty = (_b = options === null || options === void 0 ? void 0 : options.offset) !== null && _b !== void 0 ? _b : _this.offsetProperty;\r\n if (_this.getOriginalCount() > 0) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyScaleOffsetFilter.prototype, \"scale\", {\r\n /** Gets or sets the scale for the transformation */\r\n get: function () {\r\n return this.scaleProperty;\r\n },\r\n /** Gets or sets the scale for the transformation */\r\n set: function (value) {\r\n this.scaleProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyScaleOffsetFilter.prototype, \"offset\", {\r\n /** Gets or sets the offset for the transformation */\r\n get: function () {\r\n return this.offsetProperty;\r\n },\r\n /** Gets or sets the offset for the transformation */\r\n set: function (value) {\r\n this.offsetProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // @ts-ignore\r\n XyScaleOffsetFilter.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var original = this.originalSeries.toJSON(excludeData);\r\n return __assign(__assign({}, original), { filter: {\r\n type: DataFilterType_1.EDataFilterType.XyScaleOffset,\r\n options: { field: this.field, scale: this.scale, offset: this.offset }\r\n } });\r\n };\r\n XyScaleOffsetFilter.prototype.filterFunctionProperty = function (index, y) {\r\n return y * this.scaleProperty + this.offsetProperty;\r\n };\r\n return XyScaleOffsetFilter;\r\n}(XyCustomFilter_1.XyCustomFilter));\r\nexports.XyScaleOffsetFilter = XyScaleOffsetFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyyCustomFilter = void 0;\r\nvar XyyFilterBase_1 = require(\"./XyyFilterBase\");\r\nvar XyyCustomFilter = /** @class */ (function (_super) {\r\n __extends(XyyCustomFilter, _super);\r\n function XyyCustomFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.filterFunctionProperty = (_a = options === null || options === void 0 ? void 0 : options.filterFunction) !== null && _a !== void 0 ? _a : _this.filterFunctionProperty;\r\n _this.y1filterFunctionProperty = (_b = options === null || options === void 0 ? void 0 : options.y1filterFunction) !== null && _b !== void 0 ? _b : _this.filterFunctionProperty;\r\n if (_this.getOriginalCount() > 0 && ((options === null || options === void 0 ? void 0 : options.filterFunction) || (options === null || options === void 0 ? void 0 : options.y1filterFunction))) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyyCustomFilter.prototype, \"filterFunction\", {\r\n get: function () {\r\n return this.filterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.filterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyyCustomFilter.prototype.filterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n Object.defineProperty(XyyCustomFilter.prototype, \"y1filterFunction\", {\r\n get: function () {\r\n return this.y1filterFunctionProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyyCustomFilter.prototype, \"y1yfilterFunction\", {\r\n set: function (ff) {\r\n this.y1filterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyyCustomFilter.prototype.y1filterFunctionProperty = function (index, y1) {\r\n return y1;\r\n };\r\n XyyCustomFilter.prototype.filterOnAppend = function (count) {\r\n var _a = this.filter(this.count(), count), xValues = _a.xValues, yValues = _a.yValues, y1Values = _a.y1Values, metadata = _a.metadata;\r\n this.appendRange(xValues, yValues, y1Values, metadata);\r\n };\r\n XyyCustomFilter.prototype.filterOnUpdate = function (index) {\r\n this.update(index, this.filterFunction(index, this.getOriginalYValues().get(index)), this.y1filterFunction(index, this.getOriginalY1Values().get(index)), this.originalSeries.getMetadataAt(index));\r\n };\r\n XyyCustomFilter.prototype.filterOnInsert = function (startIndex, count) {\r\n var _a = this.filter(startIndex, count), xValues = _a.xValues, yValues = _a.yValues, y1Values = _a.y1Values, metadata = _a.metadata;\r\n this.insertRange(startIndex, xValues, yValues, y1Values, metadata);\r\n };\r\n XyyCustomFilter.prototype.filterOnRemove = function (startIndex, count) {\r\n this.removeRange(startIndex, count);\r\n };\r\n XyyCustomFilter.prototype.filterAll = function () {\r\n this.clear();\r\n var _a = this.filter(0, this.getOriginalCount()), xValues = _a.xValues, yValues = _a.yValues, y1Values = _a.y1Values, metadata = _a.metadata;\r\n this.appendRange(xValues, yValues, y1Values, metadata);\r\n };\r\n XyyCustomFilter.prototype.filter = function (startIndex, count) {\r\n var rawX = this.getOriginalXValues();\r\n var rawY = this.getOriginalYValues();\r\n var rawY1 = this.getOriginalY1Values();\r\n var xValues = [];\r\n var yValues = [];\r\n var y1Values = [];\r\n var metadata = undefined;\r\n // leave metadata unset if if original series has no metadata\r\n if (this.originalSeries.hasMetadata) {\r\n metadata = [];\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n yValues.push(this.filterFunction(i, rawY.get(i)));\r\n y1Values.push(this.y1filterFunction(i, rawY1.get(i)));\r\n metadata.push(this.originalSeries.getMetadataAt(i));\r\n }\r\n }\r\n else {\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n yValues.push(this.filterFunction(i, rawY.get(i)));\r\n y1Values.push(this.y1filterFunction(i, rawY1.get(i)));\r\n }\r\n }\r\n return { xValues: xValues, yValues: yValues, y1Values: y1Values, metadata: metadata };\r\n };\r\n return XyyCustomFilter;\r\n}(XyyFilterBase_1.XyyFilterBase));\r\nexports.XyyCustomFilter = XyyCustomFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyyFilterBase = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar XyyDataSeries_1 = require(\"../XyyDataSeries\");\r\nvar XyFilterBase_1 = require(\"./XyFilterBase\");\r\nvar XyyFilterBase = /** @class */ (function (_super) {\r\n __extends(XyyFilterBase, _super);\r\n function XyyFilterBase(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries.webAssemblyContext, options) || this;\r\n _this.yfield = XyFilterBase_1.EDataSeriesField.Y;\r\n _this.y1field = XyFilterBase_1.EDataSeriesField.Y1;\r\n _this.originalSeriesProperty = originalSeries;\r\n _this.yfield = (_a = options === null || options === void 0 ? void 0 : options.yfield) !== null && _a !== void 0 ? _a : _this.yfield;\r\n _this.yfield = (_b = options === null || options === void 0 ? void 0 : options.yfield) !== null && _b !== void 0 ? _b : _this.yfield;\r\n _this.onBaseDataChanged = _this.onBaseDataChanged.bind(_this);\r\n originalSeries.dataChanged.subscribe(_this.onBaseDataChanged);\r\n switch (_this.originalSeries.type) {\r\n case IDataSeries_1.EDataSeriesType.Ohlc:\r\n var ohlcSeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.yfield, ohlcSeries_1.getNativeYValues(), ohlcSeries_1.getNativeOpenValues(), ohlcSeries_1.getNativeHighValues(), ohlcSeries_1.getNativeLowValues());\r\n };\r\n _this.getOriginalY1Values = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.y1field, ohlcSeries_1.getNativeYValues(), ohlcSeries_1.getNativeOpenValues(), ohlcSeries_1.getNativeHighValues(), ohlcSeries_1.getNativeLowValues());\r\n };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xy:\r\n var xySeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () { return xySeries_1.getNativeYValues(); };\r\n _this.getOriginalY1Values = function () { return xySeries_1.getNativeYValues(); };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xyz:\r\n var xyzSeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.yfield, xyzSeries_1.getNativeYValues(), xyzSeries_1.getNativeZValues());\r\n };\r\n _this.getOriginalY1Values = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.y1field, xyzSeries_1.getNativeYValues(), xyzSeries_1.getNativeZValues());\r\n };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Hlc:\r\n var hlcSeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.yfield, hlcSeries_1.getNativeYValues(), undefined, hlcSeries_1.getNativeHighValues(), hlcSeries_1.getNativeLowValues());\r\n };\r\n _this.getOriginalY1Values = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.y1field, hlcSeries_1.getNativeYValues(), undefined, hlcSeries_1.getNativeHighValues(), hlcSeries_1.getNativeLowValues());\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyyFilterBase.prototype, \"originalSeries\", {\r\n get: function () {\r\n return this.originalSeriesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyyFilterBase.prototype.detachFromOriginalSeries = function () {\r\n this.originalSeries.dataChanged.unsubscribe(this.onBaseDataChanged);\r\n this.originalSeriesProperty = undefined;\r\n };\r\n XyyFilterBase.prototype.delete = function () {\r\n this.originalSeriesProperty = (0, Deleter_1.deleteSafe)(this.originalSeries);\r\n _super.prototype.delete.call(this);\r\n };\r\n XyyFilterBase.prototype.getOriginalXValues = function () {\r\n return this.originalSeries.getNativeXValues();\r\n };\r\n XyyFilterBase.prototype.getOriginalYValues = function () {\r\n return this.originalSeries.getNativeYValues();\r\n };\r\n XyyFilterBase.prototype.getOriginalY1Values = function () {\r\n return this.originalSeries.getNativeY1Values();\r\n };\r\n XyyFilterBase.prototype.getOriginalCount = function () {\r\n return this.originalSeries.count();\r\n };\r\n XyyFilterBase.prototype.onOriginalPropertyChanged = function (name) { };\r\n XyyFilterBase.prototype.filterOnAppend = function (count) {\r\n this.filterAll();\r\n };\r\n XyyFilterBase.prototype.filterOnUpdate = function (index) {\r\n this.filterAll();\r\n };\r\n XyyFilterBase.prototype.filterOnInsert = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n XyyFilterBase.prototype.filterOnRemove = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n XyyFilterBase.prototype.onClear = function () {\r\n this.clear();\r\n };\r\n XyyFilterBase.prototype.onBaseDataChanged = function (args) {\r\n var changeType = args.changeType, name = args.name, index = args.index, count = args.count;\r\n switch (changeType) {\r\n case IDataSeries_1.EDataChangeType.Property:\r\n this.onOriginalPropertyChanged(name);\r\n return;\r\n case IDataSeries_1.EDataChangeType.Append:\r\n this.filterOnAppend(count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Clear:\r\n this.onClear();\r\n break;\r\n case IDataSeries_1.EDataChangeType.Insert:\r\n this.filterOnInsert(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Remove:\r\n this.filterOnRemove(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Update:\r\n this.filterOnUpdate(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return XyyFilterBase;\r\n}(XyyDataSeries_1.XyyDataSeries));\r\nexports.XyyFilterBase = XyyFilterBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyyScaleOffsetFilter = void 0;\r\nvar DataFilterType_1 = require(\"../../../types/DataFilterType\");\r\nvar XyyCustomFilter_1 = require(\"./XyyCustomFilter\");\r\nvar XyyScaleOffsetFilter = /** @class */ (function (_super) {\r\n __extends(XyyScaleOffsetFilter, _super);\r\n function XyyScaleOffsetFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.scaleProperty = 1;\r\n _this.offsetProperty = 0;\r\n _this.scaleProperty = (_a = options === null || options === void 0 ? void 0 : options.scale) !== null && _a !== void 0 ? _a : _this.scaleProperty;\r\n _this.offsetProperty = (_b = options === null || options === void 0 ? void 0 : options.offset) !== null && _b !== void 0 ? _b : _this.offsetProperty;\r\n if (_this.getOriginalCount() > 0) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyyScaleOffsetFilter.prototype, \"scale\", {\r\n get: function () {\r\n return this.scaleProperty;\r\n },\r\n set: function (value) {\r\n this.scaleProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyyScaleOffsetFilter.prototype, \"offset\", {\r\n get: function () {\r\n return this.offsetProperty;\r\n },\r\n set: function (value) {\r\n this.offsetProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // @ts-ignore\r\n XyyScaleOffsetFilter.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var original = this.originalSeries.toJSON(excludeData);\r\n return __assign(__assign({}, original), { filter: {\r\n type: DataFilterType_1.EDataFilterType.XyyScaleOffset,\r\n options: { yfield: this.yfield, y1field: this.y1field, scale: this.scale, offset: this.offset }\r\n } });\r\n };\r\n XyyScaleOffsetFilter.prototype.filterFunctionProperty = function (index, y) {\r\n return y * this.scaleProperty + this.offsetProperty;\r\n };\r\n return XyyScaleOffsetFilter;\r\n}(XyyCustomFilter_1.XyyCustomFilter));\r\nexports.XyyScaleOffsetFilter = XyyScaleOffsetFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyzCustomFilter = void 0;\r\nvar XyzFilterBase_1 = require(\"./XyzFilterBase\");\r\nvar XyzCustomFilter = /** @class */ (function (_super) {\r\n __extends(XyzCustomFilter, _super);\r\n function XyzCustomFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.filterFunctionProperty = (_a = options === null || options === void 0 ? void 0 : options.filterFunction) !== null && _a !== void 0 ? _a : _this.filterFunctionProperty;\r\n _this.zfilterFunctionProperty = (_b = options === null || options === void 0 ? void 0 : options.zfilterFunction) !== null && _b !== void 0 ? _b : _this.filterFunctionProperty;\r\n if (_this.getOriginalCount() > 0 && ((options === null || options === void 0 ? void 0 : options.filterFunction) || (options === null || options === void 0 ? void 0 : options.zfilterFunction))) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyzCustomFilter.prototype, \"filterFunction\", {\r\n get: function () {\r\n return this.filterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.filterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyzCustomFilter.prototype.filterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n Object.defineProperty(XyzCustomFilter.prototype, \"zfilterFunction\", {\r\n get: function () {\r\n return this.zfilterFunctionProperty;\r\n },\r\n set: function (ff) {\r\n this.zfilterFunctionProperty = ff;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyzCustomFilter.prototype.zfilterFunctionProperty = function (index, y) {\r\n return y;\r\n };\r\n XyzCustomFilter.prototype.filterOnAppend = function (count) {\r\n var _a = this.filter(this.count(), count), xValues = _a.xValues, yValues = _a.yValues, zValues = _a.zValues, metadata = _a.metadata;\r\n this.appendRange(xValues, yValues, zValues, metadata);\r\n };\r\n XyzCustomFilter.prototype.filterOnUpdate = function (index) {\r\n this.update(index, this.filterFunction(index, this.getOriginalYValues().get(index)), this.zfilterFunction(index, this.getOriginalZValues().get(index)), this.originalSeries.getMetadataAt(index));\r\n };\r\n XyzCustomFilter.prototype.filterOnInsert = function (startIndex, count) {\r\n var _a = this.filter(startIndex, count), xValues = _a.xValues, yValues = _a.yValues, zValues = _a.zValues, metadata = _a.metadata;\r\n this.insertRange(startIndex, xValues, yValues, zValues, metadata);\r\n };\r\n XyzCustomFilter.prototype.filterOnRemove = function (startIndex, count) {\r\n this.removeRange(startIndex, count);\r\n };\r\n XyzCustomFilter.prototype.filterAll = function () {\r\n this.clear();\r\n var _a = this.filter(0, this.getOriginalCount()), xValues = _a.xValues, yValues = _a.yValues, zValues = _a.zValues, metadata = _a.metadata;\r\n this.appendRange(xValues, yValues, zValues, metadata);\r\n };\r\n XyzCustomFilter.prototype.filter = function (startIndex, count) {\r\n var rawX = this.getOriginalXValues();\r\n var rawY = this.getOriginalYValues();\r\n var rawZ = this.getOriginalZValues();\r\n var xValues = [];\r\n var yValues = [];\r\n var zValues = [];\r\n var metadata = undefined;\r\n // leave metadata unset if if original series has no metadata\r\n if (this.originalSeries.hasMetadata) {\r\n metadata = [];\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n yValues.push(this.filterFunction(i, rawY.get(i)));\r\n zValues.push(this.zfilterFunction(i, rawZ.get(i)));\r\n metadata.push(this.originalSeries.getMetadataAt(i));\r\n }\r\n }\r\n else {\r\n for (var i = startIndex; i < startIndex + count; i++) {\r\n xValues.push(rawX.get(i));\r\n yValues.push(this.filterFunction(i, rawY.get(i)));\r\n zValues.push(this.zfilterFunction(i, rawZ.get(i)));\r\n }\r\n }\r\n return { xValues: xValues, yValues: yValues, zValues: zValues, metadata: metadata };\r\n };\r\n return XyzCustomFilter;\r\n}(XyzFilterBase_1.XyzFilterBase));\r\nexports.XyzCustomFilter = XyzCustomFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyzFilterBase = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar IDataSeries_1 = require(\"../IDataSeries\");\r\nvar XyzDataSeries_1 = require(\"../XyzDataSeries\");\r\nvar XyFilterBase_1 = require(\"./XyFilterBase\");\r\nvar XyzFilterBase = /** @class */ (function (_super) {\r\n __extends(XyzFilterBase, _super);\r\n function XyzFilterBase(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries.webAssemblyContext, options) || this;\r\n _this.yfield = XyFilterBase_1.EDataSeriesField.Y;\r\n _this.zfield = XyFilterBase_1.EDataSeriesField.Z;\r\n _this.originalSeriesProperty = originalSeries;\r\n _this.yfield = (_a = options === null || options === void 0 ? void 0 : options.yfield) !== null && _a !== void 0 ? _a : _this.yfield;\r\n _this.zfield = (_b = options === null || options === void 0 ? void 0 : options.zfield) !== null && _b !== void 0 ? _b : _this.zfield;\r\n _this.onBaseDataChanged = _this.onBaseDataChanged.bind(_this);\r\n originalSeries.dataChanged.subscribe(_this.onBaseDataChanged);\r\n switch (_this.originalSeries.type) {\r\n case IDataSeries_1.EDataSeriesType.Ohlc:\r\n var ohlcSeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.yfield, ohlcSeries_1.getNativeYValues(), ohlcSeries_1.getNativeOpenValues(), ohlcSeries_1.getNativeHighValues(), ohlcSeries_1.getNativeLowValues());\r\n };\r\n _this.getOriginalZValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.zfield, ohlcSeries_1.getNativeYValues(), ohlcSeries_1.getNativeOpenValues(), ohlcSeries_1.getNativeHighValues(), ohlcSeries_1.getNativeLowValues());\r\n };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xy:\r\n var xySeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () { return xySeries_1.getNativeYValues(); };\r\n _this.getOriginalZValues = function () { return xySeries_1.getNativeYValues(); };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Xyy:\r\n var xyySeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.yfield, xyySeries_1.getNativeYValues(), xyySeries_1.getNativeY1Values());\r\n };\r\n _this.getOriginalZValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.zfield, xyySeries_1.getNativeYValues(), xyySeries_1.getNativeY1Values());\r\n };\r\n break;\r\n case IDataSeries_1.EDataSeriesType.Hlc:\r\n var hlcSeries_1 = _this.originalSeries;\r\n _this.getOriginalYValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.yfield, hlcSeries_1.getNativeYValues(), undefined, hlcSeries_1.getNativeHighValues(), hlcSeries_1.getNativeLowValues());\r\n };\r\n _this.getOriginalZValues = function () {\r\n return (0, XyFilterBase_1.switchData)(_this.zfield, hlcSeries_1.getNativeYValues(), undefined, hlcSeries_1.getNativeHighValues(), hlcSeries_1.getNativeLowValues());\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyzFilterBase.prototype, \"originalSeries\", {\r\n get: function () {\r\n return this.originalSeriesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyzFilterBase.prototype.detachFromOriginalSeries = function () {\r\n this.originalSeries.dataChanged.unsubscribe(this.onBaseDataChanged);\r\n this.originalSeriesProperty = undefined;\r\n };\r\n XyzFilterBase.prototype.delete = function () {\r\n this.originalSeriesProperty = (0, Deleter_1.deleteSafe)(this.originalSeries);\r\n _super.prototype.delete.call(this);\r\n };\r\n XyzFilterBase.prototype.getOriginalXValues = function () {\r\n return this.originalSeries.getNativeXValues();\r\n };\r\n XyzFilterBase.prototype.getOriginalYValues = function () {\r\n return this.originalSeries.getNativeYValues();\r\n };\r\n XyzFilterBase.prototype.getOriginalZValues = function () {\r\n return this.originalSeries.getNativeZValues();\r\n };\r\n XyzFilterBase.prototype.getOriginalCount = function () {\r\n return this.originalSeries.count();\r\n };\r\n XyzFilterBase.prototype.onOriginalPropertyChanged = function (name) { };\r\n XyzFilterBase.prototype.filterOnAppend = function (count) {\r\n this.filterAll();\r\n };\r\n XyzFilterBase.prototype.filterOnUpdate = function (index) {\r\n this.filterAll();\r\n };\r\n XyzFilterBase.prototype.filterOnInsert = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n XyzFilterBase.prototype.filterOnRemove = function (startIndex, count) {\r\n this.filterAll();\r\n };\r\n XyzFilterBase.prototype.onClear = function () {\r\n this.clear();\r\n };\r\n XyzFilterBase.prototype.onBaseDataChanged = function (args) {\r\n var changeType = args.changeType, name = args.name, index = args.index, count = args.count;\r\n switch (changeType) {\r\n case IDataSeries_1.EDataChangeType.Property:\r\n this.onOriginalPropertyChanged(name);\r\n return;\r\n case IDataSeries_1.EDataChangeType.Append:\r\n this.filterOnAppend(count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Clear:\r\n this.onClear();\r\n break;\r\n case IDataSeries_1.EDataChangeType.Insert:\r\n this.filterOnInsert(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Remove:\r\n this.filterOnRemove(index, count);\r\n break;\r\n case IDataSeries_1.EDataChangeType.Update:\r\n this.filterOnUpdate(index);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return XyzFilterBase;\r\n}(XyzDataSeries_1.XyzDataSeries));\r\nexports.XyzFilterBase = XyzFilterBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyzScaleOffsetFilter = void 0;\r\nvar DataFilterType_1 = require(\"../../../types/DataFilterType\");\r\nvar XyzCustomFilter_1 = require(\"./XyzCustomFilter\");\r\nvar XyzScaleOffsetFilter = /** @class */ (function (_super) {\r\n __extends(XyzScaleOffsetFilter, _super);\r\n function XyzScaleOffsetFilter(originalSeries, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, originalSeries, options) || this;\r\n _this.scaleProperty = 1;\r\n _this.offsetProperty = 0;\r\n _this.scaleProperty = (_a = options === null || options === void 0 ? void 0 : options.scale) !== null && _a !== void 0 ? _a : _this.scaleProperty;\r\n _this.offsetProperty = (_b = options === null || options === void 0 ? void 0 : options.offset) !== null && _b !== void 0 ? _b : _this.offsetProperty;\r\n if (_this.getOriginalCount() > 0) {\r\n _this.filterAll();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyzScaleOffsetFilter.prototype, \"scale\", {\r\n get: function () {\r\n return this.scaleProperty;\r\n },\r\n set: function (value) {\r\n this.scaleProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyzScaleOffsetFilter.prototype, \"offset\", {\r\n get: function () {\r\n return this.offsetProperty;\r\n },\r\n set: function (value) {\r\n this.offsetProperty = value;\r\n this.filterAll();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // @ts-ignore\r\n XyzScaleOffsetFilter.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var original = this.originalSeries.toJSON(excludeData);\r\n return __assign(__assign({}, original), { filter: {\r\n type: DataFilterType_1.EDataFilterType.XyzScaleOffset,\r\n options: { yfield: this.yfield, zfield: this.zfield, scale: this.scale, offset: this.offset }\r\n } });\r\n };\r\n XyzScaleOffsetFilter.prototype.filterFunctionProperty = function (index, y) {\r\n return y * this.scaleProperty + this.offsetProperty;\r\n };\r\n return XyzScaleOffsetFilter;\r\n}(XyzCustomFilter_1.XyzCustomFilter));\r\nexports.XyzScaleOffsetFilter = XyzScaleOffsetFilter;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HlcDataSeries = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar NumberArray_1 = require(\"../../types/NumberArray\");\r\nvar SearchMode_1 = require(\"../../types/SearchMode\");\r\nvar YRangeMode_1 = require(\"../../types/YRangeMode\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar copyVector_1 = require(\"../../utils/copyVector\");\r\nvar isRealNumber_1 = require(\"../../utils/isRealNumber\");\r\nvar BaseDataSeries_1 = require(\"./BaseDataSeries\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\n/**\r\n * HlcDataSeries is a DataSeries for holding X, Y, H, L data in SciChart's 2D\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * The HlcDataSeries is primarily used with our {@link FastErrorBarsRenderableSeries | JavaScript Error Bars Chart},\r\n * which draws a High-Low Bars around points\r\n *\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseDataSeries} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.\r\n */\r\nvar HlcDataSeries = /** @class */ (function (_super) {\r\n __extends(HlcDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link HlcDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IHlcDataSeriesOptions} which can be passed to configure the DataSeries at construct time\r\n */\r\n function HlcDataSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IDataSeries_1.EDataSeriesType.Hlc;\r\n _this.highValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n _this.lowValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n if (options === null || options === void 0 ? void 0 : options.xValues) {\r\n Guard_1.Guard.notNull(options.yValues, \"options.yValues\");\r\n Guard_1.Guard.notNull(options.highValues, \"options.highValues\");\r\n Guard_1.Guard.notNull(options.lowValues, \"options.lowValues\");\r\n _this.appendRange(options.xValues, options.yValues, options.highValues, options.lowValues, options.metadata);\r\n if ((options === null || options === void 0 ? void 0 : options.fifoCapacity) && (options === null || options === void 0 ? void 0 : options.fifoStartIndex)) {\r\n _this.xValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.yValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.highValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.lowValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n }\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Gets a native / WebAssembly vector of H-values in the DataSeries\r\n */\r\n HlcDataSeries.prototype.getNativeHighValues = function () {\r\n return this.highValues;\r\n };\r\n /**\r\n * Gets a native / WebAssembly vector of L-values in the DataSeries\r\n */\r\n HlcDataSeries.prototype.getNativeLowValues = function () {\r\n return this.lowValues;\r\n };\r\n /**\r\n * Appends a single X, Y, Y1 point to the DataSeries\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link appendRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param x The X-value\r\n * @param y The Y1-value\r\n * @param h The H-value\r\n * @param l The L-value\r\n * @param metadata The point metadata\r\n */\r\n HlcDataSeries.prototype.append = function (x, y, h, l, metadata) {\r\n if (!this.getIsDeleted()) {\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, [x], [y]);\r\n // Push metadata should be done before push x values\r\n this.appendMetadata(metadata);\r\n nativeX.push_back(x);\r\n this.getNativeYValues().push_back(y);\r\n this.getNativeHighValues().push_back(h);\r\n this.getNativeLowValues().push_back(l);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, 1);\r\n }\r\n };\r\n /**\r\n * Appends a range of X, Y, Y1 points to the DataSeries\r\n * @remarks\r\n * This method is considerably higher performance than {@link append} which appends a single point\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param xValues The X-values\r\n * @param yValues The Y-values\r\n * @param y1Values The Y1-values\r\n * @param metadata The array of point metadata\r\n */\r\n HlcDataSeries.prototype.appendRange = function (xValues, yValues, hValues, lValues, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(hValues) || (0, NumberArray_1.isTypedArray)(hValues), \"hValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(lValues) || (0, NumberArray_1.isTypedArray)(lValues), \"lValues must be an array of numbers\");\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: xValues, name: \"xValues\" },\r\n { arg: yValues, name: \"yValues\" },\r\n { arg: hValues, name: \"hValues\" },\r\n { arg: lValues, name: \"lValues\" }\r\n ]);\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n var nativeH = this.getNativeHighValues();\r\n var nativeL = this.getNativeLowValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, xValues, yValues);\r\n // Push metadata should be done before push x values\r\n this.appendMetadataRange(metadata, xValues.length);\r\n // New implementation passing array from JS\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeX, xValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeY, yValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeH, hValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeL, lValues);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, xValues.length);\r\n }\r\n };\r\n /**\r\n * Updates a single Y, H, L-value by X-index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param y The new Y value\r\n * @param h The new H value\r\n * @param l The new L value\r\n * @param metadata The point metadata\r\n */\r\n HlcDataSeries.prototype.update = function (index, y, h, l, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, undefined, undefined, [y], index);\r\n this.getNativeYValues().set(index, y);\r\n this.getNativeHighValues().set(index, h);\r\n this.getNativeLowValues().set(index, l);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Updates a single X, Y, H, L-value by X-index. Might also need to set isSorted = false\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param x The new X value\r\n * @param y The new Y value\r\n * @param h The new H value\r\n * @param l The new L value\r\n * @param metadata The point metadata\r\n */\r\n HlcDataSeries.prototype.updateXyhl = function (index, x, y, h, l, metadata) {\r\n // TODO probably update method signature\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, nativeX, [x], [y], index);\r\n nativeX.set(index, x);\r\n this.getNativeYValues().set(index, y);\r\n this.getNativeHighValues().set(index, h);\r\n this.getNativeLowValues().set(index, l);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Inserts a single X,Y, H, L value at the start index\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link insertRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param x the XValue\r\n * @param y the YValue\r\n * @param h the HighValue\r\n * @param l the LowValue\r\n * @param metadata The point metadata\r\n */\r\n HlcDataSeries.prototype.insert = function (startIndex, x, y, h, l, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insert\");\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n var nativeH = this.getNativeHighValues();\r\n var nativeL = this.getNativeLowValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, [x], [y], startIndex);\r\n nativeX.insertAt(startIndex, x);\r\n nativeY.insertAt(startIndex, y);\r\n nativeH.insertAt(startIndex, h);\r\n nativeL.insertAt(startIndex, l);\r\n this.insertMetadata(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, 1);\r\n }\r\n };\r\n /**\r\n * Inserts a range of X,Y, H, L values at the startIndex\r\n * @remarks\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param xValues the XValues\r\n * @param yValues the YValues\r\n * @param hValues the HValues\r\n * @param lValues the LValues\r\n * @param metadata The array of point metadata\r\n */\r\n HlcDataSeries.prototype.insertRange = function (startIndex, xValues, yValues, hValues, lValues, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(hValues) || (0, NumberArray_1.isTypedArray)(hValues), \"hValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(lValues) || (0, NumberArray_1.isTypedArray)(lValues), \"lValues must be an array of numbers\");\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insertRange\");\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: xValues, name: \"xValues\" },\r\n { arg: yValues, name: \"yValues\" },\r\n { arg: hValues, name: \"hValues\" },\r\n { arg: lValues, name: \"lValues\" }\r\n ]);\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, xValues, yValues, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, xValues, nativeX, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, yValues, this.getNativeYValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, hValues, this.getNativeHighValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, lValues, this.getNativeLowValues(), startIndex);\r\n this.insertMetadataRange(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, xValues.length);\r\n }\r\n };\r\n /**\r\n * Removes a single X,Y, H, L value at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to remove at\r\n */\r\n HlcDataSeries.prototype.removeAt = function (index) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.throwIfFifo(\"removeAt\");\r\n this.getNativeXValues().removeAt(index);\r\n this.getNativeYValues().removeAt(index);\r\n this.getNativeHighValues().removeAt(index);\r\n this.getNativeLowValues().removeAt(index);\r\n this.removeMetadataAt(index);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, index, 1);\r\n }\r\n };\r\n /**\r\n * Removes a range of X, Y, H, L values at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the start index to remove at\r\n * @param count the number of points to remove\r\n */\r\n HlcDataSeries.prototype.removeRange = function (startIndex, count) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"removeRange\");\r\n this.getNativeXValues().removeRange(startIndex, count);\r\n this.getNativeYValues().removeRange(startIndex, count);\r\n this.getNativeHighValues().removeRange(startIndex, count);\r\n this.getNativeLowValues().removeRange(startIndex, count);\r\n this.removeMetadataRange(startIndex, count);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, startIndex, count);\r\n }\r\n };\r\n /**\r\n * Clears the entire DataSeries.\r\n * @remarks\r\n * Note this does not free memory, WebAssembly/Native memory is released by calling {@link delete}, after which the\r\n * DataSeries is no longer usable.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n */\r\n HlcDataSeries.prototype.clear = function () {\r\n if (!this.getIsDeleted()) {\r\n _super.prototype.clear.call(this);\r\n this.getNativeXValues().clear();\r\n this.getNativeYValues().clear();\r\n this.getNativeHighValues().clear();\r\n this.getNativeLowValues().clear();\r\n this.setMetadata(undefined);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);\r\n }\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.getXRange = function (dataSeriesValueType, isHorizontalDirection, hasHighCap, hasLowCap) {\r\n var xValues = this.getXValues(dataSeriesValueType);\r\n var _a = this.getHlcValues(dataSeriesValueType), hValues = _a.hValues, lValues = _a.lValues;\r\n var temp;\r\n if (isHorizontalDirection) {\r\n if (this.count() === 1) {\r\n // TODO check if logic is valid here\r\n var minValues = hasLowCap ? lValues : xValues;\r\n var maxValues = hasHighCap ? hValues : xValues;\r\n var min = minValues.get(0) - 1;\r\n var max = maxValues.get(0) + 1;\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n else if (this.count() > 1) {\r\n var min = void 0;\r\n var max = void 0;\r\n var minMax = void 0;\r\n try {\r\n // TODO probably can be optimized, make sure there are no memory leaks here\r\n minMax = this.webAssemblyContext.NumberUtil.MinMax(hasLowCap ? this.getNativeLowValues() : this.getNativeXValues());\r\n min = minMax.minD;\r\n minMax = this.webAssemblyContext.NumberUtil.MinMax(hasHighCap ? this.getNativeHighValues() : this.getNativeXValues());\r\n max = minMax.maxD;\r\n if (!(0, isRealNumber_1.isRealNumber)(min) || !(0, isRealNumber_1.isRealNumber)(max)) {\r\n return new NumberRange_1.NumberRange(0, 0);\r\n }\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n }\r\n if (min === max) {\r\n return new NumberRange_1.NumberRange(min - 1, max + 1);\r\n }\r\n else if (min > max) {\r\n temp = min;\r\n min = max;\r\n max = temp;\r\n }\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n }\r\n else {\r\n if (this.count() === 1) {\r\n var min = xValues.get(0) - 1;\r\n var max = xValues.get(0) + 1;\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n else if (this.count() > 1) {\r\n var min = xValues.get(0);\r\n var max = xValues.get(this.count() - 1);\r\n if (!this.dataDistributionCalculator.isSortedAscending) {\r\n var minMax = void 0;\r\n try {\r\n minMax = this.webAssemblyContext.NumberUtil.MinMax(this.getNativeXValues());\r\n if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {\r\n return new NumberRange_1.NumberRange(0, 0);\r\n }\r\n min = minMax.minD;\r\n max = minMax.maxD;\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n }\r\n }\r\n if (min === max) {\r\n return new NumberRange_1.NumberRange(min - 1, max + 1);\r\n }\r\n else if (min > max) {\r\n temp = min;\r\n min = max;\r\n max = temp;\r\n }\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n }\r\n return new NumberRange_1.NumberRange(0, 0);\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, yRangeMode, isHorizontalDirection, hasHighCap, hasLowCap) {\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }\r\n if (yRangeMode === void 0) { yRangeMode = YRangeMode_1.EYRangeMode.Visible; }\r\n if (isHorizontalDirection === void 0) { isHorizontalDirection = false; }\r\n var _a = this.getHlcValues(dataSeriesValueType), hValues = _a.hValues, lValues = _a.lValues, yValues = _a.yValues;\r\n // TODO: getPositiveRange\r\n // if one point\r\n if (this.count() === 1 && !isHorizontalDirection) {\r\n if (isHorizontalDirection) {\r\n var y = yValues.get(0);\r\n return new NumberRange_1.NumberRange(y, y);\r\n }\r\n else {\r\n var min = Math.min(hValues.get(0), lValues.get(0));\r\n var max = Math.max(hValues.get(0), lValues.get(0));\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n }\r\n var indicesRange = isXCategoryAxis\r\n ? xRange\r\n : this.getIndicesRange(xRange, false, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);\r\n var yMin = Number.MAX_VALUE;\r\n var yMax = Number.MIN_VALUE;\r\n var iMin = Math.max(Math.floor(indicesRange.min), 0);\r\n var iMax = Math.min(Math.ceil(indicesRange.max), this.count() - 1);\r\n if (iMax < iMin) {\r\n return undefined;\r\n }\r\n // TODO handle log axis\r\n // TODO check for memory leaks\r\n if (isHorizontalDirection) {\r\n var minMax = void 0;\r\n try {\r\n minMax = this.webAssemblyContext.NumberUtil.MinMaxWithIndex(yValues, iMin, iMax - iMin + 1);\r\n if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {\r\n return new NumberRange_1.NumberRange(0, 0);\r\n }\r\n yMin = minMax.minD;\r\n yMax = minMax.maxD;\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n }\r\n }\r\n else {\r\n var maxValues = hasHighCap ? hValues : yValues;\r\n var minValues = hasLowCap ? lValues : yValues;\r\n var minMax = void 0;\r\n try {\r\n minMax = this.webAssemblyContext.NumberUtil.MinMaxWithIndex(maxValues, iMin, iMax - iMin + 1);\r\n if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {\r\n return new NumberRange_1.NumberRange(0, 0);\r\n }\r\n yMax = minMax.maxD;\r\n minMax = this.webAssemblyContext.NumberUtil.MinMaxWithIndex(minValues, iMin, iMax - iMin + 1);\r\n if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {\r\n return new NumberRange_1.NumberRange(0, 0);\r\n }\r\n yMin = minMax.minD;\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n }\r\n }\r\n return new NumberRange_1.NumberRange(yMin, yMax);\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.delete = function () {\r\n this.highValues = (0, Deleter_1.deleteSafe)(this.highValues);\r\n this.lowValues = (0, Deleter_1.deleteSafe)(this.lowValues);\r\n this.hInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.hInitialAnimationValues);\r\n this.hFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.hFinalAnimationValues);\r\n this.lInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.lInitialAnimationValues);\r\n this.lFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.lFinalAnimationValues);\r\n _super.prototype.delete.call(this);\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.createAnimationVectors = function () {\r\n _super.prototype.createAnimationVectors.call(this);\r\n this.lInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.lFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.hInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.hFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.setInitialAnimationVectors = function (dataSeries) {\r\n _super.prototype.setInitialAnimationVectors.call(this, dataSeries);\r\n if (!dataSeries) {\r\n this.hInitialAnimationValues.resize(0, 0);\r\n this.lInitialAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeHighValues(), this.hInitialAnimationValues, this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeLowValues(), this.lInitialAnimationValues, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.setFinalAnimationVectors = function (dataSeries) {\r\n _super.prototype.setFinalAnimationVectors.call(this, dataSeries);\r\n if (!dataSeries) {\r\n this.hFinalAnimationValues.resize(0, 0);\r\n this.lFinalAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeHighValues(), this.hFinalAnimationValues, this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeLowValues(), this.lFinalAnimationValues, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.validateAnimationVectors = function () {\r\n _super.prototype.validateAnimationVectors.call(this);\r\n var size = this.xInitialAnimationValues.size();\r\n if (size !== this.hInitialAnimationValues.size() ||\r\n size !== this.hFinalAnimationValues.size() ||\r\n size !== this.lInitialAnimationValues.size() ||\r\n size !== this.lFinalAnimationValues.size()) {\r\n throw Error(\"initialAnimationValues and finalAnimationValues must have the same length\");\r\n }\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.updateAnimationProperties = function (progress, animation) {\r\n _super.prototype.updateAnimationProperties.call(this, progress, animation);\r\n if (animation.isOnStartAnimation) {\r\n animation.calculateAnimationValues(this.webAssemblyContext, this.hFinalAnimationValues, this.getNativeHighValues(), progress);\r\n animation.calculateAnimationValues(this.webAssemblyContext, this.lFinalAnimationValues, this.getNativeLowValues(), progress);\r\n }\r\n else if (animation.isDataSeriesAnimation) {\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.hInitialAnimationValues, this.hFinalAnimationValues, this.getNativeHighValues(), progress);\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.lInitialAnimationValues, this.lFinalAnimationValues, this.getNativeLowValues(), progress);\r\n }\r\n };\r\n /** @inheritDoc */\r\n HlcDataSeries.prototype.getOptions = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.getOptions.call(this, excludeData);\r\n if (!excludeData) {\r\n var dataSize = this.count();\r\n var xValues = new Array(dataSize);\r\n var yValues = new Array(dataSize);\r\n var highValues = new Array(dataSize);\r\n var lowValues = new Array(dataSize);\r\n if (this.fifoCapacity && this.fifoSweeping) {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.getRaw(i);\r\n yValues[i] = this.yValues.getRaw(i);\r\n highValues[i] = this.highValues.getRaw(i);\r\n lowValues[i] = this.lowValues.getRaw(i);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.get(i);\r\n yValues[i] = this.yValues.get(i);\r\n highValues[i] = this.highValues.get(i);\r\n lowValues[i] = this.lowValues.get(i);\r\n }\r\n }\r\n var options = {\r\n xValues: xValues,\r\n yValues: yValues,\r\n highValues: highValues,\r\n lowValues: lowValues\r\n };\r\n Object.assign(json, options);\r\n }\r\n return json;\r\n };\r\n HlcDataSeries.prototype.reserve = function (size) {\r\n _super.prototype.reserve.call(this, size);\r\n this.highValues.reserve(size);\r\n this.lowValues.reserve(size);\r\n };\r\n HlcDataSeries.prototype.getHlcValues = function (dataSeriesValueType) {\r\n var hValues;\r\n var lValues;\r\n var yValues;\r\n switch (dataSeriesValueType) {\r\n case IDataSeries_1.EDataSeriesValueType.FinalAnimationValues:\r\n hValues = this.hFinalAnimationValues;\r\n lValues = this.lFinalAnimationValues;\r\n yValues = this.yFinalAnimationValues;\r\n break;\r\n case IDataSeries_1.EDataSeriesValueType.InitialAnimationValues:\r\n hValues = this.hInitialAnimationValues;\r\n lValues = this.lInitialAnimationValues;\r\n yValues = this.yInitialAnimationValues;\r\n break;\r\n default:\r\n hValues = this.highValues;\r\n lValues = this.lowValues;\r\n yValues = this.yValues;\r\n }\r\n return { hValues: hValues, lValues: lValues, yValues: yValues };\r\n };\r\n return HlcDataSeries;\r\n}(BaseDataSeries_1.BaseDataSeries));\r\nexports.HlcDataSeries = HlcDataSeries;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EDataSeriesValueType = exports.EDataChangeType = exports.EDataSeriesType = void 0;\r\n/**\r\n * Defines {@link BaseDataSeries | DataSeries} types available within SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n */\r\nvar EDataSeriesType;\r\n(function (EDataSeriesType) {\r\n /**\r\n * Defines an {@link XyDataSeries}\r\n */\r\n EDataSeriesType[\"Xy\"] = \"Xy\";\r\n /**\r\n * Defines an {@link XyyDataSeries}, with two Y-points for every X-Value\r\n */\r\n EDataSeriesType[\"Xyy\"] = \"Xyy\";\r\n /**\r\n * Defines an {@link XyzDataSeries}\r\n */\r\n EDataSeriesType[\"Xyz\"] = \"Xyz\";\r\n /**\r\n * Defines an {@link OhlcDataSeries} for\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Stock Charts} or\r\n * financial charts\r\n */\r\n EDataSeriesType[\"Ohlc\"] = \"Ohlc\";\r\n /**\r\n * Defines a {@link UniformHeatmapDataSeries | DataSeries}\r\n */\r\n EDataSeriesType[\"HeatmapUniform\"] = \"UniformHeatmap\";\r\n /**\r\n * Defines a {@link UniformHeatmapDataSeries | DataSeries}\r\n */\r\n EDataSeriesType[\"HeatmapNonUniform\"] = \"NonUniformHeatmap\";\r\n /**\r\n * Defines a {@link HlcDataSeries}\r\n */\r\n EDataSeriesType[\"Hlc\"] = \"Hlc\";\r\n /**\r\n * Defines a {@link XyTextDataSeries}\r\n */\r\n EDataSeriesType[\"XyText\"] = \"XyText\";\r\n})(EDataSeriesType = exports.EDataSeriesType || (exports.EDataSeriesType = {}));\r\nvar EDataChangeType;\r\n(function (EDataChangeType) {\r\n EDataChangeType[EDataChangeType[\"Append\"] = 0] = \"Append\";\r\n EDataChangeType[EDataChangeType[\"Insert\"] = 1] = \"Insert\";\r\n EDataChangeType[EDataChangeType[\"Update\"] = 2] = \"Update\";\r\n EDataChangeType[EDataChangeType[\"Remove\"] = 3] = \"Remove\";\r\n EDataChangeType[EDataChangeType[\"Clear\"] = 4] = \"Clear\";\r\n EDataChangeType[EDataChangeType[\"Property\"] = 5] = \"Property\";\r\n})(EDataChangeType = exports.EDataChangeType || (exports.EDataChangeType = {}));\r\n/**\r\n * Defines what values to use when dealing with an {@link IDataSeries}\r\n * For example, when getWindowedYRange() is called we can use Default values, which are xValues and yValues\r\n * or if an animation is running we can use InitialAnimationValues or FinalAnimationValues\r\n */\r\nvar EDataSeriesValueType;\r\n(function (EDataSeriesValueType) {\r\n EDataSeriesValueType[\"Default\"] = \"Default\";\r\n EDataSeriesValueType[\"InitialAnimationValues\"] = \"InitialAnimationValues\";\r\n EDataSeriesValueType[\"FinalAnimationValues\"] = \"FinalAnimationValues\";\r\n})(EDataSeriesValueType = exports.EDataSeriesValueType || (exports.EDataSeriesValueType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultPaletteProvider = exports.EFillPaletteMode = exports.EStrokePaletteMode = void 0;\r\nvar EStrokePaletteMode;\r\n(function (EStrokePaletteMode) {\r\n EStrokePaletteMode[\"GRADIENT\"] = \"GRADIENT\";\r\n EStrokePaletteMode[\"SOLID\"] = \"SOLID\";\r\n})(EStrokePaletteMode = exports.EStrokePaletteMode || (exports.EStrokePaletteMode = {}));\r\nvar EFillPaletteMode;\r\n(function (EFillPaletteMode) {\r\n EFillPaletteMode[\"GRADIENT\"] = \"GRADIENT\";\r\n EFillPaletteMode[\"SOLID\"] = \"SOLID\";\r\n})(EFillPaletteMode = exports.EFillPaletteMode || (exports.EFillPaletteMode = {}));\r\n/**\r\n * A Default Palette provider is applied to the {@link BaseRenderableSeries.paletteProvider} property in the constructor\r\n * however all its functions such as {@link DefaultPaletteProvider.overrideFillArgb}, {@link DefaultPaletteProvider.overrideStrokeArgb}\r\n * etc... are set to undefined. This allows a user to do quick one-line paletteproviders in vanilla Javascript like this:\r\n *\r\n * ```javascript\r\n * const series = new FastLineRenderableSeries(wasmContext);\r\n * series.paletteProvider.overrideFillArgb = (xValue, yValue, index) => {\r\n * return yValue > 0 ? parseColorToUIntArgb(\"white\") : undefined;\r\n * }\r\n * ```\r\n */\r\nvar DefaultPaletteProvider = /** @class */ (function () {\r\n function DefaultPaletteProvider() {\r\n this.strokePaletteMode = EStrokePaletteMode.GRADIENT;\r\n this.fillPaletteMode = EFillPaletteMode.GRADIENT;\r\n }\r\n DefaultPaletteProvider.createEmpty = function () {\r\n var pp = new DefaultPaletteProvider();\r\n pp.overrideFillArgb = undefined;\r\n pp.overrideStrokeArgb = undefined;\r\n pp.overridePointMarkerArgb = undefined;\r\n return pp;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultPaletteProvider.prototype.onAttached = function (parentSeries) {\r\n this.parentSeries = parentSeries;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultPaletteProvider.prototype.onDetached = function () {\r\n this.parentSeries = undefined;\r\n };\r\n Object.defineProperty(DefaultPaletteProvider.prototype, \"isRangeIndependant\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultPaletteProvider.prototype.shouldUpdatePalette = function () {\r\n return true;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultPaletteProvider.prototype.overrideFillArgb = function (xValue, yValue, index, opacity, metadata) {\r\n return undefined;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultPaletteProvider.prototype.overrideStrokeArgb = function (xValue, yValue, index, opacity, metadata) {\r\n return undefined;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultPaletteProvider.prototype.overridePointMarkerArgb = function (xValue, yValue, index, opacity, metadata) {\r\n return undefined;\r\n };\r\n DefaultPaletteProvider.prototype.toJSON = function () {\r\n // No need to serialise this as it is created automaticaly if a palletprovider is not specified.\r\n return undefined;\r\n };\r\n return DefaultPaletteProvider;\r\n}());\r\nexports.DefaultPaletteProvider = DefaultPaletteProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TemplateMetadataGenerator = void 0;\r\nvar TemplateMetadataGenerator = /** @class */ (function () {\r\n function TemplateMetadataGenerator(template) {\r\n this.template = template;\r\n }\r\n TemplateMetadataGenerator.prototype.getSingleMetadata = function () {\r\n return Object.assign({}, this.template);\r\n };\r\n TemplateMetadataGenerator.prototype.getMetadata = function () {\r\n return undefined;\r\n };\r\n TemplateMetadataGenerator.prototype.toJSON = function () {\r\n // No type needed here. Plain metadata objects automatically get wrapped into this generator\r\n if (\"toJSON\" in this.template) {\r\n // @ts-ignore\r\n return this.template.toJSON();\r\n }\r\n else {\r\n return this.template;\r\n }\r\n };\r\n return TemplateMetadataGenerator;\r\n}());\r\nexports.TemplateMetadataGenerator = TemplateMetadataGenerator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NonUniformHeatmapDataSeries = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar TSciChart_1 = require(\"../../types/TSciChart\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar BaseDataSeries_1 = require(\"./BaseDataSeries\");\r\nvar BaseHeatmapDataSeries_1 = require(\"./BaseHeatmapDataSeries\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\nvar NonUniformHeatmapDataSeries = /** @class */ (function (_super) {\r\n __extends(NonUniformHeatmapDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link UniformHeatmapDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IUniformHeatmapSeriesOptions} which must be passed to configure the series\r\n */\r\n function NonUniformHeatmapDataSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = IDataSeries_1.EDataSeriesType.HeatmapNonUniform;\r\n Guard_1.Guard.notNull(options.xCellOffsets, \"options.xCellOffsets\");\r\n Guard_1.Guard.notNull(options.yCellOffsets, \"options.yCellOffsets\");\r\n // check whether offsets are passed as mappers or arrays;\r\n // arrays are saved once, while mappers are used for calculation of the offsets each time we change\r\n if (!Array.isArray(options.xCellOffsets)) {\r\n _this.xCellOffsetsGeneratorFunction = options.xCellOffsets;\r\n }\r\n else if (options.xCellOffsets.length < _this.arrayWidth + 1) {\r\n throw new Error(\"xCellOffsets array should not be smaller than zValues width!\");\r\n }\r\n else {\r\n _this.xCellOffsetsProperty = options.xCellOffsets;\r\n }\r\n if (!Array.isArray(options.yCellOffsets)) {\r\n _this.yCellOffsetsGeneratorFunction = options.yCellOffsets;\r\n }\r\n else if (options.yCellOffsets.length < _this.arrayHeight + 1) {\r\n throw new Error(\"yCellOffsets array should not be smaller than zValues height!\");\r\n }\r\n else {\r\n _this.yCellOffsetsProperty = options.yCellOffsets;\r\n }\r\n _this.nativeXOffsetsProperty = new _this.webAssemblyContext.SCRTDoubleVector();\r\n _this.nativeYOffsetsProperty = new _this.webAssemblyContext.SCRTDoubleVector();\r\n // notify about offsets being parsed\r\n if (_this.getZValues()) {\r\n _this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(NonUniformHeatmapDataSeries.prototype, \"xCellSizes\", {\r\n /**\r\n * Gets or sets cell X sizes on {@link NonUniformHeatmapDataSeries} for each cell in the heatmap.\r\n * Can be an array of numbers or a mapping function {@link TCellSizeMapper}\r\n */\r\n get: function () {\r\n if (!this.xCellSizesProperty) {\r\n this.xCellSizesProperty = this.calculateCellSizes(this.xCellOffsetsProperty);\r\n }\r\n return this.xCellSizesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NonUniformHeatmapDataSeries.prototype, \"yCellSizes\", {\r\n /**\r\n * Gets or sets cell Y sizes on {@link NonUniformHeatmapDataSeries} for each cell in the heatmap.\r\n * Can be an array of numbers or a mapping function {@link TCellSizeMapper}\r\n */\r\n get: function () {\r\n if (!this.yCellSizesProperty) {\r\n this.yCellSizesProperty = this.calculateCellSizes(this.yCellOffsetsProperty);\r\n }\r\n return this.yCellSizesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NonUniformHeatmapDataSeries.prototype, \"xCellOffsets\", {\r\n /**\r\n * Gets X cell offsets on {@link NonUniformHeatmapDataSeries} for each cell in the heatmap.\r\n */\r\n get: function () {\r\n return this.xCellOffsetsProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NonUniformHeatmapDataSeries.prototype, \"yCellOffsets\", {\r\n /**\r\n * Gets Y cell offsets on {@link NonUniformHeatmapDataSeries} for each cell in the heatmap.\r\n */\r\n get: function () {\r\n return this.yCellOffsetsProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NonUniformHeatmapDataSeries.prototype, \"nativeXCellOffsets\", {\r\n /**\r\n * Gets X cell offsets as native vector on {@link NonUniformHeatmapDataSeries} for each cell in the heatmap.\r\n */\r\n get: function () {\r\n if (!this.nativeXOffsetsProperty) {\r\n this.nativeXOffsetsProperty = new TSciChart_1.SCRTDoubleVector();\r\n (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, this.nativeXOffsetsProperty, this.xCellOffsets);\r\n }\r\n return this.nativeXOffsetsProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NonUniformHeatmapDataSeries.prototype, \"nativeYCellOffsets\", {\r\n /**\r\n * Gets X cell offsets as native vector on {@link NonUniformHeatmapDataSeries} for each cell in the heatmap.\r\n */\r\n get: function () {\r\n if (!this.nativeYOffsetsProperty) {\r\n this.nativeYOffsetsProperty = new TSciChart_1.SCRTDoubleVector();\r\n (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, this.nativeYOffsetsProperty, this.yCellOffsets);\r\n }\r\n return this.nativeYOffsetsProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets the X-value at the specified index. This will be computed from constructor parameters xCellOffsets and xStart\r\n * @param xIndex\r\n */\r\n NonUniformHeatmapDataSeries.prototype.getXValue = function (xIndex) {\r\n var offset = this.xCellOffsetsProperty[xIndex];\r\n return offset;\r\n };\r\n /**\r\n * Gets the Y-value at the specified index. This will be computed from constructor parameters yCellOffsets and yxStart\r\n * @param xIndex\r\n */\r\n NonUniformHeatmapDataSeries.prototype.getYValue = function (yIndex) {\r\n var offset = this.yCellOffsetsProperty[yIndex];\r\n return offset;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapDataSeries.prototype.notifyDataChanged = function (updateType, data) {\r\n // skip the initial call from base constructor\r\n if ((!this.xCellOffsets && !this.xCellOffsetsGeneratorFunction) ||\r\n (!this.yCellOffsets && !this.yCellOffsetsGeneratorFunction)) {\r\n return;\r\n }\r\n if (updateType === IDataSeries_1.EDataChangeType.Append) {\r\n // set offsets when zValues changes\r\n if (this.xCellOffsetsGeneratorFunction) {\r\n this.xCellOffsetsProperty = this.mapCellSizes(this.arrayWidth, this.xCellOffsetsGeneratorFunction);\r\n this.xCellSizesProperty = this.calculateCellSizes(this.xCellOffsetsProperty);\r\n }\r\n if (this.yCellOffsetsGeneratorFunction) {\r\n this.yCellOffsetsProperty = this.mapCellSizes(this.arrayHeight, this.yCellOffsetsGeneratorFunction);\r\n this.yCellSizesProperty = this.calculateCellSizes(this.yCellOffsetsProperty);\r\n }\r\n this.nativeXOffsetsProperty.clear();\r\n this.nativeYOffsetsProperty.clear();\r\n (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, this.nativeXOffsetsProperty, this.xCellOffsetsProperty);\r\n (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, this.nativeYOffsetsProperty, this.yCellOffsetsProperty);\r\n }\r\n this.xRangeProperty = new NumberRange_1.NumberRange(this.getXValue(0), this.getXValue(this.arrayWidth));\r\n this.yRangeProperty = new NumberRange_1.NumberRange(this.getYValue(0), this.getYValue(this.arrayHeight));\r\n _super.prototype.notifyDataChanged.call(this, updateType, data);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapDataSeries.prototype.getXRange = function () {\r\n return this.xRangeProperty;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapDataSeries.prototype.getYRange = function () {\r\n return this.yRangeProperty;\r\n };\r\n NonUniformHeatmapDataSeries.prototype.getXIndicesRange = function (visibleRange, isCategoryData, downSearchMode, upSearchMode) {\r\n return (0, BaseDataSeries_1.getIndicesRange)(this.webAssemblyContext, this.nativeXCellOffsets, visibleRange, true);\r\n };\r\n NonUniformHeatmapDataSeries.prototype.getYIndicesRange = function (visibleRange, isCategoryData, downSearchMode, upSearchMode) {\r\n return (0, BaseDataSeries_1.getIndicesRange)(this.webAssemblyContext, this.nativeYCellOffsets, visibleRange, true);\r\n };\r\n NonUniformHeatmapDataSeries.prototype.delete = function () {\r\n _super.prototype.delete.call(this);\r\n this.nativeXOffsetsProperty = (0, Deleter_1.deleteSafe)(this.nativeXOffsetsProperty);\r\n this.nativeYOffsetsProperty = (0, Deleter_1.deleteSafe)(this.nativeYOffsetsProperty);\r\n };\r\n NonUniformHeatmapDataSeries.prototype.getOptions = function (excludeData) {\r\n var baseOptions = _super.prototype.getOptions.call(this, excludeData);\r\n var options = {\r\n xCellOffsets: this.xCellOffsetsProperty,\r\n yCellOffsets: this.yCellOffsetsProperty\r\n };\r\n return Object.assign(baseOptions, options);\r\n };\r\n /**\r\n * @param cellOffsets\r\n * @returns an array with cell sizes to heatmap size ratios\r\n */\r\n NonUniformHeatmapDataSeries.prototype.mapCellSizes = function (zValuesDimensionSize, mapping) {\r\n var cellSizes = [];\r\n var offsetsCount = zValuesDimensionSize + 1;\r\n for (var i = 0; i < offsetsCount; ++i) {\r\n cellSizes.push(mapping(i));\r\n }\r\n return cellSizes;\r\n };\r\n /**\r\n * @param cellOffsets\r\n * @returns an array with cell sizes to heatmap size ratios\r\n */\r\n NonUniformHeatmapDataSeries.prototype.calculateCellSizes = function (cellOffsets) {\r\n if (!cellOffsets || cellOffsets.length === 0) {\r\n return [];\r\n }\r\n var count = cellOffsets.length;\r\n var heatmapRange = cellOffsets[count - 1] - cellOffsets[0];\r\n var cellSizeRatios = [];\r\n for (var i = 0; i < count - 1; ++i) {\r\n var diff = cellOffsets[i + 1] - cellOffsets[i];\r\n cellSizeRatios.push(diff / heatmapRange);\r\n }\r\n return cellSizeRatios;\r\n };\r\n return NonUniformHeatmapDataSeries;\r\n}(BaseHeatmapDataSeries_1.BaseHeatmapDataSeries));\r\nexports.NonUniformHeatmapDataSeries = NonUniformHeatmapDataSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcDataSeries = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar NumberArray_1 = require(\"../../types/NumberArray\");\r\nvar SearchMode_1 = require(\"../../types/SearchMode\");\r\nvar YRangeMode_1 = require(\"../../types/YRangeMode\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar copyVector_1 = require(\"../../utils/copyVector\");\r\nvar BaseDataSeries_1 = require(\"./BaseDataSeries\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\n/**\r\n * OhlcDataSeries is a DataSeries for holding Open, High, Low, Close data in SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Stock Charts}\r\n * @remarks\r\n * The OhlcDataSeries is primarily used with the {@link FastCandlestickRenderableSeries | JavaScript Candlestick Chart}\r\n * but can also be used with our {@link FastOhlcRenderableSeries | JavaScript Ohlc Chart},\r\n * used for drawing {@link https://www.scichart.com/javascript-chart-features | JavaScript Stock Charts} and Candlestick or OHLC charts.\r\n *\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseDataSeries} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.\r\n */\r\nvar OhlcDataSeries = /** @class */ (function (_super) {\r\n __extends(OhlcDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link OhlcDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IOhlcDataSeriesOptions} which can be passed to configure the DataSeries at construct time\r\n */\r\n function OhlcDataSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IDataSeries_1.EDataSeriesType.Ohlc;\r\n _this.openValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n _this.highValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n _this.lowValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n if (options === null || options === void 0 ? void 0 : options.xValues) {\r\n _this.appendRange(options.xValues, options.openValues, options.highValues, options.lowValues, options.closeValues, options.metadata);\r\n if ((options === null || options === void 0 ? void 0 : options.fifoCapacity) && (options === null || options === void 0 ? void 0 : options.fifoStartIndex)) {\r\n _this.xValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.yValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.openValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.highValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.lowValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n }\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Gets a native / WebAssembly vector of Open-values in the DataSeries\r\n */\r\n OhlcDataSeries.prototype.getNativeOpenValues = function () {\r\n return this.openValues;\r\n };\r\n /**\r\n * Gets a native / WebAssembly vector of High-values in the DataSeries\r\n */\r\n OhlcDataSeries.prototype.getNativeHighValues = function () {\r\n return this.highValues;\r\n };\r\n /**\r\n * Gets a native / WebAssembly vector of Low-values in the DataSeries\r\n */\r\n OhlcDataSeries.prototype.getNativeLowValues = function () {\r\n return this.lowValues;\r\n };\r\n /**\r\n * Gets a native / WebAssembly vector of Close-values in the DataSeries\r\n */\r\n OhlcDataSeries.prototype.getNativeCloseValues = function () {\r\n return this.getNativeYValues();\r\n };\r\n /**\r\n * Appends a single X (Date), Open, High, Low, Close point to the DataSeries\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link appendRange} method\r\n * X-value is a Date, encoded as a Unix Timestamp.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param x X-value is a Date, encoded as a Unix Timestamp.\r\n * @param open The Open value for this OHLC bar\r\n * @param high The High value for this OHLC bar\r\n * @param low The Low value for this OHLC bar\r\n * @param close The Close value for this OHLC bar\r\n * @param metadata The point metadata\r\n */\r\n OhlcDataSeries.prototype.append = function (x, open, high, low, close, metadata) {\r\n if (!this.getIsDeleted()) {\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, [x], [close]);\r\n // Push metadata should be done before push x values\r\n this.appendMetadata(metadata);\r\n nativeX.push_back(x);\r\n this.getNativeOpenValues().push_back(open);\r\n this.getNativeHighValues().push_back(high);\r\n this.getNativeLowValues().push_back(low);\r\n this.getNativeCloseValues().push_back(close);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, 1);\r\n }\r\n };\r\n /**\r\n * Appends arrays of X (Date), Open, High, Low, Close point to the DataSeries\r\n * @remarks\r\n * This method is considerably higher performance than {@link append} which appends a single point\r\n * X-value is a Date, encoded as a Unix Timestamp.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param xValues X-values are Dates, encoded as a Unix Timestamp.\r\n * @param openValues The Open values for this OHLC bar\r\n * @param highValues The High values for this OHLC bar\r\n * @param lowValues The Low values for this OHLC bar\r\n * @param closeValues The Close value sfor this OHLC bar\r\n * @param metadata The array of point metadata\r\n */\r\n OhlcDataSeries.prototype.appendRange = function (xValues, openValues, highValues, lowValues, closeValues, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(openValues) || (0, NumberArray_1.isTypedArray)(openValues), \"openValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(highValues) || (0, NumberArray_1.isTypedArray)(highValues), \"highValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(lowValues) || (0, NumberArray_1.isTypedArray)(lowValues), \"lowValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(closeValues) || (0, NumberArray_1.isTypedArray)(closeValues), \"closeValues must be an array of numbers\");\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: xValues, name: \"xValues\" },\r\n { arg: openValues, name: \"openValues\" },\r\n { arg: highValues, name: \"highValues\" },\r\n { arg: lowValues, name: \"lowValues\" },\r\n { arg: closeValues, name: \"closeValues\" }\r\n ]);\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n var nativeOpen = this.getNativeOpenValues();\r\n var nativeHigh = this.getNativeHighValues();\r\n var nativeLow = this.getNativeLowValues();\r\n var nativeClose = this.getNativeCloseValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, xValues, closeValues);\r\n // Push metadata should be done before push x values\r\n this.appendMetadataRange(metadata, xValues.length);\r\n // New implementation passing array from JS\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeX, xValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeOpen, openValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeHigh, highValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeLow, lowValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeClose, closeValues);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, xValues.length);\r\n }\r\n };\r\n /**\r\n * Updates a single Open, High, Low, Close value by X-index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param open The new Open value\r\n * @param high The new High value\r\n * @param low The new Low value\r\n * @param close The new Close value\r\n * @param metadata The point metadata\r\n */\r\n OhlcDataSeries.prototype.update = function (index, open, high, low, close, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, undefined, undefined, [close], index);\r\n this.getNativeOpenValues().set(index, open);\r\n this.getNativeHighValues().set(index, high);\r\n this.getNativeLowValues().set(index, low);\r\n this.getNativeCloseValues().set(index, close);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Updates a single X, Open, High, Low, Close value by X-index. Might also need to set isSorted = false\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param x The new X value\r\n * @param open The new Open value\r\n * @param high The new High value\r\n * @param low The new Low value\r\n * @param close The new Close value\r\n * @param metadata The point metadata\r\n */\r\n OhlcDataSeries.prototype.updateXohlc = function (index, x, open, high, low, close, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, nativeX, [x], [close], index);\r\n nativeX.set(index, x);\r\n this.getNativeOpenValues().set(index, open);\r\n this.getNativeHighValues().set(index, high);\r\n this.getNativeLowValues().set(index, low);\r\n this.getNativeCloseValues().set(index, close);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Inserts a single Date, Open, High, Low, Close value at the X-index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param x the X-value (date) encoded as a Unix Timestamp\r\n * @param open The Open value\r\n * @param high The High value\r\n * @param low The Low value\r\n * @param close The Close value\r\n * @param metadata The point metadata\r\n */\r\n OhlcDataSeries.prototype.insert = function (startIndex, x, open, high, low, close, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insert\");\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, [x], [close], startIndex);\r\n nativeX.insertAt(startIndex, x);\r\n this.getNativeOpenValues().insertAt(startIndex, open);\r\n this.getNativeHighValues().insertAt(startIndex, high);\r\n this.getNativeLowValues().insertAt(startIndex, low);\r\n this.getNativeCloseValues().insertAt(startIndex, close);\r\n this.insertMetadata(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, 1);\r\n }\r\n };\r\n /**\r\n * Inserts a range of Date, Open, High, Low, Close value at the X-index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param xValues the X-values (dates) encoded as a Unix Timestamp\r\n * @param openValues The Open values\r\n * @param highValues The High values\r\n * @param lowValues The Low values\r\n * @param closeValues The Close values\r\n * @param metadata The array of point metadata\r\n */\r\n OhlcDataSeries.prototype.insertRange = function (startIndex, xValues, openValues, highValues, lowValues, closeValues, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(openValues) || (0, NumberArray_1.isTypedArray)(openValues), \"openValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(highValues) || (0, NumberArray_1.isTypedArray)(highValues), \"highValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(lowValues) || (0, NumberArray_1.isTypedArray)(lowValues), \"lowValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(closeValues) || (0, NumberArray_1.isTypedArray)(closeValues), \"closeValues must be an array of numbers\");\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insertRange\");\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: xValues, name: \"xValues\" },\r\n { arg: openValues, name: \"openValues\" },\r\n { arg: highValues, name: \"highValues\" },\r\n { arg: lowValues, name: \"lowValues\" },\r\n { arg: closeValues, name: \"closeValues\" }\r\n ]);\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, xValues, closeValues, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, xValues, nativeX, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, openValues, this.getNativeOpenValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, highValues, this.getNativeHighValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, lowValues, this.getNativeLowValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, closeValues, this.getNativeCloseValues(), startIndex);\r\n this.insertMetadataRange(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, xValues.length);\r\n }\r\n };\r\n /**\r\n * Removes a Date,Open,High,Low,Close value at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to remove at\r\n */\r\n OhlcDataSeries.prototype.removeAt = function (index) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.throwIfFifo(\"removeAt\");\r\n this.getNativeXValues().removeAt(index);\r\n this.getNativeOpenValues().removeAt(index);\r\n this.getNativeHighValues().removeAt(index);\r\n this.getNativeLowValues().removeAt(index);\r\n this.getNativeCloseValues().removeAt(index);\r\n this.removeMetadataAt(index);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, index, 1);\r\n }\r\n };\r\n /**\r\n * Removes a range of Date,Open,High,Low,Close values at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the start index to remove at\r\n * @param count the number of points to remove\r\n */\r\n OhlcDataSeries.prototype.removeRange = function (startIndex, count) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"removeRange\");\r\n this.getNativeXValues().removeRange(startIndex, count);\r\n this.getNativeOpenValues().removeRange(startIndex, count);\r\n this.getNativeHighValues().removeRange(startIndex, count);\r\n this.getNativeLowValues().removeRange(startIndex, count);\r\n this.getNativeCloseValues().removeRange(startIndex, count);\r\n this.removeMetadataRange(startIndex, count);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, startIndex, count);\r\n }\r\n };\r\n /**\r\n * Clears the entire DataSeries.\r\n * @remarks\r\n * Note this does not free memory, WebAssembly/Native memory is released by calling {@link delete}, after which the\r\n * DataSeries is no longer usable.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n */\r\n OhlcDataSeries.prototype.clear = function () {\r\n if (!this.getIsDeleted()) {\r\n _super.prototype.clear.call(this);\r\n this.getNativeXValues().clear();\r\n this.getNativeOpenValues().clear();\r\n this.getNativeHighValues().clear();\r\n this.getNativeLowValues().clear();\r\n this.getNativeCloseValues().clear();\r\n this.setMetadata(undefined);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);\r\n }\r\n };\r\n /** @inheritDoc */\r\n OhlcDataSeries.prototype.delete = function () {\r\n this.openValues = (0, Deleter_1.deleteSafe)(this.openValues);\r\n this.highValues = (0, Deleter_1.deleteSafe)(this.highValues);\r\n this.lowValues = (0, Deleter_1.deleteSafe)(this.lowValues);\r\n this.openInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.openInitialAnimationValues);\r\n this.highInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.highInitialAnimationValues);\r\n this.lowInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.lowInitialAnimationValues);\r\n this.openFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.openFinalAnimationValues);\r\n this.highFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.highFinalAnimationValues);\r\n this.lowFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.lowFinalAnimationValues);\r\n _super.prototype.delete.call(this);\r\n };\r\n /** @inheritDoc */\r\n OhlcDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, yRangeMode) {\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }\r\n if (yRangeMode === void 0) { yRangeMode = YRangeMode_1.EYRangeMode.Visible; }\r\n var _a = this.getOHLCValues(dataSeriesValueType), closeValues = _a.closeValues, highValues = _a.highValues, lowValues = _a.lowValues;\r\n if (this.count() === 1) {\r\n var y = closeValues.get(0);\r\n return new NumberRange_1.NumberRange(y, y);\r\n }\r\n var indicesRange = isXCategoryAxis\r\n ? xRange\r\n : this.getIndicesRange(xRange, false, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);\r\n var yMin = Number.MAX_VALUE;\r\n var yMax = Number.MIN_VALUE;\r\n var iMin = Math.max(indicesRange.min, 0);\r\n var iMax = Math.min(indicesRange.max, this.count() - 1);\r\n if (iMax < iMin) {\r\n return undefined;\r\n }\r\n for (var i = iMin; i <= iMax; i++) {\r\n var highVal = highValues.get(i);\r\n var lowVal = lowValues.get(i);\r\n if (lowVal < yMin) {\r\n yMin = lowVal;\r\n }\r\n if (highVal > yMax) {\r\n yMax = highVal;\r\n }\r\n }\r\n return new NumberRange_1.NumberRange(yMin, yMax);\r\n };\r\n /** @inheritDoc */\r\n OhlcDataSeries.prototype.createAnimationVectors = function () {\r\n _super.prototype.createAnimationVectors.call(this);\r\n this.openInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.highInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.lowInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.openFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.highFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.lowFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n OhlcDataSeries.prototype.setInitialAnimationVectors = function (dataSeries) {\r\n _super.prototype.setInitialAnimationVectors.call(this, dataSeries);\r\n if (!dataSeries) {\r\n this.openInitialAnimationValues.resize(0, 0);\r\n this.highInitialAnimationValues.resize(0, 0);\r\n this.lowInitialAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeOpenValues(), this.openInitialAnimationValues, this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeHighValues(), this.highInitialAnimationValues, this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeLowValues(), this.lowInitialAnimationValues, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n OhlcDataSeries.prototype.setFinalAnimationVectors = function (dataSeries) {\r\n _super.prototype.setFinalAnimationVectors.call(this, dataSeries);\r\n if (!dataSeries) {\r\n this.openFinalAnimationValues.resize(0, 0);\r\n this.highFinalAnimationValues.resize(0, 0);\r\n this.lowFinalAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeOpenValues(), this.openFinalAnimationValues, this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeHighValues(), this.highFinalAnimationValues, this.webAssemblyContext);\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeLowValues(), this.lowFinalAnimationValues, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n OhlcDataSeries.prototype.validateAnimationVectors = function () {\r\n var size = this.xInitialAnimationValues.size();\r\n if (size !== this.yInitialAnimationValues.size() ||\r\n size !== this.openInitialAnimationValues.size() ||\r\n size !== this.highInitialAnimationValues.size() ||\r\n size !== this.lowInitialAnimationValues.size() ||\r\n size !== this.xFinalAnimationValues.size() ||\r\n size !== this.yFinalAnimationValues.size() ||\r\n size !== this.openFinalAnimationValues.size() ||\r\n size !== this.highFinalAnimationValues.size() ||\r\n size !== this.lowFinalAnimationValues.size()) {\r\n throw Error(\"initialAnimationValues and finalAnimationValues must have the same length\");\r\n }\r\n };\r\n /** @inheritDoc */\r\n OhlcDataSeries.prototype.updateAnimationProperties = function (progress, animation) {\r\n _super.prototype.updateAnimationProperties.call(this, progress, animation);\r\n if (animation.isOnStartAnimation) {\r\n animation.calculateAnimationValues(this.webAssemblyContext, this.openFinalAnimationValues, this.getNativeOpenValues(), progress);\r\n animation.calculateAnimationValues(this.webAssemblyContext, this.highFinalAnimationValues, this.getNativeHighValues(), progress);\r\n animation.calculateAnimationValues(this.webAssemblyContext, this.lowFinalAnimationValues, this.getNativeLowValues(), progress);\r\n }\r\n else if (animation.isDataSeriesAnimation) {\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.openInitialAnimationValues, this.openFinalAnimationValues, this.getNativeOpenValues(), progress);\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.highInitialAnimationValues, this.highFinalAnimationValues, this.getNativeHighValues(), progress);\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.lowInitialAnimationValues, this.lowFinalAnimationValues, this.getNativeLowValues(), progress);\r\n }\r\n };\r\n /** @inheritDoc */\r\n OhlcDataSeries.prototype.getOptions = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.getOptions.call(this, excludeData);\r\n if (!excludeData) {\r\n var dataSize = this.count();\r\n var xValues = new Array(dataSize);\r\n var openValues = new Array(dataSize);\r\n var highValues = new Array(dataSize);\r\n var lowValues = new Array(dataSize);\r\n var closeValues = new Array(dataSize);\r\n if (this.fifoCapacity && this.fifoSweeping) {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.getRaw(i);\r\n openValues[i] = this.openValues.getRaw(i);\r\n closeValues[i] = this.yValues.getRaw(i);\r\n highValues[i] = this.highValues.getRaw(i);\r\n lowValues[i] = this.lowValues.getRaw(i);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.get(i);\r\n openValues[i] = this.openValues.get(i);\r\n closeValues[i] = this.yValues.get(i);\r\n highValues[i] = this.highValues.get(i);\r\n lowValues[i] = this.lowValues.get(i);\r\n }\r\n }\r\n var options = {\r\n xValues: xValues,\r\n openValues: openValues,\r\n highValues: highValues,\r\n lowValues: lowValues,\r\n closeValues: closeValues\r\n };\r\n Object.assign(json, options);\r\n }\r\n return json;\r\n };\r\n OhlcDataSeries.prototype.reserve = function (size) {\r\n _super.prototype.reserve.call(this, size);\r\n this.openValues.reserve(size);\r\n this.highValues.reserve(size);\r\n this.lowValues.reserve(size);\r\n };\r\n OhlcDataSeries.prototype.getOHLCValues = function (dataSeriesValueType) {\r\n var openValues;\r\n var highValues;\r\n var lowValues;\r\n var closeValues;\r\n switch (dataSeriesValueType) {\r\n case IDataSeries_1.EDataSeriesValueType.FinalAnimationValues:\r\n openValues = this.openFinalAnimationValues;\r\n highValues = this.highFinalAnimationValues;\r\n lowValues = this.lowFinalAnimationValues;\r\n closeValues = this.yFinalAnimationValues;\r\n break;\r\n case IDataSeries_1.EDataSeriesValueType.InitialAnimationValues:\r\n openValues = this.openInitialAnimationValues;\r\n highValues = this.highInitialAnimationValues;\r\n lowValues = this.lowInitialAnimationValues;\r\n closeValues = this.yInitialAnimationValues;\r\n break;\r\n default:\r\n openValues = this.openValues;\r\n highValues = this.highValues;\r\n lowValues = this.lowValues;\r\n closeValues = this.yValues;\r\n }\r\n return { openValues: openValues, highValues: highValues, lowValues: lowValues, closeValues: closeValues };\r\n };\r\n return OhlcDataSeries;\r\n}(BaseDataSeries_1.BaseDataSeries));\r\nexports.OhlcDataSeries = OhlcDataSeries;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PaletteFactory = void 0;\r\nvar PaletteProviderType_1 = require(\"../../types/PaletteProviderType\");\r\nvar colorUtil_1 = require(\"../../utils/colorUtil\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar IPaletteProvider_1 = require(\"./IPaletteProvider\");\r\n/**\r\n * The PaletteFactory allows easy creation of palettes for some chart types\r\n */\r\nvar PaletteFactory = /** @class */ (function () {\r\n function PaletteFactory() {\r\n }\r\n /**\r\n * Creates a multi purpose Gradient Palette for line series, scatter, bubble or column and mountain series returning\r\n * an {@link IPaletteProvider} implementation which\r\n * colors data-points of charts depending on the x-index of the data according to the Gradient Brush passed in\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * @param gradientBrush the {@link GradientParams} containing information about the Gradient Brush\r\n * @param options the {@link IGradientPaletteOptions} containing additional options to turn stroke, fill or pointmarker sections on or off, and opacity per option\r\n */\r\n PaletteFactory.createGradient = function (webAssemblyContext, gradientBrush, options) {\r\n // TODO (Andrew): Adjust createGradient to modify the output based on start/end point of gradient brush\r\n var xFactor = gradientBrush.endPoint.x - gradientBrush.startPoint.x;\r\n var yFactor = gradientBrush.endPoint.y - gradientBrush.startPoint.y;\r\n var colorData = PaletteFactory.createColorMap(webAssemblyContext, gradientBrush.gradientStops.slice(0));\r\n var renderSeries;\r\n var doFunc = function (xValue, yValue, index, opacity) {\r\n if (opacity === void 0) { opacity = 1; }\r\n var count = renderSeries.getDataSeriesValuesCount();\r\n var lerpFactor = index / (count - 1);\r\n var mapIndex = webAssemblyContext.NumberUtil.Constrain(Math.round(lerpFactor * (colorData.length - 1)), 0, colorData.length - 1);\r\n var result = colorData[mapIndex];\r\n // console.log(\"GradientPalette called!\");\r\n // console.log(`mapIndex is ${mapIndex}, colorData.length is ${colorData.length}`);\r\n // console.log(`count is ${count}, lerp is ${lerpFactor}. result is ${result}`);\r\n return (0, colorUtil_1.uintArgbColorMultiplyOpacity)(result, opacity);\r\n };\r\n var hasStroke = options === undefined || (options === null || options === void 0 ? void 0 : options.enableStroke) === true;\r\n var hasFill = (options === null || options === void 0 ? void 0 : options.enableFill) === true;\r\n var hasMarker = (options === null || options === void 0 ? void 0 : options.enablePointMarkers) === true;\r\n var palette = {\r\n strokePaletteMode: IPaletteProvider_1.EStrokePaletteMode.GRADIENT,\r\n fillPaletteMode: IPaletteProvider_1.EFillPaletteMode.GRADIENT,\r\n onAttached: function (parentSeries) {\r\n renderSeries = parentSeries;\r\n },\r\n onDetached: function () { },\r\n overrideStrokeArgb: function (xValue, yValue, index) {\r\n var _a;\r\n return hasStroke ? doFunc(xValue, yValue, index, (_a = options === null || options === void 0 ? void 0 : options.strokeOpacity) !== null && _a !== void 0 ? _a : 1) : undefined;\r\n },\r\n overrideFillArgb: function (xValue, yValue, index, opacity, metadata) {\r\n var _a;\r\n return hasFill ? doFunc(xValue, yValue, index, (_a = options === null || options === void 0 ? void 0 : options.fillOpacity) !== null && _a !== void 0 ? _a : 1) : undefined;\r\n },\r\n overridePointMarkerArgb: function (xValue, yValue, index, opacity, metadata) {\r\n var _a;\r\n var markerOpacity = (_a = options === null || options === void 0 ? void 0 : options.pointMarkerOpacity) !== null && _a !== void 0 ? _a : 1;\r\n return hasMarker\r\n ? {\r\n fill: doFunc(xValue, yValue, index, markerOpacity),\r\n stroke: doFunc(xValue, yValue, index, markerOpacity)\r\n }\r\n : undefined;\r\n },\r\n toJSON: function () {\r\n return { type: PaletteProviderType_1.EPaletteProviderType.Gradient, options: gradientBrush };\r\n }\r\n };\r\n return palette;\r\n };\r\n PaletteFactory.createYGradient = function (webAssemblyContext, gradientBrush, yRange, options) {\r\n var colorData = PaletteFactory.createColorMap(webAssemblyContext, gradientBrush.gradientStops.slice(0));\r\n var renderSeries;\r\n var doFunc = function (yValue, opacity) {\r\n if (opacity === void 0) { opacity = 1; }\r\n var lerpFactor = (yValue - yRange.min) / yRange.diff;\r\n var mapIndex = webAssemblyContext.NumberUtil.Constrain(Math.round(lerpFactor * (colorData.length - 1)), 0, colorData.length - 1);\r\n var result = colorData[mapIndex];\r\n return (0, colorUtil_1.uintArgbColorMultiplyOpacity)(result, opacity);\r\n };\r\n var hasStroke = options === undefined || (options === null || options === void 0 ? void 0 : options.enableStroke) === true;\r\n var hasFill = (options === null || options === void 0 ? void 0 : options.enableFill) === true;\r\n var hasMarker = (options === null || options === void 0 ? void 0 : options.enablePointMarkers) === true;\r\n var palette = {\r\n strokePaletteMode: IPaletteProvider_1.EStrokePaletteMode.GRADIENT,\r\n fillPaletteMode: IPaletteProvider_1.EFillPaletteMode.GRADIENT,\r\n onAttached: function (parentSeries) {\r\n renderSeries = parentSeries;\r\n },\r\n onDetached: function () { },\r\n overrideStrokeArgb: function (xValue, yValue, index) {\r\n var _a;\r\n return hasStroke ? doFunc(yValue, (_a = options === null || options === void 0 ? void 0 : options.strokeOpacity) !== null && _a !== void 0 ? _a : 1) : undefined;\r\n },\r\n overrideFillArgb: function (xValue, yValue, index, opacity, metadata) {\r\n var _a;\r\n return hasFill ? doFunc(yValue, (_a = options === null || options === void 0 ? void 0 : options.strokeOpacity) !== null && _a !== void 0 ? _a : 1) : undefined;\r\n },\r\n overridePointMarkerArgb: function (xValue, yValue, index, opacity, metadata) {\r\n var _a;\r\n var markerOpacity = (_a = options === null || options === void 0 ? void 0 : options.pointMarkerOpacity) !== null && _a !== void 0 ? _a : 1;\r\n return hasMarker\r\n ? {\r\n fill: doFunc(yValue, markerOpacity),\r\n stroke: doFunc(yValue, markerOpacity)\r\n }\r\n : undefined;\r\n },\r\n toJSON: function () {\r\n return { type: PaletteProviderType_1.EPaletteProviderType.Gradient, options: gradientBrush };\r\n }\r\n };\r\n return palette;\r\n };\r\n PaletteFactory.createColorMap = function (webAssemblyContext, gradientStops) {\r\n var colorMap = [];\r\n var count = gradientStops.length;\r\n var first = gradientStops[0].offset;\r\n var last = gradientStops[gradientStops.length - 1].offset;\r\n var diff = last - first;\r\n var change = diff / (PaletteFactory.precision - 1);\r\n var prevColor = (0, parseColor_1.parseColorToUIntArgb)(gradientStops[0].color);\r\n var prevOffset = gradientStops[0].offset;\r\n var nextColor = prevColor;\r\n var nextOffset = prevOffset;\r\n if (count > 1) {\r\n nextColor = (0, parseColor_1.parseColorToUIntArgb)(gradientStops[1].color);\r\n nextOffset = gradientStops[1].offset;\r\n }\r\n diff = nextOffset - prevOffset;\r\n // console.log(`prev: ${prevColor}, ${toHex(prevColor)} @ ${prevOffset}`);\r\n // console.log(`next: ${nextColor}, ${toHex(nextColor)} @ ${nextOffset}`);\r\n var offsetInd = 0;\r\n for (var i = 0; i < PaletteFactory.precision; ++i) {\r\n var offset = first + i * change;\r\n // console.log(`offset: ${offset}`);\r\n if (offset >= nextOffset) {\r\n offsetInd++;\r\n prevOffset = nextOffset;\r\n prevColor = nextColor;\r\n if (offsetInd + 1 < count) {\r\n nextColor = (0, parseColor_1.parseColorToUIntArgb)(gradientStops[offsetInd + 1].color);\r\n nextOffset = gradientStops[offsetInd + 1].offset;\r\n }\r\n diff = nextOffset - prevOffset;\r\n }\r\n var color = 0;\r\n if (prevColor === nextColor || diff <= 0.00000000001) {\r\n color = nextColor;\r\n }\r\n else {\r\n var coef = (offset - prevOffset) / diff;\r\n // console.log(`prev: ${prevColor}, ${toHex(prevColor)} @ ${prevOffset}`);\r\n // console.log(`next: ${nextColor}, ${toHex(nextColor)} @ ${nextOffset}`);\r\n // console.log(`coef: ${coef}`);\r\n color = webAssemblyContext.NumberUtil.LinearInterpolateI(prevColor, nextColor, coef);\r\n }\r\n colorMap.push(color);\r\n }\r\n return colorMap;\r\n };\r\n PaletteFactory.precision = 500;\r\n return PaletteFactory;\r\n}());\r\nexports.PaletteFactory = PaletteFactory;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BasePointSeriesResampled = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar BasePointSeriesResampled = /** @class */ (function (_super) {\r\n __extends(BasePointSeriesResampled, _super);\r\n function BasePointSeriesResampled(wasmContext, xRange) {\r\n var _this = _super.call(this) || this;\r\n _this.resampled = true;\r\n _this.wasmContext = wasmContext;\r\n _this.intIndexes = new wasmContext.IntVector();\r\n _this.indexes = new wasmContext.SCRTDoubleVector();\r\n _this.xValues = new wasmContext.SCRTDoubleVector();\r\n _this.yValues = new wasmContext.SCRTDoubleVector();\r\n _this.xRange = xRange;\r\n return _this;\r\n }\r\n Object.defineProperty(BasePointSeriesResampled.prototype, \"count\", {\r\n get: function () {\r\n return this.xValues.size();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BasePointSeriesResampled.prototype.delete = function () {\r\n this.intIndexes.delete();\r\n this.indexes.delete();\r\n this.xValues.delete();\r\n this.yValues.delete();\r\n this.wasmContext = undefined;\r\n };\r\n BasePointSeriesResampled.prototype.clearIntIndexes = function () {\r\n this.intIndexes.clear();\r\n };\r\n BasePointSeriesResampled.prototype.debugOutputForUnitTests = function () {\r\n console.log(\"points count \".concat(this.count));\r\n console.log(\"xResampled at min\", this.xValues.get(0));\r\n console.log(\"openResampled at min\", this.yValues.get(0));\r\n var middle = Math.round(this.count / 2);\r\n console.log(\"middle\", middle);\r\n console.log(\"xResampled at middle\", this.xValues.get(middle));\r\n console.log(\"yValues at middle\", this.yValues.get(middle));\r\n var end = this.count - 1;\r\n console.log(\"xResampled at end\", this.xValues.get(end));\r\n console.log(\"yValues at end\", this.yValues.get(end));\r\n };\r\n return BasePointSeriesResampled;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BasePointSeriesResampled = BasePointSeriesResampled;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BasePointSeriesWrapped = void 0;\r\nvar BasePointSeriesWrapped = /** @class */ (function () {\r\n function BasePointSeriesWrapped(dataSeries, yValues, valueType) {\r\n this.resampled = false;\r\n this.dataSeries = dataSeries;\r\n this.count = dataSeries.count();\r\n this.xValues = this.dataSeries.getXValues(valueType);\r\n this.yValues = yValues !== null && yValues !== void 0 ? yValues : this.dataSeries.getYValues(valueType);\r\n this.fifoStartIndex = dataSeries.fifoStartIndex;\r\n }\r\n Object.defineProperty(BasePointSeriesWrapped.prototype, \"indexes\", {\r\n get: function () {\r\n if (!this.indexesProperty) {\r\n this.indexesProperty = this.dataSeries.getNativeIndexes();\r\n }\r\n return this.indexesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BasePointSeriesWrapped;\r\n}());\r\nexports.BasePointSeriesWrapped = BasePointSeriesWrapped;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HlcPointSeriesWrapped = void 0;\r\nvar BasePointSeriesWrapped_1 = require(\"./BasePointSeriesWrapped\");\r\nvar HlcPointSeriesWrapped = /** @class */ (function (_super) {\r\n __extends(HlcPointSeriesWrapped, _super);\r\n function HlcPointSeriesWrapped(dataSeries) {\r\n var _this = _super.call(this, dataSeries) || this;\r\n _this.highValues = dataSeries.getNativeHighValues();\r\n _this.lowValues = dataSeries.getNativeLowValues();\r\n _this.closeValues = _this.yValues;\r\n return _this;\r\n }\r\n return HlcPointSeriesWrapped;\r\n}(BasePointSeriesWrapped_1.BasePointSeriesWrapped));\r\nexports.HlcPointSeriesWrapped = HlcPointSeriesWrapped;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcPointSeriesResampled = void 0;\r\nvar BasePointSeriesResampled_1 = require(\"./BasePointSeriesResampled\");\r\nvar OhlcPointSeriesResampled = /** @class */ (function (_super) {\r\n __extends(OhlcPointSeriesResampled, _super);\r\n function OhlcPointSeriesResampled(wasmContext, xRange) {\r\n var _this = _super.call(this, wasmContext, xRange) || this;\r\n _this.openValues = new wasmContext.SCRTDoubleVector();\r\n _this.highValues = new wasmContext.SCRTDoubleVector();\r\n _this.lowValues = new wasmContext.SCRTDoubleVector();\r\n _this.closeValues = _this.yValues;\r\n return _this;\r\n }\r\n OhlcPointSeriesResampled.prototype.delete = function () {\r\n this.openValues.delete();\r\n this.highValues.delete();\r\n this.lowValues.delete();\r\n _super.prototype.delete.call(this);\r\n };\r\n OhlcPointSeriesResampled.prototype.debugOutputForUnitTests = function () {\r\n console.log(\"points count \".concat(this.count));\r\n console.log(\"xResampled at min\", this.xValues.get(0));\r\n console.log(\"openResampled at min\", this.openValues.get(0));\r\n console.log(\"highResampled at min\", this.highValues.get(0));\r\n console.log(\"lowResampled at min\", this.lowValues.get(0));\r\n console.log(\"closeResampled at min\", this.closeValues.get(0));\r\n var middle = Math.round(this.count / 2);\r\n console.log(\"middle\", middle);\r\n console.log(\"xResampled at middle\", this.xValues.get(middle));\r\n console.log(\"openResampled at middle\", this.openValues.get(middle));\r\n console.log(\"highResampled at middle\", this.highValues.get(middle));\r\n console.log(\"lowResampled at middle\", this.lowValues.get(middle));\r\n console.log(\"closeResampled at middle\", this.closeValues.get(middle));\r\n var end = this.count - 1;\r\n console.log(\"xResampled at end\", this.xValues.get(end));\r\n console.log(\"openResampled at end\", this.openValues.get(end));\r\n console.log(\"highResampled at end\", this.highValues.get(end));\r\n console.log(\"lowResampled at end\", this.lowValues.get(end));\r\n console.log(\"closeResampled at end\", this.closeValues.get(end));\r\n };\r\n return OhlcPointSeriesResampled;\r\n}(BasePointSeriesResampled_1.BasePointSeriesResampled));\r\nexports.OhlcPointSeriesResampled = OhlcPointSeriesResampled;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcPointSeriesWrapped = void 0;\r\nvar BasePointSeriesWrapped_1 = require(\"./BasePointSeriesWrapped\");\r\nvar OhlcPointSeriesWrapped = /** @class */ (function (_super) {\r\n __extends(OhlcPointSeriesWrapped, _super);\r\n function OhlcPointSeriesWrapped(dataSeries) {\r\n var _this = _super.call(this, dataSeries) || this;\r\n _this.openValues = dataSeries.getNativeOpenValues();\r\n _this.highValues = dataSeries.getNativeHighValues();\r\n _this.lowValues = dataSeries.getNativeLowValues();\r\n _this.closeValues = _this.yValues;\r\n return _this;\r\n }\r\n return OhlcPointSeriesWrapped;\r\n}(BasePointSeriesWrapped_1.BasePointSeriesWrapped));\r\nexports.OhlcPointSeriesWrapped = OhlcPointSeriesWrapped;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyPointSeriesResampled = void 0;\r\nvar BasePointSeriesResampled_1 = require(\"./BasePointSeriesResampled\");\r\nvar XyPointSeriesResampled = /** @class */ (function (_super) {\r\n __extends(XyPointSeriesResampled, _super);\r\n function XyPointSeriesResampled(wasmContext, xRange) {\r\n return _super.call(this, wasmContext, xRange) || this;\r\n }\r\n return XyPointSeriesResampled;\r\n}(BasePointSeriesResampled_1.BasePointSeriesResampled));\r\nexports.XyPointSeriesResampled = XyPointSeriesResampled;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyPointSeriesWrapped = void 0;\r\nvar BasePointSeriesWrapped_1 = require(\"./BasePointSeriesWrapped\");\r\nvar XyPointSeriesWrapped = /** @class */ (function (_super) {\r\n __extends(XyPointSeriesWrapped, _super);\r\n function XyPointSeriesWrapped(dataSeries, yValues, valueType) {\r\n return _super.call(this, dataSeries, yValues, valueType) || this;\r\n }\r\n return XyPointSeriesWrapped;\r\n}(BasePointSeriesWrapped_1.BasePointSeriesWrapped));\r\nexports.XyPointSeriesWrapped = XyPointSeriesWrapped;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyyPointSeriesResampled = void 0;\r\nvar BasePointSeriesResampled_1 = require(\"./BasePointSeriesResampled\");\r\nvar XyyPointSeriesResampled = /** @class */ (function (_super) {\r\n __extends(XyyPointSeriesResampled, _super);\r\n function XyyPointSeriesResampled(wasmContext, xRange) {\r\n var _this = _super.call(this, wasmContext, xRange) || this;\r\n _this.y1Values = new wasmContext.SCRTDoubleVector();\r\n return _this;\r\n }\r\n XyyPointSeriesResampled.prototype.delete = function () {\r\n this.y1Values.delete();\r\n _super.prototype.delete.call(this);\r\n };\r\n XyyPointSeriesResampled.prototype.debugOutputForUnitTests = function () {\r\n console.log(\"points count \".concat(this.count));\r\n console.log(\"xResampled at min\", this.xValues.get(0));\r\n console.log(\"yValues at min\", this.yValues.get(0));\r\n console.log(\"y1Values at min\", this.y1Values.get(0));\r\n var middle = Math.round(this.count / 2);\r\n console.log(\"middle\", middle);\r\n console.log(\"xResampled at middle\", this.xValues.get(middle));\r\n console.log(\"yValues at middle\", this.yValues.get(middle));\r\n console.log(\"y1Values at middle\", this.y1Values.get(middle));\r\n var end = this.count - 1;\r\n console.log(\"xResampled at end\", this.xValues.get(end));\r\n console.log(\"yValues at end\", this.yValues.get(end));\r\n console.log(\"y1Values at end\", this.y1Values.get(end));\r\n };\r\n return XyyPointSeriesResampled;\r\n}(BasePointSeriesResampled_1.BasePointSeriesResampled));\r\nexports.XyyPointSeriesResampled = XyyPointSeriesResampled;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyyPointSeriesWrapped = void 0;\r\nvar BasePointSeriesWrapped_1 = require(\"./BasePointSeriesWrapped\");\r\nvar XyyPointSeriesWrapped = /** @class */ (function (_super) {\r\n __extends(XyyPointSeriesWrapped, _super);\r\n function XyyPointSeriesWrapped(dataSeries, yValues, y1Values) {\r\n var _this = _super.call(this, dataSeries, yValues) || this;\r\n _this.y1Values = y1Values !== null && y1Values !== void 0 ? y1Values : dataSeries.getNativeY1Values();\r\n return _this;\r\n }\r\n return XyyPointSeriesWrapped;\r\n}(BasePointSeriesWrapped_1.BasePointSeriesWrapped));\r\nexports.XyyPointSeriesWrapped = XyyPointSeriesWrapped;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyzPointSeriesWrapped = void 0;\r\nvar BasePointSeriesWrapped_1 = require(\"./BasePointSeriesWrapped\");\r\nvar XyzPointSeriesWrapped = /** @class */ (function (_super) {\r\n __extends(XyzPointSeriesWrapped, _super);\r\n function XyzPointSeriesWrapped(dataSeries) {\r\n var _this = _super.call(this, dataSeries) || this;\r\n _this.zValues = dataSeries.getNativeZValues();\r\n return _this;\r\n }\r\n return XyzPointSeriesWrapped;\r\n}(BasePointSeriesWrapped_1.BasePointSeriesWrapped));\r\nexports.XyzPointSeriesWrapped = XyzPointSeriesWrapped;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniformHeatmapDataSeries = void 0;\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar BaseHeatmapDataSeries_1 = require(\"./BaseHeatmapDataSeries\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\nvar UniformHeatmapDataSeries = /** @class */ (function (_super) {\r\n __extends(UniformHeatmapDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link UniformHeatmapDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IUniformHeatmapSeriesOptions} which must be passed to configure the series\r\n */\r\n function UniformHeatmapDataSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = IDataSeries_1.EDataSeriesType.HeatmapUniform;\r\n _this.xStartProperty = options.xStart;\r\n _this.xStepProperty = options.xStep;\r\n _this.yStartProperty = options.yStart;\r\n _this.yStepProperty = options.yStep;\r\n _this.xRangeProperty = new NumberRange_1.NumberRange(_this.xStart, _this.getXValue(_this.arrayWidth));\r\n _this.yRangeProperty = new NumberRange_1.NumberRange(_this.yStart, _this.getYValue(_this.arrayHeight));\r\n return _this;\r\n }\r\n Object.defineProperty(UniformHeatmapDataSeries.prototype, \"xStart\", {\r\n /**\r\n * xStart defines the Start point on the {@link AxisBase2D| XAxis} where this heatmap will be drawn\r\n */\r\n get: function () {\r\n return this.xStartProperty;\r\n },\r\n /**\r\n * xStart defines the Start point on the {@link AxisBase2D| XAxis} where this heatmap will be drawn\r\n */\r\n set: function (value) {\r\n this.xStartProperty = value;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformHeatmapDataSeries.prototype, \"xStep\", {\r\n /**\r\n * xStep defines Step on the {@link AxisBase2D| XAxis} for each cell in the heatmap\r\n */\r\n get: function () {\r\n return this.xStepProperty;\r\n },\r\n /**\r\n * xStep defines Step on the {@link AxisBase2D| XAxis} for each cell in the heatmap\r\n */\r\n set: function (value) {\r\n this.xStepProperty = value;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformHeatmapDataSeries.prototype, \"yStart\", {\r\n /**\r\n * yStart defines the Start point on the {@link AxisBase2D| YAxis} where this heatmap will be drawn\r\n */\r\n get: function () {\r\n return this.yStartProperty;\r\n },\r\n /**\r\n * yStart defines the Start point on the {@link AxisBase2D| YAxis} where this heatmap will be drawn\r\n */\r\n set: function (value) {\r\n this.yStartProperty = value;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformHeatmapDataSeries.prototype, \"yStep\", {\r\n /**\r\n * yStep defines Step on the {@link AxisBase2D| YAxis} for each cell in the heatmap\r\n */\r\n get: function () {\r\n return this.yStepProperty;\r\n },\r\n /**\r\n * yStep defines Step on the {@link AxisBase2D| YAxis} for each cell in the heatmap\r\n */\r\n set: function (value) {\r\n this.yStepProperty = value;\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets the X-value at the specified index. This will be computed from constructor parameters xStep and xStart\r\n * @param xIndex\r\n */\r\n UniformHeatmapDataSeries.prototype.getXValue = function (xIndex) {\r\n var offset = this.xStep * xIndex;\r\n return this.xStart + offset;\r\n };\r\n /**\r\n * Gets the Y-value at the specified index. This will be computed from constructor parameters yStep and yxStart\r\n * @param xIndex\r\n */\r\n UniformHeatmapDataSeries.prototype.getYValue = function (yIndex) {\r\n var offset = this.yStep * yIndex;\r\n return this.yStart + offset;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapDataSeries.prototype.notifyDataChanged = function (updateType, data) {\r\n this.xRangeProperty = new NumberRange_1.NumberRange(this.xStart, this.getXValue(this.arrayWidth));\r\n this.yRangeProperty = new NumberRange_1.NumberRange(this.yStart, this.getYValue(this.arrayHeight));\r\n _super.prototype.notifyDataChanged.call(this, updateType, data);\r\n };\r\n UniformHeatmapDataSeries.prototype.getOptions = function (excludeData) {\r\n var baseOptions = _super.prototype.getOptions.call(this, excludeData);\r\n var options = {\r\n xStart: this.xStart,\r\n xStep: this.xStep,\r\n yStart: this.yStart,\r\n yStep: this.yStep\r\n };\r\n return Object.assign(baseOptions, options);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapDataSeries.prototype.getXRange = function () {\r\n return this.xRangeProperty;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapDataSeries.prototype.getYRange = function () {\r\n return this.yRangeProperty;\r\n };\r\n return UniformHeatmapDataSeries;\r\n}(BaseHeatmapDataSeries_1.BaseHeatmapDataSeries));\r\nexports.UniformHeatmapDataSeries = UniformHeatmapDataSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyDataSeries = void 0;\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberArray_1 = require(\"../../types/NumberArray\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\nvar BaseDataSeries_1 = require(\"./BaseDataSeries\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\n/**\r\n * @summary XyDataSeries is a DataSeries for holding X, Y data in SciChart's 2D\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @description\r\n * The XyDataSeries is primarily used with our {@link FastLineRenderableSeries | JavaScript Line Chart},\r\n * but can also be used by the {@link XyScatterRenderableSeries | JavaScript Scatter Chart} or\r\n * {@link FastMountainRenderableSeries | JavaScript Mountain/Area Chart} and {@link FastMountainRenderableSeries | JavaScript Column Chart}.\r\n *\r\n * To instantiate an {@link XyDataSeries}, use the following code:\r\n * ```ts\r\n * const xyDataSeries = new XyDataSeries(wasmContext);\r\n * xyDataSeries.append(1, 2); // Append a single x,y point\r\n * xyDataSeries.appendRange([3, 4], [3, 4]); // Append multiple x,y points (faster)\r\n * xyDataSeries.insert(0, 9, 10); // Insert a point at index 0\r\n * xyDataSeries.update(0, 11, 12); // Update a point at index 0\r\n * xyDataSeries.removeAt(0); // Remove a point at index 0\r\n * xyDataSeries.clear(); // Clear the dataseries\r\n * xyDataSeries.delete(); // Delete the dataseries and native (WebAssembly) memory\r\n * ```\r\n * @remarks\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseDataSeries} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.\r\n */\r\nvar XyDataSeries = /** @class */ (function (_super) {\r\n __extends(XyDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link XyDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 WebAssembly rendering engine\r\n * @param options the {@link IXyDataSeriesOptions} which can be passed to configure the DataSeries at construct time\r\n */\r\n function XyDataSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = IDataSeries_1.EDataSeriesType.Xy;\r\n if (options === null || options === void 0 ? void 0 : options.xValues) {\r\n Guard_1.Guard.notNull(options.yValues, \"options.yValues\");\r\n _this.appendRange(options.xValues, options.yValues, options.metadata);\r\n if ((options === null || options === void 0 ? void 0 : options.fifoCapacity) && (options === null || options === void 0 ? void 0 : options.fifoStartIndex)) {\r\n _this.xValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.yValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n }\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Appends a single X, Y point to the DataSeries\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link appendRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param x The X-value\r\n * @param y The Y-value\r\n * @param metadata The point metadata\r\n */\r\n XyDataSeries.prototype.append = function (x, y, metadata) {\r\n if (!this.getIsDeleted()) {\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, [x], [y]);\r\n // Push metadata should be done before push x values\r\n this.appendMetadata(metadata);\r\n nativeX.push_back(x);\r\n this.getNativeYValues().push_back(y);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, 1);\r\n }\r\n };\r\n /**\r\n * Appends a range of X, Y points to the DataSeries\r\n * @remarks\r\n * This method is considerably higher performance than {@link append} which appends a single point\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param xValues The X-values\r\n * @param yValues The Y-values\r\n * @param metadata The array of point metadata\r\n */\r\n XyDataSeries.prototype.appendRange = function (xValues, yValues, metadata) {\r\n var _a;\r\n if (!this.getIsDeleted()) {\r\n var startMark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.DataUpdateStart, { contextId: this.id });\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", yValues, \"yValues\");\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, xValues, yValues);\r\n // Push metadata should be done before push x values\r\n this.appendMetadataRange(metadata, xValues.length);\r\n // New implementation passing array from JS\r\n // TODO: create indexValues from c++\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeX, xValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeY, yValues);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, xValues.length);\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.DataUpdateEnd, {\r\n relatedId: (_a = startMark === null || startMark === void 0 ? void 0 : startMark.detail) === null || _a === void 0 ? void 0 : _a.relatedId,\r\n contextId: this.id\r\n });\r\n }\r\n };\r\n /**\r\n * Updates a single Y-value by X-index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param y The new Y value\r\n * @param metadata The point metadata\r\n */\r\n XyDataSeries.prototype.update = function (index, y, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, undefined, undefined, [y], index);\r\n this.getNativeYValues().set(index, y);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Updates a single X, Y-value by X-index. Might also need to set isSorted = false\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index The index to update\r\n * @param x The new X value\r\n * @param y The new Y value\r\n * @param metadata The point metadata\r\n */\r\n XyDataSeries.prototype.updateXy = function (index, x, y, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, nativeX, [x], [y], index);\r\n nativeX.set(index, x);\r\n this.getNativeYValues().set(index, y);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * @summary Inserts a single X,Y value at the start index\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link insertRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param x the X value\r\n * @param y the Y value\r\n * @param metadata The point metadata\r\n */\r\n XyDataSeries.prototype.insert = function (startIndex, x, y, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insert\");\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, [x], [y], startIndex);\r\n nativeX.insertAt(startIndex, x);\r\n nativeY.insertAt(startIndex, y);\r\n this.insertMetadata(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, 1);\r\n }\r\n };\r\n /**\r\n * @summary Inserts a range of X,Y values at the startIndex\r\n * @remarks\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param xValues the XValues\r\n * @param yValues the YValues\r\n * @param metadata The array of point metadata\r\n */\r\n XyDataSeries.prototype.insertRange = function (startIndex, xValues, yValues, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", yValues, \"yValues\");\r\n this.throwIfFifo(\"insertRange\");\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, xValues, yValues, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, xValues, this.getNativeXValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, yValues, this.getNativeYValues(), startIndex);\r\n this.insertMetadataRange(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, xValues.length);\r\n }\r\n };\r\n /**\r\n * Removes an X,Y value at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to remove at\r\n */\r\n XyDataSeries.prototype.removeAt = function (index) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.throwIfFifo(\"removeAt\");\r\n this.getNativeXValues().removeAt(index);\r\n this.getNativeYValues().removeAt(index);\r\n this.removeMetadataAt(index);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, index, 1);\r\n }\r\n };\r\n /**\r\n * @summary Removes a range of X,Y values at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the start index to remove at\r\n * @param count the number of points to remove\r\n */\r\n XyDataSeries.prototype.removeRange = function (startIndex, count) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"removeRange\");\r\n this.getNativeXValues().removeRange(startIndex, count);\r\n this.getNativeYValues().removeRange(startIndex, count);\r\n this.removeMetadataRange(startIndex, count);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, startIndex, count);\r\n }\r\n };\r\n /**\r\n * Clears the entire DataSeries.\r\n * @remarks\r\n * Note this does not free memory, WebAssembly/Native memory is released by calling {@link delete}, after which the\r\n * DataSeries is no longer usable.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n */\r\n XyDataSeries.prototype.clear = function () {\r\n if (!this.getIsDeleted()) {\r\n _super.prototype.clear.call(this);\r\n this.getNativeXValues().clear();\r\n this.getNativeYValues().clear();\r\n this.setMetadata(undefined);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);\r\n }\r\n };\r\n XyDataSeries.prototype.getOptions = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.getOptions.call(this, excludeData);\r\n if (!excludeData) {\r\n var dataSize = this.count();\r\n var xValues = new Array(dataSize);\r\n var yValues = new Array(dataSize);\r\n if (this.fifoCapacity && this.fifoSweeping) {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.getRaw(i);\r\n yValues[i] = this.yValues.getRaw(i);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.get(i);\r\n yValues[i] = this.yValues.get(i);\r\n }\r\n }\r\n var options = {\r\n xValues: xValues,\r\n yValues: yValues\r\n };\r\n Object.assign(json, options);\r\n }\r\n return json;\r\n };\r\n return XyDataSeries;\r\n}(BaseDataSeries_1.BaseDataSeries));\r\nexports.XyDataSeries = XyDataSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyTextDataSeries = void 0;\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberArray_1 = require(\"../../types/NumberArray\");\r\nvar array_1 = require(\"../../utils/array\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar BaseDataSeries_1 = require(\"./BaseDataSeries\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\nvar XyTextDataSeries = /** @class */ (function (_super) {\r\n __extends(XyTextDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link XyDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 WebAssembly rendering engine\r\n * @param options the {@link IXyDataSeriesOptions} which can be passed to configure the DataSeries at construct time\r\n */\r\n function XyTextDataSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = IDataSeries_1.EDataSeriesType.XyText;\r\n _this.textValuesProperty = [];\r\n if (options === null || options === void 0 ? void 0 : options.xValues) {\r\n Guard_1.Guard.notNull(options.yValues, \"options.yValues\");\r\n _this.appendRange(options.xValues, options.yValues, options.textValues, options.metadata);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(XyTextDataSeries.prototype, \"textValues\", {\r\n /** The text values for this series. Manipulate using append, insert, update etc on the XyTextDataSeries */\r\n get: function () {\r\n return this.textValuesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** Get the text value at an index, unwrapping the fifo buffer if fifoCapacity is set */\r\n XyTextDataSeries.prototype.getTextValue = function (index) {\r\n if (!this.fifoCapacity)\r\n return this.textValuesProperty[index];\r\n if (!this.fifoSweeping) {\r\n var fifoIndex = (this.xValues.getStartIndex() + index) % this.fifoCapacity;\r\n return this.textValuesProperty[fifoIndex];\r\n }\r\n else {\r\n if (this.fifoCapacity - index < this.fifoSweepingGap) {\r\n return \"\";\r\n }\r\n return this.textValuesProperty[index];\r\n }\r\n };\r\n /**\r\n * Appends a single X, Y, Text point to the DataSeries\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link appendRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param x The X-value\r\n * @param y The Y-value\r\n * @param text The text-value\r\n * @param metadata The point metadata\r\n */\r\n XyTextDataSeries.prototype.append = function (x, y, text, metadata) {\r\n if (!this.getIsDeleted()) {\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, [x], [y]);\r\n // Push metadata should be done before push x values\r\n this.appendMetadata(metadata);\r\n // Fifo text also before values as startIndex gets updated by nativeX push\r\n if (this.fifoCapacity && this.count() === this.fifoCapacity) {\r\n this.textValuesProperty[this.xValues.getStartIndex()] = text;\r\n }\r\n else {\r\n this.textValuesProperty.push(text);\r\n }\r\n nativeX.push_back(x);\r\n this.getNativeYValues().push_back(y);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, 1);\r\n }\r\n };\r\n /**\r\n * Appends a range of X, Y, Text points to the DataSeries\r\n * @remarks\r\n * This method is considerably higher performance than {@link append} which appends a single point\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param xValues The X-values\r\n * @param yValues The Y-values\r\n * @param textValues The text values\r\n * @param metadata The array of point metadata\r\n */\r\n XyTextDataSeries.prototype.appendRange = function (xValues, yValues, textValues, metadata) {\r\n var _a;\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", yValues, \"yValues\");\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, xValues, yValues);\r\n // Push metadata should be done before push x values\r\n this.appendMetadataRange(metadata, xValues.length);\r\n if (this.fifoCapacity) {\r\n (0, array_1.appendRangeFifo)(textValues, this.textValuesProperty, this.fifoCapacity, this.xValues.getStartIndex());\r\n }\r\n else {\r\n (_a = this.textValuesProperty).push.apply(_a, textValues);\r\n }\r\n // New implementation passing array from JS\r\n // TODO: create indexValues from c++\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeX, xValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeY, yValues);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, xValues.length);\r\n }\r\n };\r\n /**\r\n * Updates a single Y-value by X-index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param y The new Y value\r\n * @param text The new text value\r\n * @param metadata The point metadata\r\n */\r\n XyTextDataSeries.prototype.update = function (index, y, text, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, undefined, undefined, [y], index);\r\n this.getNativeYValues().set(index, y);\r\n this.textValuesProperty[index] = text;\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Updates a single X, Y, Text value, by X-index. Might also need to set isSorted = false\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index The index to update\r\n * @param x The new X value\r\n * @param y The new Y value\r\n * @param text The new text value\r\n * @param metadata The point metadata\r\n */\r\n XyTextDataSeries.prototype.updateXyText = function (index, x, y, text, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, nativeX, [x], [y], index);\r\n nativeX.set(index, x);\r\n this.getNativeYValues().set(index, y);\r\n this.textValuesProperty[index] = text;\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * @summary Inserts a single X,Y,Text value at the start index\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link insertRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param x the X value\r\n * @param y the Y value\r\n * @param text The new text value\r\n * @param metadata The point metadata\r\n */\r\n XyTextDataSeries.prototype.insert = function (startIndex, x, y, text, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insert\");\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, [x], [y], startIndex);\r\n nativeX.insertAt(startIndex, x);\r\n nativeY.insertAt(startIndex, y);\r\n this.textValuesProperty.splice(startIndex, 0, text);\r\n this.insertMetadata(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, 1);\r\n }\r\n };\r\n /**\r\n * @summary Inserts a range of X,Y values at the startIndex\r\n * @remarks\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param xValues the XValues\r\n * @param yValues the YValues\r\n * @param textValues The text values\r\n * @param metadata The array of point metadata\r\n */\r\n XyTextDataSeries.prototype.insertRange = function (startIndex, xValues, yValues, textValues, metadata) {\r\n var _a;\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insertRange\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", yValues, \"yValues\");\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, xValues, yValues, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, xValues, this.getNativeXValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, yValues, this.getNativeYValues(), startIndex);\r\n (_a = this.textValuesProperty).splice.apply(_a, __spreadArray([startIndex, 0], textValues, false));\r\n this.insertMetadataRange(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, xValues.length);\r\n }\r\n };\r\n /**\r\n * Removes an X,Y value at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to remove at\r\n */\r\n XyTextDataSeries.prototype.removeAt = function (index) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.throwIfFifo(\"removeAt\");\r\n this.getNativeXValues().removeAt(index);\r\n this.getNativeYValues().removeAt(index);\r\n this.textValuesProperty.splice(index, 1);\r\n this.removeMetadataAt(index);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, index, 1);\r\n }\r\n };\r\n /**\r\n * @summary Removes a range of X,Y values at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the start index to remove at\r\n * @param count the number of points to remove\r\n */\r\n XyTextDataSeries.prototype.removeRange = function (startIndex, count) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"removeRange\");\r\n this.getNativeXValues().removeRange(startIndex, count);\r\n this.getNativeYValues().removeRange(startIndex, count);\r\n this.textValuesProperty.splice(startIndex, count);\r\n this.removeMetadataRange(startIndex, count);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, startIndex, count);\r\n }\r\n };\r\n /**\r\n * Clears the entire DataSeries.\r\n * @remarks\r\n * Note this does not free memory, WebAssembly/Native memory is released by calling {@link delete}, after which the\r\n * DataSeries is no longer usable.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n */\r\n XyTextDataSeries.prototype.clear = function () {\r\n if (!this.getIsDeleted()) {\r\n _super.prototype.clear.call(this);\r\n this.getNativeXValues().clear();\r\n this.getNativeYValues().clear();\r\n this.textValuesProperty = [];\r\n this.setMetadata(undefined);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);\r\n }\r\n };\r\n XyTextDataSeries.prototype.getOptions = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.getOptions.call(this);\r\n if (!excludeData) {\r\n var dataSize = this.count();\r\n var xValues = new Array(dataSize);\r\n var yValues = new Array(dataSize);\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.get(i);\r\n yValues[i] = this.yValues.get(i);\r\n }\r\n var options = {\r\n xValues: xValues,\r\n yValues: yValues,\r\n textValues: this.textValuesProperty\r\n };\r\n Object.assign(json, options);\r\n }\r\n return json;\r\n };\r\n return XyTextDataSeries;\r\n}(BaseDataSeries_1.BaseDataSeries));\r\nexports.XyTextDataSeries = XyTextDataSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyyDataSeries = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar NumberArray_1 = require(\"../../types/NumberArray\");\r\nvar SearchMode_1 = require(\"../../types/SearchMode\");\r\nvar YRangeMode_1 = require(\"../../types/YRangeMode\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar copyVector_1 = require(\"../../utils/copyVector\");\r\nvar isRealNumber_1 = require(\"../../utils/isRealNumber\");\r\nvar BaseDataSeries_1 = require(\"./BaseDataSeries\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\n/**\r\n * XyyDataSeries is a DataSeries for holding X, Y1, Y2 data in SciChart's 2D\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * The XyyDataSeries is primarily used with our {@link FastBandRenderableSeries | JavaScript Band Chart},\r\n * which draws a High-Low fill between two lines, where the fill changes color depending on whether line Y2 > Y1\r\n *\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseDataSeries} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.\r\n */\r\nvar XyyDataSeries = /** @class */ (function (_super) {\r\n __extends(XyyDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link XyyDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IXyyDataSeriesOptions} which can be passed to configure the DataSeries at construct time\r\n */\r\n function XyyDataSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IDataSeries_1.EDataSeriesType.Xyy;\r\n _this.y1Values = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n if (options === null || options === void 0 ? void 0 : options.xValues) {\r\n Guard_1.Guard.notNull(options.yValues, \"options.yValues\");\r\n Guard_1.Guard.notNull(options.y1Values, \"options.y1Values\");\r\n _this.appendRange(options.xValues, options.yValues, options.y1Values, options.metadata);\r\n if ((options === null || options === void 0 ? void 0 : options.fifoCapacity) && (options === null || options === void 0 ? void 0 : options.fifoStartIndex)) {\r\n _this.xValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.yValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.y1Values.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n }\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Gets a native / WebAssembly vector of Y2-values in the DataSeries\r\n */\r\n XyyDataSeries.prototype.getNativeY1Values = function () {\r\n return this.y1Values;\r\n };\r\n /**\r\n * Appends a single X, Y, Y1 point to the DataSeries\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link appendRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param x The X-value\r\n * @param y The Y1-value\r\n * @param y1 The Y2-value\r\n * @param metadata The point metadata\r\n */\r\n XyyDataSeries.prototype.append = function (x, y, y1, metadata) {\r\n if (!this.getIsDeleted()) {\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, [x], [y]);\r\n // Push metadata should be done before push x values\r\n this.appendMetadata(metadata);\r\n nativeX.push_back(x);\r\n this.getNativeYValues().push_back(y);\r\n this.getNativeY1Values().push_back(y1);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, 1);\r\n }\r\n };\r\n /**\r\n * Appends a range of X, Y, Y1 points to the DataSeries\r\n * @remarks\r\n * This method is considerably higher performance than {@link append} which appends a single point\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param xValues The X-values\r\n * @param yValues The Y-values\r\n * @param y1Values The Y1-values\r\n * @param metadata The array of point metadata\r\n */\r\n XyyDataSeries.prototype.appendRange = function (xValues, yValues, y1Values, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(y1Values) || (0, NumberArray_1.isTypedArray)(y1Values), \"y1Values must be an array of numbers\");\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: xValues, name: \"xValues\" },\r\n { arg: yValues, name: \"yValues\" },\r\n { arg: y1Values, name: \"y1Values\" }\r\n ]);\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n var nativeY1 = this.getNativeY1Values();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, xValues, yValues);\r\n // Push metadata should be done before push x values\r\n this.appendMetadataRange(metadata, xValues.length);\r\n // Old implementation with copying each element\r\n // for (let i = 0; i < xValues.length; i++) {\r\n // nativeX.push_back(xValues[i]);\r\n // nativeY.push_back(yValues[i]);\r\n // nativeY1.push_back(y1Values[i]);\r\n // }\r\n // New implementation passing array from JS\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeX, xValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeY, yValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeY1, y1Values);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, xValues.length);\r\n }\r\n };\r\n /**\r\n * Updates a single Y, Y1-value by X-index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param y The new Y value\r\n * @param y1 The new Y1 value\r\n * @param metadata The point metadata\r\n */\r\n XyyDataSeries.prototype.update = function (index, y, y1, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, undefined, undefined, [y], index);\r\n this.getNativeYValues().set(index, y);\r\n this.getNativeY1Values().set(index, y1);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Updates a single X, Y, Y1-value by X-index. Might also need to set isSorted = false\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param x The new X value\r\n * @param y The new Y value\r\n * @param y1 The new Y1 value\r\n * @param metadata The point metadata\r\n */\r\n XyyDataSeries.prototype.updateXyy1 = function (index, x, y, y1, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, nativeX, [x], [y], index);\r\n nativeX.set(index, x);\r\n this.getNativeYValues().set(index, y);\r\n this.getNativeY1Values().set(index, y1);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Inserts a single X,Y1,Y2 value at the start index\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link insertRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param x the Xvalue\r\n * @param y the Y1Value\r\n * @param y1 the Y2Value\r\n * @param metadata The point metadata\r\n */\r\n XyyDataSeries.prototype.insert = function (startIndex, x, y, y1, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insert\");\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n var nativeY1 = this.getNativeY1Values();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, [x], [y], startIndex);\r\n nativeX.insertAt(startIndex, x);\r\n nativeY.insertAt(startIndex, y);\r\n nativeY1.insertAt(startIndex, y1);\r\n this.insertMetadata(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, 1);\r\n }\r\n };\r\n /**\r\n * Inserts a ragne of X,Y1,Y2 values at the startIndex\r\n * @remarks\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param xValues the XValues\r\n * @param yValues the YValues\r\n * @param y1Values the Y1Values\r\n * @param metadata The array of point metadata\r\n */\r\n XyyDataSeries.prototype.insertRange = function (startIndex, xValues, yValues, y1Values, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(y1Values) || (0, NumberArray_1.isTypedArray)(y1Values), \"y1Values must be an array of numbers\");\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insertRange\");\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: xValues, name: \"xValues\" },\r\n { arg: yValues, name: \"yValues\" },\r\n { arg: y1Values, name: \"y1Values\" }\r\n ]);\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, xValues, yValues, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, xValues, nativeX, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, yValues, this.getNativeYValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, y1Values, this.getNativeY1Values(), startIndex);\r\n this.insertMetadataRange(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, xValues.length);\r\n }\r\n };\r\n /**\r\n * Removes a single X,Y1,Y2 value at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to remove at\r\n */\r\n XyyDataSeries.prototype.removeAt = function (index) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.throwIfFifo(\"removeAt\");\r\n this.getNativeXValues().removeAt(index);\r\n this.getNativeYValues().removeAt(index);\r\n this.getNativeY1Values().removeAt(index);\r\n this.removeMetadataAt(index);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, index, 1);\r\n }\r\n };\r\n /**\r\n * Removes a range of X,Y1,Y2 values at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the start index to remove at\r\n * @param count the number of points to remove\r\n */\r\n XyyDataSeries.prototype.removeRange = function (startIndex, count) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"removeRange\");\r\n this.getNativeXValues().removeRange(startIndex, count);\r\n this.getNativeYValues().removeRange(startIndex, count);\r\n this.getNativeY1Values().removeRange(startIndex, count);\r\n this.removeMetadataRange(startIndex, count);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, startIndex, count);\r\n }\r\n };\r\n /**\r\n * Clears the entire DataSeries.\r\n * @remarks\r\n * Note this does not free memory, WebAssembly/Native memory is released by calling {@link delete}, after which the\r\n * DataSeries is no longer usable.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n */\r\n XyyDataSeries.prototype.clear = function () {\r\n if (!this.getIsDeleted()) {\r\n _super.prototype.clear.call(this);\r\n this.getNativeXValues().clear();\r\n this.getNativeYValues().clear();\r\n this.getNativeY1Values().clear();\r\n this.setMetadata(undefined);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);\r\n }\r\n };\r\n /** @inheritDoc */\r\n XyyDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, yRangeMode) {\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }\r\n if (yRangeMode === void 0) { yRangeMode = YRangeMode_1.EYRangeMode.Visible; }\r\n var _a = this.getYY1Values(dataSeriesValueType), yValues = _a.yValues, y1Values = _a.y1Values;\r\n // TODO: getPositiveRange\r\n // if one point\r\n if (this.count() === 1) {\r\n var min = Math.min(yValues.get(0), y1Values.get(0));\r\n var max = Math.max(yValues.get(0), y1Values.get(0));\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n var indicesRange = isXCategoryAxis\r\n ? xRange\r\n : this.getIndicesRange(xRange, false, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);\r\n var iMin = Math.max(Math.floor(indicesRange.min), 0);\r\n var iMax = Math.min(Math.ceil(indicesRange.max), this.count() - 1);\r\n if (iMax < iMin) {\r\n return undefined;\r\n }\r\n var minMax;\r\n var minMaxy1;\r\n try {\r\n minMax = this.webAssemblyContext.NumberUtil.MinMaxWithIndex(yValues, iMin, iMax - iMin + 1);\r\n if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {\r\n return undefined;\r\n }\r\n minMaxy1 = this.webAssemblyContext.NumberUtil.MinMaxWithIndex(y1Values, iMin, iMax - iMin + 1);\r\n if (!(0, isRealNumber_1.isRealNumber)(minMaxy1.minD) || !(0, isRealNumber_1.isRealNumber)(minMaxy1.maxD)) {\r\n return undefined;\r\n }\r\n return new NumberRange_1.NumberRange(Math.min(minMax.minD, minMaxy1.minD), Math.max(minMax.maxD, minMaxy1.maxD));\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n (0, Deleter_1.deleteSafe)(minMaxy1);\r\n }\r\n };\r\n /** @inheritDoc */\r\n XyyDataSeries.prototype.delete = function () {\r\n this.y1Values = (0, Deleter_1.deleteSafe)(this.y1Values);\r\n this.y1InitialAnimationValues = (0, Deleter_1.deleteSafe)(this.y1InitialAnimationValues);\r\n this.y1FinalAnimationValues = (0, Deleter_1.deleteSafe)(this.y1FinalAnimationValues);\r\n _super.prototype.delete.call(this);\r\n };\r\n XyyDataSeries.prototype.createAnimationVectors = function () {\r\n _super.prototype.createAnimationVectors.call(this);\r\n this.y1InitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.y1FinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n XyyDataSeries.prototype.setInitialAnimationVectors = function (dataSeries) {\r\n _super.prototype.setInitialAnimationVectors.call(this, dataSeries);\r\n if (!dataSeries) {\r\n this.y1InitialAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeY1Values(), this.y1InitialAnimationValues, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n XyyDataSeries.prototype.setFinalAnimationVectors = function (dataSeries) {\r\n _super.prototype.setFinalAnimationVectors.call(this, dataSeries);\r\n if (!dataSeries) {\r\n this.y1FinalAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeY1Values(), this.y1FinalAnimationValues, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n XyyDataSeries.prototype.validateAnimationVectors = function () {\r\n _super.prototype.validateAnimationVectors.call(this);\r\n var size = this.xInitialAnimationValues.size();\r\n if (size !== this.y1InitialAnimationValues.size() || size !== this.y1FinalAnimationValues.size()) {\r\n throw Error(\"initialAnimationValues and finalAnimationValues must have the same length\");\r\n }\r\n };\r\n /** @inheritDoc */\r\n XyyDataSeries.prototype.updateAnimationProperties = function (progress, animation) {\r\n _super.prototype.updateAnimationProperties.call(this, progress, animation);\r\n if (animation.isOnStartAnimation) {\r\n animation.calculateAnimationValues(this.webAssemblyContext, this.y1FinalAnimationValues, this.getNativeY1Values(), progress);\r\n }\r\n else if (animation.isDataSeriesAnimation) {\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.y1InitialAnimationValues, this.y1FinalAnimationValues, this.getNativeY1Values(), progress);\r\n }\r\n };\r\n /** @inheritDoc */\r\n XyyDataSeries.prototype.getOptions = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.getOptions.call(this, excludeData);\r\n if (!excludeData) {\r\n var dataSize = this.count();\r\n var xValues = new Array(dataSize);\r\n var yValues = new Array(dataSize);\r\n var y1Values = new Array(dataSize);\r\n if (this.fifoCapacity && this.fifoSweeping) {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.getRaw(i);\r\n yValues[i] = this.yValues.getRaw(i);\r\n y1Values[i] = this.y1Values.getRaw(i);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.get(i);\r\n yValues[i] = this.yValues.get(i);\r\n y1Values[i] = this.y1Values.get(i);\r\n }\r\n }\r\n var options = {\r\n xValues: xValues,\r\n yValues: yValues,\r\n y1Values: y1Values\r\n };\r\n Object.assign(json, options);\r\n }\r\n return json;\r\n };\r\n XyyDataSeries.prototype.reserve = function (size) {\r\n _super.prototype.reserve.call(this, size);\r\n this.y1Values.reserve(size);\r\n };\r\n XyyDataSeries.prototype.getYY1Values = function (dataSeriesValueType) {\r\n var yValues;\r\n var y1Values;\r\n switch (dataSeriesValueType) {\r\n case IDataSeries_1.EDataSeriesValueType.FinalAnimationValues:\r\n yValues = this.yFinalAnimationValues;\r\n y1Values = this.y1FinalAnimationValues;\r\n break;\r\n case IDataSeries_1.EDataSeriesValueType.InitialAnimationValues:\r\n yValues = this.yInitialAnimationValues;\r\n y1Values = this.y1InitialAnimationValues;\r\n break;\r\n default:\r\n yValues = this.yValues;\r\n y1Values = this.y1Values;\r\n }\r\n return { yValues: yValues, y1Values: y1Values };\r\n };\r\n return XyyDataSeries;\r\n}(BaseDataSeries_1.BaseDataSeries));\r\nexports.XyyDataSeries = XyyDataSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyzDataSeries = void 0;\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberArray_1 = require(\"../../types/NumberArray\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar copyVector_1 = require(\"../../utils/copyVector\");\r\nvar BaseDataSeries_1 = require(\"./BaseDataSeries\");\r\nvar IDataSeries_1 = require(\"./IDataSeries\");\r\n/**\r\n * XyzDataSeries is a DataSeries for holding X, Y, Z data in SciChart's 2D\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * The {@link XyzDataSeries} is primarily used with our {@link FastBubbleRenderableSeries | JavaScript Bubble Chart},\r\n * which draws a variable-sized bubble or shape at each X,Y value\r\n *\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseDataSeries} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.\r\n */\r\nvar XyzDataSeries = /** @class */ (function (_super) {\r\n __extends(XyzDataSeries, _super);\r\n /**\r\n * Creates an instance of {@link XyzDataSeries}\r\n * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IXyzDataSeriesOptions} which can be passed to configure the DataSeries at construct time\r\n */\r\n function XyzDataSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IDataSeries_1.EDataSeriesType.Xyz;\r\n _this.zValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);\r\n if (options === null || options === void 0 ? void 0 : options.xValues) {\r\n Guard_1.Guard.notNull(options.yValues, \"options.yValues\");\r\n Guard_1.Guard.notNull(options.zValues, \"options.zValues\");\r\n _this.appendRange(options.xValues, options.yValues, options.zValues, options.metadata);\r\n if ((options === null || options === void 0 ? void 0 : options.fifoCapacity) && (options === null || options === void 0 ? void 0 : options.fifoStartIndex)) {\r\n _this.xValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.yValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n _this.zValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);\r\n }\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Gets a native / WebAssembly vector of Z-values in the DataSeries\r\n */\r\n XyzDataSeries.prototype.getNativeZValues = function () {\r\n return this.zValues;\r\n };\r\n /**\r\n * Appends a single X, Y, Z point to the DataSeries\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link appendRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param x The X-value\r\n * @param y The Y-value\r\n * @param z The Z-value\r\n * @param metadata The point metadata\r\n */\r\n XyzDataSeries.prototype.append = function (x, y, z, metadata) {\r\n if (!this.getIsDeleted()) {\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, [x], [y]);\r\n // Push metadata should be done before push x values\r\n this.appendMetadata(metadata);\r\n nativeX.push_back(x);\r\n this.getNativeYValues().push_back(y);\r\n this.getNativeZValues().push_back(z);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, 1);\r\n }\r\n };\r\n /**\r\n * Appends a range of X, Y, Z points to the DataSeries\r\n * @remarks\r\n * This method is considerably higher performance than {@link append} which appends a single point\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param xValues The X-values\r\n * @param yValues The Y-values\r\n * @param zValues The Z-values\r\n * @param metadata The array of point metadata\r\n */\r\n XyzDataSeries.prototype.appendRange = function (xValues, yValues, zValues, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(zValues) || (0, NumberArray_1.isTypedArray)(zValues), \"zValues must be an array of numbers\");\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: xValues, name: \"xValues\" },\r\n { arg: yValues, name: \"yValues\" },\r\n { arg: zValues, name: \"zValues\" }\r\n ]);\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n var nativeZ = this.getNativeZValues();\r\n this.dataDistributionCalculator.onAppend(this.isSorted, this.containsNaN, nativeX, xValues, yValues);\r\n // Push metadata should be done before push x values\r\n this.appendMetadataRange(metadata, xValues.length);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeX, xValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeY, yValues);\r\n this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeZ, zValues);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, xValues.length);\r\n }\r\n };\r\n /**\r\n * Updates a single Y, Z-value by X-index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param y The new Y value\r\n * @param z The new Z value\r\n * @param metadata The point metadata\r\n */\r\n XyzDataSeries.prototype.update = function (index, y, z, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, undefined, undefined, [y], index);\r\n this.getNativeYValues().set(index, y);\r\n this.getNativeZValues().set(index, z);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Updates a single X, Y, Z-value by X-index. Might also need to set isSorted = false\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to update\r\n * @param x The new X value\r\n * @param y The new Y value\r\n * @param z The new Z value\r\n * @param metadata The point metadata\r\n */\r\n XyzDataSeries.prototype.updateXyz = function (index, x, y, z, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onUpdate(this.isSorted, this.containsNaN, nativeX, [x], [y], index);\r\n nativeX.set(index, x);\r\n this.getNativeYValues().set(index, y);\r\n this.getNativeZValues().set(index, z);\r\n this.setMetadataAt(index, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Update, index, 1);\r\n }\r\n };\r\n /**\r\n * Inserts a single X,Y,Z value at the start index\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link insertRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param x the Xvalue\r\n * @param y the YValue\r\n * @param z the ZValue\r\n * @param metadata The point metadata\r\n */\r\n XyzDataSeries.prototype.insert = function (startIndex, x, y, z, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insert\");\r\n var nativeX = this.getNativeXValues();\r\n var nativeY = this.getNativeYValues();\r\n var nativeZ = this.getNativeZValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, [x], [y], startIndex);\r\n nativeX.insertAt(startIndex, x);\r\n nativeY.insertAt(startIndex, y);\r\n nativeZ.insertAt(startIndex, z);\r\n this.insertMetadata(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, 1);\r\n }\r\n };\r\n /**\r\n * Inserts a range of X,Y,Z values at the startIndex\r\n * @remarks\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the index to insert at\r\n * @param xValues the XValues\r\n * @param yValues the YValues\r\n * @param zValues the ZValues\r\n * @param metadata The array of point metadata\r\n */\r\n XyzDataSeries.prototype.insertRange = function (startIndex, xValues, yValues, zValues, metadata) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(xValues) || (0, NumberArray_1.isTypedArray)(xValues), \"xValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(yValues) || (0, NumberArray_1.isTypedArray)(yValues), \"yValues must be an array of numbers\");\r\n Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(zValues) || (0, NumberArray_1.isTypedArray)(zValues), \"zValues must be an array of numbers\");\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"insertRange\");\r\n Guard_1.Guard.arraysSameLengthArr([\r\n { arg: xValues, name: \"xValues\" },\r\n { arg: yValues, name: \"yValues\" },\r\n { arg: zValues, name: \"zValues\" }\r\n ]);\r\n if (metadata) {\r\n Guard_1.Guard.isTrue(Array.isArray(metadata), \"metadata must be an array of IPointMetadata\");\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", metadata, \"metadata\");\r\n }\r\n var nativeX = this.getNativeXValues();\r\n this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, xValues, yValues, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, xValues, nativeX, startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, yValues, this.getNativeYValues(), startIndex);\r\n (0, appendDoubleVectorFromJsArray_1.insertDoubleVectorFromJsArray)(this.webAssemblyContext, zValues, this.getNativeZValues(), startIndex);\r\n this.insertMetadataRange(startIndex, metadata);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Insert, startIndex, xValues.length);\r\n }\r\n };\r\n /**\r\n * Removes a single X,Y,Z value at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param index the index to remove at\r\n */\r\n XyzDataSeries.prototype.removeAt = function (index) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(index);\r\n this.throwIfFifo(\"removeAt\");\r\n this.getNativeXValues().removeAt(index);\r\n this.getNativeYValues().removeAt(index);\r\n this.getNativeZValues().removeAt(index);\r\n this.removeMetadataAt(index);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, index, 1);\r\n }\r\n };\r\n /**\r\n * Removes a range of X,Y,Z values at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n * @param startIndex the start index to remove at\r\n * @param count the number of points to remove\r\n */\r\n XyzDataSeries.prototype.removeRange = function (startIndex, count) {\r\n if (!this.getIsDeleted()) {\r\n this.validateIndex(startIndex, \"Start index is out of range\");\r\n this.throwIfFifo(\"removeRange\");\r\n this.getNativeXValues().removeRange(startIndex, count);\r\n this.getNativeYValues().removeRange(startIndex, count);\r\n this.getNativeZValues().removeRange(startIndex, count);\r\n this.removeMetadataRange(startIndex, count);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Remove, startIndex, count);\r\n }\r\n };\r\n /**\r\n * Clears the entire DataSeries.\r\n * @remarks\r\n * Note this does not free memory, WebAssembly/Native memory is released by calling {@link delete}, after which the\r\n * DataSeries is no longer usable.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}\r\n */\r\n XyzDataSeries.prototype.clear = function () {\r\n if (!this.getIsDeleted()) {\r\n _super.prototype.clear.call(this);\r\n this.getNativeXValues().clear();\r\n this.getNativeYValues().clear();\r\n this.getNativeZValues().clear();\r\n this.setMetadata(undefined);\r\n this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);\r\n }\r\n };\r\n /** @inheritDoc */\r\n XyzDataSeries.prototype.delete = function () {\r\n this.zValues = (0, Deleter_1.deleteSafe)(this.zValues);\r\n this.zInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.zInitialAnimationValues);\r\n this.zFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.zFinalAnimationValues);\r\n _super.prototype.delete.call(this);\r\n };\r\n /** @inheritDoc */\r\n XyzDataSeries.prototype.createAnimationVectors = function () {\r\n _super.prototype.createAnimationVectors.call(this);\r\n this.zInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n this.zFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n XyzDataSeries.prototype.setInitialAnimationVectors = function (dataSeries) {\r\n _super.prototype.setInitialAnimationVectors.call(this, dataSeries);\r\n if (!dataSeries) {\r\n this.zInitialAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeZValues(), this.zInitialAnimationValues, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n XyzDataSeries.prototype.setFinalAnimationVectors = function (dataSeries) {\r\n _super.prototype.setFinalAnimationVectors.call(this, dataSeries);\r\n if (!dataSeries) {\r\n this.zFinalAnimationValues.resize(0, 0);\r\n return;\r\n }\r\n (0, copyVector_1.copyDoubleVector)(dataSeries.getNativeZValues(), this.zFinalAnimationValues, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n XyzDataSeries.prototype.validateAnimationVectors = function () {\r\n _super.prototype.validateAnimationVectors.call(this);\r\n var size = this.xInitialAnimationValues.size();\r\n if (size !== this.zInitialAnimationValues.size() || size !== this.zFinalAnimationValues.size()) {\r\n throw Error(\"initialAnimationValues and finalAnimationValues must have the same length\");\r\n }\r\n };\r\n /** @inheritDoc */\r\n XyzDataSeries.prototype.updateAnimationProperties = function (progress, animation) {\r\n _super.prototype.updateAnimationProperties.call(this, progress, animation);\r\n if (animation.isOnStartAnimation) {\r\n animation.calculateAnimationValues(this.webAssemblyContext, this.zFinalAnimationValues, this.getNativeZValues(), progress, true);\r\n }\r\n else if (animation.isDataSeriesAnimation) {\r\n animation.calculateDataSeriesAnimationValues(this.webAssemblyContext, this.zInitialAnimationValues, this.zFinalAnimationValues, this.getNativeZValues(), progress);\r\n }\r\n };\r\n /** @inheritDoc */\r\n XyzDataSeries.prototype.getOptions = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.getOptions.call(this, excludeData);\r\n if (!excludeData) {\r\n var dataSize = this.count();\r\n var xValues = new Array(dataSize);\r\n var yValues = new Array(dataSize);\r\n var zValues = new Array(dataSize);\r\n if (this.fifoCapacity && this.fifoSweeping) {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.getRaw(i);\r\n yValues[i] = this.yValues.getRaw(i);\r\n zValues[i] = this.zValues.getRaw(i);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataSize; i++) {\r\n xValues[i] = this.xValues.get(i);\r\n yValues[i] = this.yValues.get(i);\r\n zValues[i] = this.zValues.get(i);\r\n }\r\n }\r\n var options = {\r\n xValues: xValues,\r\n yValues: yValues,\r\n zValues: zValues\r\n };\r\n Object.assign(json, options);\r\n }\r\n return json;\r\n };\r\n XyzDataSeries.prototype.reserve = function (size) {\r\n _super.prototype.reserve.call(this, size);\r\n this.zValues.reserve(size);\r\n };\r\n XyzDataSeries.prototype.getYZValues = function (dataSeriesValueType) {\r\n var yValues;\r\n var zValues;\r\n switch (dataSeriesValueType) {\r\n case IDataSeries_1.EDataSeriesValueType.FinalAnimationValues:\r\n yValues = this.yFinalAnimationValues;\r\n zValues = this.zFinalAnimationValues;\r\n break;\r\n case IDataSeries_1.EDataSeriesValueType.InitialAnimationValues:\r\n yValues = this.yInitialAnimationValues;\r\n zValues = this.zInitialAnimationValues;\r\n break;\r\n default:\r\n yValues = this.yValues;\r\n zValues = this.zValues;\r\n }\r\n return { yValues: yValues, zValues: zValues };\r\n };\r\n return XyzDataSeries;\r\n}(BaseDataSeries_1.BaseDataSeries));\r\nexports.XyzDataSeries = XyzDataSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CategoryCoordinateCalculator = void 0;\r\nvar CoordinateCalculatorBase_1 = require(\"./CoordinateCalculatorBase\");\r\n/**\r\n * Provides an implementation of Numeric {@link CoordinateCalculatorBase | Coordinate Calculator} which transforms\r\n * numeric data indexes for {@link CategoryAxis} to pixel coordinates and vice versa.\r\n * @remarks\r\n * SciChart's {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts} perform conversion operations between\r\n * data-coordinates for all drawing and axis measurements.\r\n *\r\n * You can fetch a {link CategoryCoordinateCalculator} instance by calling {@link AxisCore.getCurrentCoordinateCalculator} on a {@link CategoryAxis}.\r\n * This will return a unique calculator for the current draw pass.\r\n *\r\n * You can convert pixel to data-indexes and back by using the following code.\r\n * An additional method for Category calculators transforms between data-value and index:\r\n * ```ts\r\n * const axis: AxisCore;\r\n * const calc = axis.getCurrentCoordinateCalculator();\r\n *\r\n * const pixel = calc.getCoordinate(11); // Gets the pixel coordinate for data at index 11\r\n * const dataIndex = calc.getDataValue(pixel); // Performs the inverse operation to get data-value\r\n * const dataValue = calc.transformIndexToData(dataIndex); // Converts index to data-value\r\n * ```\r\n * Use the Coordinate calculators when drawing, placing markers, annotations or if you want to place a tooltip over the chart.\r\n */\r\nvar CategoryCoordinateCalculator = /** @class */ (function (_super) {\r\n __extends(CategoryCoordinateCalculator, _super);\r\n /**\r\n * Creates an instance of CategoryCoordinateCalculator\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param viewportDimension The size of the associated {@link AxisCore | Axis} at the time of drawing\r\n * @param visibleMin The {@link CategoryAxis.visibleRange}.min at the time of drawing, corresponding to the minimum data-index visible\r\n * @param visibleMax The {@link CategoryAxis.visibleRange}.max at the time of drawing, corresponding to the maximum data-index visible\r\n * @param offset A constant pixel offset used in coordinate calculations\r\n */\r\n function CategoryCoordinateCalculator(webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset) {\r\n if (offset === void 0) { offset = 0; }\r\n var _this = _super.call(this, webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset, true, true) || this;\r\n _this.indexMin = visibleMin;\r\n _this.indexMax = visibleMax;\r\n _this.nativeCalculator = new webAssemblyContext.CategoryCoordinateCalculatorDouble(_this.viewportDimension, _this.visibleMin, _this.visibleMax, -1, _this.offset, _this.indexMin, _this.indexMax);\r\n return _this;\r\n }\r\n /**\r\n * Transforms an Index to a Data-value, with extrapolation and interpolation for values found outside of\r\n * {@link baseXValues | the Primary Chart series X-Values}\r\n * @param index the index to transform\r\n * @returns the Data-value\r\n */\r\n CategoryCoordinateCalculator.prototype.transformIndexToData = function (index) {\r\n var result = this.nativeCalculator.TransformIndexToData(index, this.baseXValues);\r\n return result;\r\n };\r\n /**\r\n * Transforms an Data-value to Index, with extrapolation and interpolation for values found outside of\r\n * {@link baseXValues | the Primary Chart series X-Values}\r\n * @param Data-Value the index to transform\r\n * @returns the index\r\n */\r\n CategoryCoordinateCalculator.prototype.transformDataToIndex = function (dataValue) {\r\n var result = this.nativeCalculator.TransformDataToIndex(dataValue, this.baseXValues);\r\n return result;\r\n };\r\n return CategoryCoordinateCalculator;\r\n}(CoordinateCalculatorBase_1.CoordinateCalculatorBase));\r\nexports.CategoryCoordinateCalculator = CategoryCoordinateCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CoordinateCalculatorBase = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\n/**\r\n * The CoordinateCalculatorBase class provides methods for converting between Pixel and Data coordinates\r\n * @remarks\r\n * SciChart's {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts} perform conversion operations between\r\n * data-coordinates for all drawing and axis measurements.\r\n *\r\n * You can fetch a CoordinateCalculator instance by calling {@link AxisCore.getCurrentCoordinateCalculator}. This will return a unique calculator\r\n * for the current draw pass.\r\n *\r\n * You can convert pixel to data-coordinates and back by using the following code:\r\n * ```ts\r\n * const axis: AxisCore;\r\n * const calc = axis.getCurrentCoordinateCalculator();\r\n *\r\n * const pixel = calc.getCoordinate(1.23); // Gets the pixel coordinate for data-value 1.23\r\n * const dataValue = cald.getDataValue(pixel); // Performs the inverse operation to get data-value\r\n * ```\r\n *\r\n * Use the Coordinate calculators when drawing, placing markers, annotations or if you want to place a tooltip over the chart.\r\n */\r\nvar CoordinateCalculatorBase = /** @class */ (function (_super) {\r\n __extends(CoordinateCalculatorBase, _super);\r\n /**\r\n * Creates an instance of the CoordinateCalculatorBase\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param viewportDimension The size of the associated {@link AxisCore | Axis} at the time of drawing\r\n * @param visibleMin The {@link AxisCore.visibleRange}.min at the time of drawing\r\n * @param visibleMax The {@link AxisCore.visibleRange}.max at the time of drawing\r\n * @param offset A constant pixel offset used in coordinate calculations\r\n * @param hasFlippedCoordinates When true, this calculator has flipped coordinates\r\n * @param isCategoryCoordinateCalculator When true, this calculator behaves as a Category coordinate calculator,\r\n * using index not x-value for measuring\r\n */\r\n function CoordinateCalculatorBase(webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset, hasFlippedCoordinates, isCategoryCoordinateCalculator) {\r\n if (isCategoryCoordinateCalculator === void 0) { isCategoryCoordinateCalculator = false; }\r\n var _this = _super.call(this) || this;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.visibleMax = visibleMax;\r\n _this.visibleMin = visibleMin;\r\n _this.viewportDimension = viewportDimension;\r\n _this.offset = offset;\r\n _this.hasFlippedCoordinates = hasFlippedCoordinates;\r\n _this.isCategoryCoordinateCalculator = isCategoryCoordinateCalculator;\r\n return _this;\r\n }\r\n /**\r\n * Converts the Data-value to a pixel coordinate\r\n * Performs the inverse operation to {@link getDataValue}\r\n * @param dataValue The data-value\r\n * @returns the pixel coordinate\r\n */\r\n CoordinateCalculatorBase.prototype.getCoordinate = function (dataValue) {\r\n return this.nativeCalculator.GetCoordinate(dataValue);\r\n };\r\n /**\r\n * Converts the pixel coordinate to a Data-value.\r\n * Performs the inverse operation to {@link getCoordinate}\r\n * @param coordinate The pixel coordiante\r\n * @returns the data value\r\n */\r\n CoordinateCalculatorBase.prototype.getDataValue = function (coordinate) {\r\n return this.nativeCalculator.GetDataValue(coordinate);\r\n };\r\n /**\r\n * Translates a {@link NumberRange} in Data-coordinates by a specified number of pixels,\r\n * performing intermediate calculations from data-value to pixel and back to perform the translation\r\n * @param pixels The pixels to translate\r\n * @param range The {@link NumberRange} to translate. For example this could be an {@link AxisCore.visibleRange | Axis.visibleRange}\r\n * @returns The translated range\r\n */\r\n CoordinateCalculatorBase.prototype.translateBy = function (pixels, range) {\r\n // TODO: Move into native coordinateCalculator calculator\r\n var rangeIncrement = this.getDataValue(pixels) - this.getDataValue(0);\r\n if (this.hasFlippedCoordinates) {\r\n rangeIncrement = -rangeIncrement;\r\n }\r\n return new NumberRange_1.NumberRange(range.min + rangeIncrement, range.max + rangeIncrement);\r\n };\r\n /**\r\n * Zooms a {@link NumberRange} by a specified fractional amount\r\n * @param minFraction The fraction to zoom the {@link NumberRange.min} by. A fraction of 0.1 zooms the minimum by 10%\r\n * @param maxFraction The fraction to zoom the {@link NumberRange.max} by. A fraction of 0.1 zooms the maximum by 10%\r\n * @param inputRange The {@link NumberRange} to zoom\r\n * @returns The zoomed range\r\n */\r\n CoordinateCalculatorBase.prototype.zoomTranslateBy = function (minFraction, maxFraction, inputRange) {\r\n return inputRange.growBy(new NumberRange_1.NumberRange(minFraction, maxFraction));\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CoordinateCalculatorBase.prototype.delete = function () {\r\n var _a;\r\n (_a = this.nativeCalculator) === null || _a === void 0 ? void 0 : _a.delete();\r\n this.nativeCalculator = undefined;\r\n this.webAssemblyContext = undefined;\r\n };\r\n return CoordinateCalculatorBase;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.CoordinateCalculatorBase = CoordinateCalculatorBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FlippedCategoryCoordinateCalculator = void 0;\r\nvar CoordinateCalculatorBase_1 = require(\"./CoordinateCalculatorBase\");\r\n/**\r\n * Provides an implementation of Numeric {@link CoordinateCalculatorBase | Coordinate Calculator} which transforms\r\n * numeric data indexes for {@link CategoryAxis} to pixel coordinates and vice versa. This is a flipped implementation\r\n * of {@link CategoryCoordinateCalculator}.\r\n * @remarks\r\n * SciChart's {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts} perform conversion operations between\r\n * data-coordinates for all drawing and axis measurements.\r\n *\r\n * You can fetch a {link CategoryCoordinateCalculator} instance by calling {@link AxisCore.getCurrentCoordinateCalculator} on a {@link CategoryAxis}.\r\n * This will return a unique calculator for the current draw pass.\r\n *\r\n * You can convert pixel to data-indexes and back by using the following code.\r\n * An additional method for Category calculators transforms between data-value and index:\r\n * ```ts\r\n * const axis: AxisCore;\r\n * const calc = axis.getCurrentCoordinateCalculator();\r\n *\r\n * const pixel = calc.getCoordinate(11); // Gets the pixel coordinate for data at index 11\r\n * const dataIndex = calc.getDataValue(pixel); // Performs the inverse operation to get data-value\r\n * const dataValue = calc.transformIndexToData(dataIndex); // Converts index to data-value\r\n * ```\r\n * Use the Coordinate calculators when drawing, placing markers, annotations or if you want to place a tooltip over the chart.\r\n */\r\nvar FlippedCategoryCoordinateCalculator = /** @class */ (function (_super) {\r\n __extends(FlippedCategoryCoordinateCalculator, _super);\r\n /**\r\n * Creates an instance of FlippedCategoryCoordinateCalculator\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param viewportDimension The size of the associated {@link AxisCore | Axis} at the time of drawing\r\n * @param visibleMin The {@link CategoryAxis.visibleRange}.min at the time of drawing, corresponding to the minimum data-index visible\r\n * @param visibleMax The {@link CategoryAxis.visibleRange}.max at the time of drawing, corresponding to the maximum data-index visible\r\n * @param offset A constant pixel offset used in coordinate calculations\r\n */\r\n function FlippedCategoryCoordinateCalculator(webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset) {\r\n if (offset === void 0) { offset = 0; }\r\n var _this = _super.call(this, webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset, false, true) || this;\r\n _this.indexMin = visibleMin;\r\n _this.indexMax = visibleMax;\r\n _this.nativeCalculator = new webAssemblyContext.FlippedCategoryCoordinateCalculatorDouble(_this.viewportDimension, _this.visibleMin, _this.visibleMax, -1, _this.offset, _this.indexMin, _this.indexMax);\r\n return _this;\r\n }\r\n /**\r\n * Transforms an Index to a Data-value, with extrapolation and interpolation for values found outside of\r\n * {@link baseXValues | the Primary Chart series X-Values}\r\n * @param index the index to transform\r\n * @returns the Data-value\r\n */\r\n FlippedCategoryCoordinateCalculator.prototype.transformIndexToData = function (index) {\r\n var result = this.nativeCalculator.TransformIndexToData(index, this.baseXValues);\r\n return result;\r\n };\r\n /**\r\n * Transforms an Data-value to Index, with extrapolation and interpolation for values found outside of\r\n * {@link baseXValues | the Primary Chart series X-Values}\r\n * @param Data-Value the index to transform\r\n * @returns the index\r\n */\r\n FlippedCategoryCoordinateCalculator.prototype.transformDataToIndex = function (dataValue) {\r\n var result = this.nativeCalculator.TransformDataToIndex(dataValue, this.baseXValues);\r\n return result;\r\n };\r\n return FlippedCategoryCoordinateCalculator;\r\n}(CoordinateCalculatorBase_1.CoordinateCalculatorBase));\r\nexports.FlippedCategoryCoordinateCalculator = FlippedCategoryCoordinateCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FlippedNumericCoordinateCalculator = void 0;\r\nvar CoordinateCalculatorBase_1 = require(\"./CoordinateCalculatorBase\");\r\n/**\r\n * Provides an implementation of Numeric {@link CoordinateCalculatorBase | Coordinate Calculator} which transforms\r\n * numeric data-values to pixel coordinates and vice versa. This implementation provides flipped coordinates\r\n * relative to {@link NumericCoordinateCalculator}\r\n * @remarks\r\n * SciChart's {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts} perform conversion operations between\r\n * data-coordinates for all drawing and axis measurements.\r\n *\r\n * You can fetch a CoordinateCalculator instance by calling {@link AxisCore.getCurrentCoordinateCalculator}. This will return a unique calculator\r\n * for the current draw pass.\r\n *\r\n * You can convert pixel to data-coordinates and back by using the following code:\r\n * ```ts\r\n * const axis: AxisCore;\r\n * const calc = axis.getCurrentCoordinateCalculator();\r\n *\r\n * const pixel = calc.getCoordinate(1.23); // Gets the pixel coordinate for data-value 1.23\r\n * const dataValue = cald.getDataValue(pixel); // Performs the inverse operation to get data-value\r\n * ```\r\n *\r\n * Use the Coordinate calculators when drawing, placing markers, annotations or if you want to place a tooltip over the chart.\r\n */\r\nvar FlippedNumericCoordinateCalculator = /** @class */ (function (_super) {\r\n __extends(FlippedNumericCoordinateCalculator, _super);\r\n /**\r\n * Creates an instance of FlippedNumericCoordinateCalculator\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param viewportDimension The size of the associated {@link AxisCore | Axis} at the time of drawing\r\n * @param visibleMin The {@link AxisCore.visibleRange}.min at the time of drawing\r\n * @param visibleMax The {@link AxisCore.visibleRange}.max at the time of drawing\r\n * @param offset A constant pixel offset used in coordinate calculations\r\n * @param allowFastMath When true, calculate using 32-bit floating point values (faster, but less accurate)\r\n */\r\n function FlippedNumericCoordinateCalculator(webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset, allowFastMath) {\r\n if (offset === void 0) { offset = 0; }\r\n if (allowFastMath === void 0) { allowFastMath = false; }\r\n var _this = _super.call(this, webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset, true) || this;\r\n _this.nativeCalculator = allowFastMath\r\n ? new webAssemblyContext.FlippedLinearCoordinateCalculatorSingle(_this.viewportDimension, _this.visibleMin, _this.visibleMax, -1, _this.offset)\r\n : new webAssemblyContext.FlippedLinearCoordinateCalculatorDouble(_this.viewportDimension, _this.visibleMin, _this.visibleMax, -1, _this.offset);\r\n return _this;\r\n }\r\n return FlippedNumericCoordinateCalculator;\r\n}(CoordinateCalculatorBase_1.CoordinateCalculatorBase));\r\nexports.FlippedNumericCoordinateCalculator = FlippedNumericCoordinateCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LogarithmicCoordinateCalculator = void 0;\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar XyDirection_1 = require(\"../../../types/XyDirection\");\r\nvar CoordinateCalculatorBase_1 = require(\"./CoordinateCalculatorBase\");\r\n/**\r\n * Provides an implementation of Numeric {@link CoordinateCalculatorBase | Coordinate Calculator} which transforms\r\n * numeric data-values to pixel coordinates using logarithmic scaling and vice versa.\r\n * @remarks\r\n * SciChart's {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts} perform conversion operations between\r\n * data-coordinates for all drawing and axis measurements.\r\n *\r\n * You can fetch a CoordinateCalculator instance by calling {@link AxisCore.getCurrentCoordinateCalculator}. This will return a unique calculator\r\n * for the current draw pass.\r\n *\r\n * You can convert pixel to data-coordinates and back by using the following code:\r\n * ```ts\r\n * const axis: AxisCore;\r\n * const calc = axis.getCurrentCoordinateCalculator();\r\n *\r\n * const pixel = calc.getCoordinate(1.23); // Gets the pixel coordinate for data-value 1.23\r\n * const dataValue = cald.getDataValue(pixel); // Performs the inverse operation to get data-value\r\n * ```\r\n *\r\n * Use the Coordinate calculators when drawing, placing markers, annotations or if you want to place a tooltip over the chart.\r\n */\r\nvar LogarithmicCoordinateCalculator = /** @class */ (function (_super) {\r\n __extends(LogarithmicCoordinateCalculator, _super);\r\n /**\r\n * Creates an instance of LogarithmicCoordinateCalculator\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param viewportDimension The size of the associated {@link AxisCore | Axis} at the time of drawing\r\n * @param visibleMin The {@link AxisCore.visibleRange}.min at the time of drawing\r\n * @param visibleMax The {@link AxisCore.visibleRange}.max at the time of drawing\r\n * @param xyDirection Whether the parent axis is an X or Y axis\r\n * @param logBase The Logarithmic base, e.g. 10, for calculating log coordinates\r\n * @param flipCoordinates Whether the flip-coordinates flag is true on the associated axis\r\n * @param offset A constant pixel offset used in coordinate calculations\r\n */\r\n function LogarithmicCoordinateCalculator(webAssemblyContext, viewportDimension, visibleMin, visibleMax, xyDirection, logBase, flipCoordinates, offset) {\r\n if (offset === void 0) { offset = 0; }\r\n var _this = this;\r\n var isXAxis = xyDirection === XyDirection_1.EXyDirection.XDirection;\r\n _this = _super.call(this, webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset, flipCoordinates) || this;\r\n _this.logBaseProperty = logBase;\r\n _this.nativeCalculator = flipCoordinates\r\n ? new webAssemblyContext.FlippedLogarithmicCoordinateCalculator(_this.viewportDimension, _this.visibleMin, _this.visibleMax, -1, _this.offset, _this.logBase)\r\n : new webAssemblyContext.LogarithmicCoordinateCalculator(_this.viewportDimension, _this.visibleMin, _this.visibleMax, -1, _this.offset, _this.logBase);\r\n return _this;\r\n }\r\n Object.defineProperty(LogarithmicCoordinateCalculator.prototype, \"logBase\", {\r\n get: function () {\r\n return this.logBaseProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LogarithmicCoordinateCalculator.prototype.translateBy = function (pixels, range) {\r\n if (pixels === 0) {\r\n return range;\r\n }\r\n var zeroPoint = Math.abs(this.nativeCalculator.GetDataValue(0));\r\n var toScrollPoint = Math.abs(this.nativeCalculator.GetDataValue(pixels));\r\n var numberUtil = this.webAssemblyContext.NumberUtil;\r\n var isNegative = range.min < 0;\r\n if (isNegative) {\r\n range = new NumberRange_1.NumberRange(Math.abs(range.max), Math.abs(range.min));\r\n }\r\n var expDelta = numberUtil.Log(toScrollPoint, this.logBase) - numberUtil.Log(zeroPoint, this.logBase);\r\n if (this.hasFlippedCoordinates)\r\n expDelta = -expDelta;\r\n var expMin = numberUtil.Log(range.min, this.logBase);\r\n var expMax = numberUtil.Log(range.max, this.logBase);\r\n var newMin = Math.pow(this.logBase, expMin + expDelta);\r\n var newMax = Math.pow(this.logBase, expMax + expDelta);\r\n if (isNegative)\r\n return new NumberRange_1.NumberRange(-newMax, -newMin);\r\n else\r\n return new NumberRange_1.NumberRange(newMin, newMax);\r\n };\r\n LogarithmicCoordinateCalculator.prototype.zoomTranslateBy = function (minFraction, maxFraction, inputRange) {\r\n return inputRange.growByLog(new NumberRange_1.NumberRange(minFraction, maxFraction), this.logBase);\r\n };\r\n return LogarithmicCoordinateCalculator;\r\n}(CoordinateCalculatorBase_1.CoordinateCalculatorBase));\r\nexports.LogarithmicCoordinateCalculator = LogarithmicCoordinateCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumericCoordinateCalculator = void 0;\r\nvar CoordinateCalculatorBase_1 = require(\"./CoordinateCalculatorBase\");\r\n/**\r\n * Provides an implementation of Numeric {@link CoordinateCalculatorBase | Coordinate Calculator} which transforms\r\n * numeric data-values to pixel coordinates and vice versa.\r\n * @remarks\r\n * SciChart's {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts} perform conversion operations between\r\n * data-coordinates for all drawing and axis measurements.\r\n *\r\n * You can fetch a CoordinateCalculator instance by calling {@link AxisCore.getCurrentCoordinateCalculator}. This will return a unique calculator\r\n * for the current draw pass.\r\n *\r\n * You can convert pixel to data-coordinates and back by using the following code:\r\n * ```ts\r\n * const axis: AxisCore;\r\n * const calc = axis.getCurrentCoordinateCalculator();\r\n *\r\n * const pixel = calc.getCoordinate(1.23); // Gets the pixel coordinate for data-value 1.23\r\n * const dataValue = cald.getDataValue(pixel); // Performs the inverse operation to get data-value\r\n * ```\r\n *\r\n * Use the Coordinate calculators when drawing, placing markers, annotations or if you want to place a tooltip over the chart.\r\n */\r\nvar NumericCoordinateCalculator = /** @class */ (function (_super) {\r\n __extends(NumericCoordinateCalculator, _super);\r\n /**\r\n * Creates an instance of NumericCoordinateCalculator\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param viewportDimension The size of the associated {@link AxisCore | Axis} at the time of drawing\r\n * @param visibleMin The {@link AxisCore.visibleRange}.min at the time of drawing\r\n * @param visibleMax The {@link AxisCore.visibleRange}.max at the time of drawing\r\n * @param offset A constant pixel offset used in coordinate calculations\r\n * @param allowFastMath When true, calculate using 32-bit floating point values (faster, but less accurate)\r\n */\r\n function NumericCoordinateCalculator(webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset, allowFastMath) {\r\n if (offset === void 0) { offset = 0; }\r\n if (allowFastMath === void 0) { allowFastMath = false; }\r\n var _this = _super.call(this, webAssemblyContext, viewportDimension, visibleMin, visibleMax, offset, false) || this;\r\n _this.nativeCalculator = allowFastMath\r\n ? new webAssemblyContext.LinearCoordinateCalculatorSingle(_this.viewportDimension, _this.visibleMin, _this.visibleMax, -1, _this.offset)\r\n : new webAssemblyContext.LinearCoordinateCalculatorDouble(_this.viewportDimension, _this.visibleMin, _this.visibleMax, -1, _this.offset);\r\n return _this;\r\n }\r\n return NumericCoordinateCalculator;\r\n}(CoordinateCalculatorBase_1.CoordinateCalculatorBase));\r\nexports.NumericCoordinateCalculator = NumericCoordinateCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExtremeResamplerHelper = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar ResamplingMode_1 = require(\"./ResamplingMode\");\r\n/**\r\n * Helper class for functions which optimise drawing\r\n */\r\nvar ExtremeResamplerHelper = /** @class */ (function (_super) {\r\n __extends(ExtremeResamplerHelper, _super);\r\n function ExtremeResamplerHelper(wasmContext) {\r\n var _this = _super.call(this) || this;\r\n _this.isDeleted = false;\r\n _this.nativeMergeIndexParams = new wasmContext.SCRTDoubleResamplerMergeIndicesParams();\r\n _this.wasmContext = wasmContext;\r\n _this.nativeResampler = new _this.wasmContext.SCRTDoubleResampler();\r\n _this.xInput = new _this.wasmContext.SCRTXvaluesProvider();\r\n _this.nativeArgs = new _this.wasmContext.ResamplingArgs();\r\n _this.output = new _this.wasmContext.SCRTDoubleArraysXyResampleOutput();\r\n return _this;\r\n }\r\n /**\r\n * Calls native RequiresReduction method to calculate if resampling is needed\r\n * @param rp The resampling params\r\n * @param xOriginalValues XValues\r\n * @param fillBasicNativeArgs Update nativeArgs if True\r\n * @param updateResamplingMode Update {@link ResamplingArgs.Resampling} property if True\r\n */\r\n ExtremeResamplerHelper.prototype.needsResampling = function (rp, xOriginalValues, fillBasicNativeArgs, updateResamplingMode) {\r\n if (fillBasicNativeArgs === void 0) { fillBasicNativeArgs = true; }\r\n if (updateResamplingMode === void 0) { updateResamplingMode = false; }\r\n if (fillBasicNativeArgs)\r\n this.resetAndFillBasicNativeArgs(rp, xOriginalValues);\r\n var requiresReduction = this.nativeResampler.RequiresReduction(this.nativeArgs);\r\n var needsResampling = rp.dataIsFifo || requiresReduction;\r\n if ((updateResamplingMode && !needsResampling) || (needsResampling && !requiresReduction)) {\r\n this.nativeArgs.Resampling = this.getNativeResamplingMode(ResamplingMode_1.EResamplingMode.None);\r\n }\r\n return needsResampling;\r\n };\r\n /**\r\n * This method calls does resampling by calling the native resampling methods.\r\n * It does similar things as WPF AvxExtremeResamplerDoubleDouble.ResampleInternal() method\r\n * The needsResampling() method must be called before, this is done in {@link SciChartRenderer.resampleSeries}\r\n * @param wasmContext The WebAssembly context\r\n * @param rp The resampling parameters\r\n * @param xOriginalValues The original not resampled X values\r\n * @param yOriginalValues The original not resampled Y values\r\n * @param indexesOut The indices output\r\n * @param xResampledValuesOut The resampled X values output\r\n * @param yResampledValuesOut The resampled Y values output\r\n * @param fillBasicNativeArgs If set to True resets and fill nativeArgs with basic properties,\r\n * you can set it to False if {@link needsResampling()} was called before this method\r\n * @returns indicesVector The resampled vector of indices\r\n */\r\n ExtremeResamplerHelper.prototype.resampleIntoPointSeries = function (wasmContext, rp, xOriginalValues, yOriginalValues, indexesOut, indexesResampledOut, xResampledValuesOut, yResampledValuesOut, fillBasicNativeArgs) {\r\n if (fillBasicNativeArgs === void 0) { fillBasicNativeArgs = true; }\r\n if (this.isDeleted) {\r\n throw new Error(\"should not call resampleIntoPointSeries() if deleted\");\r\n }\r\n Guard_1.Guard.notNull(xOriginalValues, \"xDataValues\");\r\n Guard_1.Guard.notNull(yOriginalValues, \"yDataValues\");\r\n Guard_1.Guard.notNull(xOriginalValues, \"xOriginalValues\");\r\n Guard_1.Guard.notNull(yOriginalValues, \"yOriginalValues\");\r\n Guard_1.Guard.notNull(rp, \"resamplingParams\");\r\n if (fillBasicNativeArgs)\r\n this.resetAndFillBasicNativeArgs(rp, xOriginalValues);\r\n // Set X Values\r\n this.xInput.SetInput(xOriginalValues);\r\n this.nativeArgs.ResamplingPrecision = rp.precision;\r\n this.nativeArgs.ZeroLineY = rp.zeroLineY;\r\n this.nativeArgs.NewDataPointCount = -1;\r\n if (fillBasicNativeArgs === true) {\r\n this.needsResampling(rp, xOriginalValues, false, true);\r\n }\r\n //this.debugParameters(rp, this.nativeArgs);\r\n // What does this method do???\r\n var requestedSize = this.nativeResampler.UpdateIndices(indexesOut, this.xInput, yOriginalValues, this.nativeArgs.Resampling, this.nativeArgs);\r\n // SC-5145 Adds +1 to be sure that reserved Capacity is not less than the actual resampled count,\r\n // otherwise resampledXValues and resampledYValues will be recreated with default 0.0 values\r\n if (indexesResampledOut) {\r\n indexesResampledOut.resizeFast(requestedSize + 1);\r\n }\r\n xResampledValuesOut.resizeFast(requestedSize + 1);\r\n yResampledValuesOut.resizeFast(requestedSize + 1);\r\n if (indexesResampledOut) {\r\n this.output.ResetWithIndices(indexesResampledOut, xResampledValuesOut, yResampledValuesOut);\r\n }\r\n else {\r\n this.output.Reset(xResampledValuesOut, yResampledValuesOut);\r\n }\r\n // Execute resampling and update indexesOut vector\r\n this.nativeResampler.Execute(this.xInput, yOriginalValues, this.output, indexesOut, this.nativeArgs.Resampling, this.nativeArgs);\r\n var resultCount = indexesOut.size();\r\n //console.log(\"indexes from rs\",resultCount, indexesOut.get(resultCount - 2), indexesOut.get(resultCount - 1));\r\n if (indexesResampledOut) {\r\n indexesResampledOut.resizeFast(resultCount);\r\n }\r\n xResampledValuesOut.resizeFast(resultCount);\r\n yResampledValuesOut.resizeFast(resultCount);\r\n return { OutputSplitIndex: this.output.OutputSplitIndex || this.nativeArgs.OutputSplitIndex };\r\n };\r\n ExtremeResamplerHelper.prototype.mergeIndexes = function (indices, size1, size2, mergedIndicesOut) {\r\n return this.nativeResampler.MergeIndices(indices, size1, size2, mergedIndicesOut);\r\n };\r\n ExtremeResamplerHelper.prototype.copyValuesByIndexes = function (indices, xValues, yValues, y1Values, count, isCategoryAxis, isFifoSweeping, indicesOut, xValuesOut, yValuesOut, y1ValuesOut, y1Offset) {\r\n if (y1Offset === void 0) { y1Offset = 0; }\r\n var mp = this.nativeMergeIndexParams;\r\n mp.SetIndices(indices);\r\n mp.SetXInput(xValues);\r\n mp.SetYInput(yValues);\r\n mp.SetY1Input(y1Values);\r\n mp.SetY1Offset(y1Offset);\r\n mp.count = count;\r\n mp.isCategoryData = isCategoryAxis;\r\n mp.isFifoSweeping = isFifoSweeping;\r\n mp.SetIndicesOut(indicesOut);\r\n mp.SetXOut(xValuesOut);\r\n mp.SetYOut(yValuesOut);\r\n mp.SetY1Out(y1ValuesOut);\r\n this.nativeResampler.CopyValuesByIndices(mp);\r\n };\r\n /** @inheritDoc */\r\n ExtremeResamplerHelper.prototype.delete = function () {\r\n if (!this.isDeleted) {\r\n (0, Deleter_1.deleteSafe)(this.nativeResampler);\r\n (0, Deleter_1.deleteSafe)(this.xInput);\r\n (0, Deleter_1.deleteSafe)(this.nativeArgs);\r\n (0, Deleter_1.deleteSafe)(this.output);\r\n (0, Deleter_1.deleteSafe)(this.nativeMergeIndexParams);\r\n this.isDeleted = true;\r\n this.wasmContext = undefined;\r\n }\r\n };\r\n ExtremeResamplerHelper.prototype.getNativeResamplingMode = function (resamplingMode) {\r\n switch (resamplingMode) {\r\n case ResamplingMode_1.EResamplingMode.Auto:\r\n return this.wasmContext.ResamplingMode.Auto;\r\n case ResamplingMode_1.EResamplingMode.Max:\r\n return this.wasmContext.ResamplingMode.Max;\r\n case ResamplingMode_1.EResamplingMode.Mid:\r\n return this.wasmContext.ResamplingMode.Mid;\r\n case ResamplingMode_1.EResamplingMode.Min:\r\n return this.wasmContext.ResamplingMode.Min;\r\n case ResamplingMode_1.EResamplingMode.MinMax:\r\n return this.wasmContext.ResamplingMode.MinMax;\r\n case ResamplingMode_1.EResamplingMode.MinOrMax:\r\n return this.wasmContext.ResamplingMode.MinOrMax;\r\n case ResamplingMode_1.EResamplingMode.None:\r\n return this.wasmContext.ResamplingMode.None;\r\n default:\r\n throw new Error(\"Unknown resamplingMode \".concat(resamplingMode));\r\n }\r\n };\r\n /**\r\n * Fills basic native args needed for {@link needsResampling()} and {@link resampleIntoPointSeries} methods\r\n */\r\n ExtremeResamplerHelper.prototype.resetAndFillBasicNativeArgs = function (rp, xOriginalValues) {\r\n this.nativeArgs.Reset();\r\n this.nativeArgs.Data = this.getDataDistribution(rp.dataEvenlySpaced, rp.isCategoryAxis);\r\n this.nativeArgs.StartIndex = rp.indexesRange.min;\r\n this.nativeArgs.EndIndex = rp.indexesRange.max;\r\n this.nativeArgs.MaxXInclusive = rp.xVisibleRange.max;\r\n this.nativeArgs.MinXInclusive = rp.xVisibleRange.min;\r\n this.nativeArgs.Resampling = this.getNativeResamplingMode(rp.resamplingMode);\r\n this.nativeArgs.ViewportWidth = rp.viewportRect.width;\r\n this.nativeArgs.FifoCapacity = rp.fifoCapacity || 0;\r\n this.nativeArgs.HasNaN = rp.dataHasNaN;\r\n this.nativeArgs.IsFifo = rp.dataIsFifo;\r\n this.nativeArgs.InputBaseIndex = rp.fifoStartIndex || 0;\r\n if (rp.isCategoryAxis) {\r\n this.nativeArgs.MinXInclusive = rp.indexesRange.min;\r\n this.nativeArgs.MaxXInclusive = rp.indexesRange.max;\r\n }\r\n else if (rp.fifoCapacity && !rp.dataIsFifo) {\r\n // Sweeping on numeric axis, which requires x values to be sorted wrt the raw data, eg x % fifoCapactiy\r\n var firstPoint = xOriginalValues.getRaw(rp.indexesRange.min);\r\n var lastPoint = xOriginalValues.getRaw(rp.indexesRange.max);\r\n this.nativeArgs.MinXInclusive = Math.max(firstPoint, rp.xVisibleRange.min);\r\n this.nativeArgs.MaxXInclusive = Math.min(lastPoint, rp.xVisibleRange.max);\r\n }\r\n else {\r\n var firstPoint = xOriginalValues.get(rp.indexesRange.min);\r\n var lastPoint = xOriginalValues.get(rp.indexesRange.max);\r\n this.nativeArgs.MinXInclusive = Math.max(firstPoint, rp.xVisibleRange.min);\r\n this.nativeArgs.MaxXInclusive = Math.min(lastPoint, rp.xVisibleRange.max);\r\n }\r\n };\r\n ExtremeResamplerHelper.prototype.debugParameters = function (rp, nativeArgs) {\r\n console.log(31415);\r\n console.log(\"ResamplingParams:\");\r\n console.log(\".. zeroLineY: \".concat(rp.zeroLineY));\r\n console.log(\".. resamplingPrecision: \".concat(rp.precision));\r\n console.log(\".. xVisibleRange: \".concat(rp.xVisibleRange));\r\n console.log(\".. indicesRange: \".concat(rp.indexesRange));\r\n console.log(\".. viewportRect: \".concat(this.debugRect(rp.viewportRect)));\r\n console.log(\".. isCategoryAxis: \".concat(rp.isCategoryAxis));\r\n console.log(\".. isXAxisAutoRanged: \".concat(rp.isXAxisAutoRanged));\r\n console.log(\".. resamplingMode: \".concat(rp.resamplingMode));\r\n console.log(\".. renderableSeriesHash: \".concat(rp.renderableSeriesHash));\r\n console.log(\".. enableExperimentalResampling: \".concat(rp.enableExperimentalResampling));\r\n console.log(\".. dataHasNan: \".concat(rp.dataHasNaN));\r\n console.log(\".. dataIsFifo: \".concat(rp.dataIsFifo));\r\n console.log(\".. fifoCapacity: \".concat(rp.fifoCapacity));\r\n console.log(\".. dataEvenlySpaced: \".concat(rp.dataEvenlySpaced));\r\n console.log(\"native Resampling Args:\");\r\n console.log(\".. ResamplingData: \".concat(this.debugResamplingDataEnum(nativeArgs.Data)));\r\n console.log(\".. StartIndex: \".concat(nativeArgs.StartIndex));\r\n console.log(\".. EndIndex: \".concat(nativeArgs.EndIndex));\r\n console.log(\".. FifoCapacity: \".concat(nativeArgs.FifoCapacity));\r\n console.log(\".. HasNaN: \".concat(nativeArgs.HasNaN));\r\n console.log(\".. IsFifo: \".concat(nativeArgs.IsFifo));\r\n console.log(\".. MaxXInclusive: \".concat(nativeArgs.MaxXInclusive));\r\n console.log(\".. MinXInclusive: \".concat(nativeArgs.MinXInclusive));\r\n console.log(\".. ResamplingMode: \".concat(this.debugResamplingModeEnum(nativeArgs.Resampling)));\r\n console.log(\".. ResamplingPrecision: \".concat(nativeArgs.ResamplingPrecision));\r\n console.log(\".. ViewportWidth: \".concat(nativeArgs.ViewportWidth));\r\n console.log(\".. ZeroLineY: \".concat(nativeArgs.ZeroLineY));\r\n console.log(\".. NewDataPointCount: \".concat(nativeArgs.NewDataPointCount));\r\n console.log(\".. InputBaseIndex: \".concat(nativeArgs.InputBaseIndex));\r\n };\r\n ExtremeResamplerHelper.prototype.debugRect = function (rect) {\r\n return \"X \".concat(rect.x, \" Y \").concat(rect.y, \" Width \").concat(rect.width, \" Height \").concat(rect.height);\r\n };\r\n ExtremeResamplerHelper.prototype.debugResamplingDataEnum = function (resamplingData) {\r\n return resamplingData === this.wasmContext.ResamplingData.LinearData\r\n ? \"LinearData\"\r\n : resamplingData === this.wasmContext.ResamplingData.CategoryData\r\n ? \"CategoryData\"\r\n : resamplingData === this.wasmContext.ResamplingData.UnsortedData\r\n ? \"UnsortedData\"\r\n : resamplingData === this.wasmContext.ResamplingData.UnevenlySpacedData\r\n ? \"UnevenlySpacedData\"\r\n : \"Unknown\";\r\n };\r\n ExtremeResamplerHelper.prototype.debugResamplingModeEnum = function (resamplingMode) {\r\n return resamplingMode === this.wasmContext.ResamplingMode.MinMax\r\n ? \"MinMax\"\r\n : resamplingMode === this.wasmContext.ResamplingMode.Auto\r\n ? \"Auto\"\r\n : \"Unknown\";\r\n };\r\n ExtremeResamplerHelper.prototype.getDataDistribution = function (dataEvenlySpaced, isCategoryAxis) {\r\n if (isCategoryAxis) {\r\n return this.wasmContext.ResamplingData.CategoryData;\r\n }\r\n return dataEvenlySpaced\r\n ? this.wasmContext.ResamplingData.LinearData\r\n : this.wasmContext.ResamplingData.UnevenlySpacedData;\r\n };\r\n return ExtremeResamplerHelper;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.ExtremeResamplerHelper = ExtremeResamplerHelper;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EResamplingMode = void 0;\r\nvar EResamplingMode;\r\n(function (EResamplingMode) {\r\n /**\r\n * Do not use resampling when redrawing a series\r\n */\r\n EResamplingMode[\"None\"] = \"None\";\r\n /**\r\n * Assumes Evenly-spaced data (TimeSeries). Resample by taking the min-max of oversampled data.\r\n * This results in the most visually accurate resampling, with the most performan\r\n */\r\n EResamplingMode[\"MinMax\"] = \"MinMax\";\r\n /**\r\n * Assumes Evenly-spaced data (TimeSeries). Resample by taking the median point of oversampled data\r\n */\r\n EResamplingMode[\"Mid\"] = \"Mid\";\r\n /**\r\n * Assumes Evenly-spaced data (TimeSeries). Resample by taking the maximum point of oversampled data\r\n */\r\n EResamplingMode[\"Max\"] = \"Max\";\r\n /**\r\n * Assumes Evenly-spaced data (TimeSeries). Resample by taking the minimum point of oversampled data\r\n */\r\n EResamplingMode[\"Min\"] = \"Min\";\r\n /**\r\n * Does not assume Evenly-spaced data (TimeSeries). Resample by taking the min-max of oversampled data.\r\n * This results in the most visually accurate resampling, with the most performant rendering\r\n */\r\n EResamplingMode[\"MinMaxWithUnevenSpacing\"] = \"MinMaxWithUnevenSpacing\";\r\n /**\r\n * Auto-detect the most suitable resampling algorithm (Fastest, plus most accurate) for the type of data appended\r\n */\r\n EResamplingMode[\"Auto\"] = \"Auto\";\r\n /**\r\n * EXPERIMENTAL! Assumes Evenly-spaced data (TimeSeries).\r\n * Resample by taking the Min, or the Max point of oversampled data. Outputs Min and Max when points in the resampling bucket span zero\r\n */\r\n EResamplingMode[\"MinOrMax\"] = \"MinOrMax\";\r\n})(EResamplingMode = exports.EResamplingMode || (exports.EResamplingMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResamplingParams = void 0;\r\nvar AutoRange_1 = require(\"../../../types/AutoRange\");\r\nvar ResamplingParams = /** @class */ (function () {\r\n function ResamplingParams(seriesViewRect, rs, xAxis) {\r\n this.zeroLineY = 0;\r\n this.precision = 0;\r\n this.enableExperimentalResampling = false;\r\n this.fifoCapacity = 0;\r\n this.fifoStartIndex = 0;\r\n this.viewportRect = seriesViewRect;\r\n if (rs) {\r\n var dataSeries = rs.dataSeries;\r\n this.resamplingMode = rs.resamplingMode;\r\n this.precision = rs.resamplingPrecision;\r\n if (xAxis) {\r\n this.indexesRange = rs.getIndicesRange(xAxis.visibleRange, xAxis.isCategoryAxis);\r\n //console.log(\"visible range\", xAxis.visibleRange.min, xAxis.visibleRange.max);\r\n //console.log(\"indexes range\", this.indexesRange.min, this.indexesRange.max);\r\n this.isCategoryAxis = xAxis.isCategoryAxis;\r\n this.isXAxisAutoRanged = xAxis.autoRange === AutoRange_1.EAutoRange.Always;\r\n this.xVisibleRange = xAxis.visibleRange;\r\n }\r\n if (dataSeries) {\r\n this.dataHasNaN = dataSeries === null || dataSeries === void 0 ? void 0 : dataSeries.dataDistributionCalculator.containsNaN;\r\n this.dataEvenlySpaced = dataSeries === null || dataSeries === void 0 ? void 0 : dataSeries.isEvenlySpaced;\r\n this.fifoCapacity = dataSeries.fifoCapacity;\r\n this.fifoStartIndex = dataSeries.fifoStartIndex;\r\n // Disabling fifo for sweeping nearly works, but is very unreliable.\r\n this.dataIsFifo = dataSeries.fifoCapacity > 0 && !dataSeries.fifoSweeping;\r\n }\r\n }\r\n }\r\n ResamplingParams.prototype.clone = function (options) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\r\n var rp = new ResamplingParams(undefined, undefined, undefined);\r\n rp.zeroLineY = (_a = options === null || options === void 0 ? void 0 : options.zeroLineY) !== null && _a !== void 0 ? _a : this.zeroLineY;\r\n rp.precision = (_b = options === null || options === void 0 ? void 0 : options.precision) !== null && _b !== void 0 ? _b : this.precision;\r\n rp.xVisibleRange = (_c = options === null || options === void 0 ? void 0 : options.xVisibleRange) !== null && _c !== void 0 ? _c : this.xVisibleRange;\r\n rp.indexesRange = (_d = options === null || options === void 0 ? void 0 : options.indicesRange) !== null && _d !== void 0 ? _d : this.indexesRange;\r\n rp.viewportRect = (_e = options === null || options === void 0 ? void 0 : options.viewportRect) !== null && _e !== void 0 ? _e : this.viewportRect;\r\n rp.isCategoryAxis = (_f = options === null || options === void 0 ? void 0 : options.isCategoryAxis) !== null && _f !== void 0 ? _f : this.isCategoryAxis;\r\n rp.isXAxisAutoRanged = (_g = options === null || options === void 0 ? void 0 : options.isXAxisAutoRanged) !== null && _g !== void 0 ? _g : this.isXAxisAutoRanged;\r\n rp.resamplingMode = (_h = options === null || options === void 0 ? void 0 : options.resamplingMode) !== null && _h !== void 0 ? _h : this.resamplingMode;\r\n rp.renderableSeriesHash = (_j = options === null || options === void 0 ? void 0 : options.renderableSeriesHash) !== null && _j !== void 0 ? _j : this.renderableSeriesHash;\r\n rp.enableExperimentalResampling = (_k = options === null || options === void 0 ? void 0 : options.enableExperimentalResampling) !== null && _k !== void 0 ? _k : this.enableExperimentalResampling;\r\n rp.dataHasNaN = (_l = options === null || options === void 0 ? void 0 : options.dataHasNaN) !== null && _l !== void 0 ? _l : this.dataHasNaN;\r\n rp.dataEvenlySpaced = (_m = options === null || options === void 0 ? void 0 : options.dataEvenlySpaced) !== null && _m !== void 0 ? _m : this.dataEvenlySpaced;\r\n rp.fifoCapacity = (_o = options.fifoCapacity) !== null && _o !== void 0 ? _o : this.fifoCapacity;\r\n rp.fifoStartIndex = (_p = options.fifoStartIndex) !== null && _p !== void 0 ? _p : this.fifoStartIndex;\r\n rp.dataIsFifo = (_q = options.dataIsFifo) !== null && _q !== void 0 ? _q : this.dataIsFifo;\r\n return rp;\r\n };\r\n return ResamplingParams;\r\n}());\r\nexports.ResamplingParams = ResamplingParams;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultTickCoordinatesProvider = void 0;\r\nvar TickCoordinatesProvider_1 = require(\"./TickCoordinatesProvider\");\r\nvar DefaultTickCoordinatesProvider = /** @class */ (function (_super) {\r\n __extends(DefaultTickCoordinatesProvider, _super);\r\n function DefaultTickCoordinatesProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultTickCoordinatesProvider.prototype.getTickCoordinates = function (majorTicks, minorTicks) {\r\n if (majorTicks === undefined)\r\n return {\r\n majorTickCoords: undefined,\r\n minorTickCoords: undefined,\r\n majorTickOverrides: undefined,\r\n minorTickOverRides: undefined\r\n };\r\n var coordinateCalculator = this.parentAxis.getCurrentCoordinateCalculator();\r\n // Rounding and +0.5 required to have lines on exact pixel boundaries.\r\n var majorTickCoords = majorTicks.map(function (t) { return Math.round(coordinateCalculator.getCoordinate(t)) + 0.5; });\r\n var minorTickCoords = minorTicks.map(function (t) { return Math.round(coordinateCalculator.getCoordinate(t)) + 0.5; });\r\n return { majorTickCoords: majorTickCoords, minorTickCoords: minorTickCoords, majorTickOverrides: majorTicks, minorTickOverRides: minorTicks };\r\n };\r\n return DefaultTickCoordinatesProvider;\r\n}(TickCoordinatesProvider_1.TickCoordinatesProvider));\r\nexports.DefaultTickCoordinatesProvider = DefaultTickCoordinatesProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StaticTickCoordinatesProvider = void 0;\r\nvar DefaultTickCoordinatesProvider_1 = require(\"./DefaultTickCoordinatesProvider\");\r\nvar StaticTickCoordinatesProvider = /** @class */ (function (_super) {\r\n __extends(StaticTickCoordinatesProvider, _super);\r\n function StaticTickCoordinatesProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n StaticTickCoordinatesProvider.prototype.getTickCoordinates = function (majorTicks, minorTicks) {\r\n var visibleRangeChanged = !this.parentAxis.visibleRange.equals(this.prevRange);\r\n var axisSizeChanged = this.parentAxis.getAxisSize() !== this.prevSize;\r\n var coordinateCalculator = this.parentAxis.getCurrentCoordinateCalculator();\r\n var majorTickOverrides;\r\n var minorTickOverRides;\r\n if (this.tickCoords === undefined || axisSizeChanged) {\r\n if (majorTicks === undefined) {\r\n return {\r\n majorTickCoords: undefined,\r\n minorTickCoords: undefined,\r\n majorTickOverrides: undefined,\r\n minorTickOverRides: undefined\r\n };\r\n }\r\n var majorTickCoords = majorTicks.map(function (t) { return coordinateCalculator.getCoordinate(t); });\r\n var minorTickCoords = minorTicks.map(function (t) { return coordinateCalculator.getCoordinate(t); });\r\n this.tickCoords = { majorTickCoords: majorTickCoords, minorTickCoords: minorTickCoords, majorTicks: majorTicks, minorTicks: minorTicks, majorTickLabels: undefined };\r\n }\r\n else if (visibleRangeChanged) {\r\n this.OverrideTickValues(this.tickCoords);\r\n (majorTickOverrides = this.tickCoords.majorTicks), (minorTickOverRides = this.tickCoords.minorTicks);\r\n }\r\n else {\r\n this.OverrideTickCoordinates(this.tickCoords);\r\n }\r\n this.prevRange = this.parentAxis.visibleRange;\r\n this.prevSize = this.parentAxis.getAxisSize();\r\n //console.log(this.tickCoords.majorTickCoords, this.tickCoords.majorTicks);\r\n return {\r\n majorTickCoords: this.tickCoords.majorTickCoords.map(function (t) { return Math.round(t + 0.5); }),\r\n minorTickCoords: this.tickCoords.minorTickCoords.map(function (t) { return Math.round(t + 0.5); }),\r\n majorTickOverrides: majorTickOverrides,\r\n minorTickOverRides: minorTickOverRides\r\n };\r\n };\r\n /** Update the static tick positions to correspond with the current calculated tick values */\r\n StaticTickCoordinatesProvider.prototype.forceRecalculateCoords = function () {\r\n this.tickCoords = undefined;\r\n };\r\n StaticTickCoordinatesProvider.prototype.OverrideTickValues = function (tickCoords) {\r\n var coordinateCalculator = this.parentAxis.getCurrentCoordinateCalculator();\r\n if (coordinateCalculator != null) {\r\n tickCoords.minorTickCoords.forEach(function (t, i) { return (tickCoords.minorTicks[i] = coordinateCalculator.getDataValue(t)); });\r\n tickCoords.majorTickCoords.forEach(function (t, i) { return (tickCoords.majorTicks[i] = coordinateCalculator.getDataValue(t)); });\r\n }\r\n };\r\n StaticTickCoordinatesProvider.prototype.OverrideTickCoordinates = function (tickCoords) {\r\n var coordinateCalculator = this.parentAxis.getCurrentCoordinateCalculator();\r\n if (coordinateCalculator != null) {\r\n if (coordinateCalculator != null) {\r\n tickCoords.minorTicks.forEach(function (t, i) { return (tickCoords.minorTickCoords[i] = coordinateCalculator.getCoordinate(t)); });\r\n tickCoords.majorTicks.forEach(function (t, i) { return (tickCoords.majorTickCoords[i] = coordinateCalculator.getCoordinate(t)); });\r\n }\r\n }\r\n };\r\n return StaticTickCoordinatesProvider;\r\n}(DefaultTickCoordinatesProvider_1.DefaultTickCoordinatesProvider));\r\nexports.StaticTickCoordinatesProvider = StaticTickCoordinatesProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TickCoordinatesProvider = void 0;\r\n/**\r\n * A base class for Tick Coordinate Providers, which convert arrays of major and minor ticks (data values) into pixel coordinates.\r\n */\r\nvar TickCoordinatesProvider = /** @class */ (function () {\r\n function TickCoordinatesProvider() {\r\n }\r\n /**\r\n * Called when the {@link TickCoordinatesProvider} is attached to an {@link AxisCore | Axis}\r\n * @param axis The Axis we are attached to.\r\n */\r\n TickCoordinatesProvider.prototype.attachedToAxis = function (axis) {\r\n this.parentAxis = axis;\r\n };\r\n /**\r\n * Called when the {@link TickCoordinatesProvider} is detached from an {@link AxisCore | Axis}\r\n * @param axis The Axis we are attached to.\r\n */\r\n TickCoordinatesProvider.prototype.detachedFromAxis = function () {\r\n this.parentAxis = undefined;\r\n };\r\n return TickCoordinatesProvider;\r\n}());\r\nexports.TickCoordinatesProvider = TickCoordinatesProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LogarithmicTickProvider = exports.ELogarithmicMajorTickMode = exports.ELogarithmicMinorTickMode = void 0;\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar isRealNumber_1 = require(\"../../../utils/isRealNumber\");\r\nvar TickProvider_1 = require(\"./TickProvider\");\r\nvar ELogarithmicMinorTickMode;\r\n(function (ELogarithmicMinorTickMode) {\r\n ELogarithmicMinorTickMode[\"Linear\"] = \"Linear\";\r\n ELogarithmicMinorTickMode[\"Logarithmic\"] = \"Logarithmic\";\r\n ELogarithmicMinorTickMode[\"Auto\"] = \"Auto\";\r\n})(ELogarithmicMinorTickMode = exports.ELogarithmicMinorTickMode || (exports.ELogarithmicMinorTickMode = {}));\r\nvar ELogarithmicMajorTickMode;\r\n(function (ELogarithmicMajorTickMode) {\r\n ELogarithmicMajorTickMode[\"EqualSpacing\"] = \"EqualSpacing\";\r\n ELogarithmicMajorTickMode[\"RoundNumbers\"] = \"RoundNumbers\";\r\n})(ELogarithmicMajorTickMode = exports.ELogarithmicMajorTickMode || (exports.ELogarithmicMajorTickMode = {}));\r\n/**\r\n * @summary The LogarithmicTickProvider is a {@link TickProvider} implementation for Logarithmic 2D or 3D Axis.\r\n * @description TickProviders are responsible for calculating the interval between major and minor gridlines, ticks and labels.\r\n *\r\n * * The method {@link getMajorTicks} returns an array of major ticks (data-values values where SciChart will place labels and major gridlines.\r\n * * The method {@link getMinorTicks} returns an array of minor ticks (data-values values where SciChart will place minor gridlines.\r\n * * The method {@link calculateTicks} performs the actual calculation\r\n *\r\n * Override these methods to create custom implementations of Tick intervals in SciChart\r\n * @remarks\r\n * See also {@link TickProvider} for the base implementation.\r\n */\r\nvar LogarithmicTickProvider = /** @class */ (function (_super) {\r\n __extends(LogarithmicTickProvider, _super);\r\n function LogarithmicTickProvider(wasmContext) {\r\n var _this = _super.call(this) || this;\r\n _this.logarithmicBase = 10;\r\n _this.isHighPrecisionTicks = true;\r\n _this.majorTickModeProperty = ELogarithmicMajorTickMode.EqualSpacing;\r\n _this.minorTickModeProperty = ELogarithmicMinorTickMode.Linear;\r\n _this.wasmContext = wasmContext;\r\n return _this;\r\n }\r\n Object.defineProperty(LogarithmicTickProvider.prototype, \"majorTickMode\", {\r\n /**\r\n * Gets or sets the mode for Major ticks using {@link ELogarithmicMajorTickMode}\r\n * Equally spaced (best for large ranges) or\r\n * Round numbers (better for small ranges)\r\n */\r\n get: function () {\r\n return this.majorTickModeProperty;\r\n },\r\n /**\r\n * Gets or sets the mode for Major ticks using {@link ELogarithmicMajorTickMode}\r\n * Equally spaced (best for large ranges) or\r\n * Round numbers (better for small ranges)\r\n */\r\n set: function (mode) {\r\n var _a;\r\n this.majorTickModeProperty = mode;\r\n if ((_a = this.parentAxis) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback) {\r\n this.parentAxis.invalidateParentCallback();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LogarithmicTickProvider.prototype, \"minorTickMode\", {\r\n /**\r\n * Gets or sets the mode for minor ticks using {@link ELogarithmicMinorTickMode},\r\n * Linear (default, best for smaller ranges),\r\n * Logarithmic (better for very large ranges) or\r\n * Auto (switches from linear to Logarithmic when the visible range is such that\r\n * the first linear minor tick would be more than 70% of the major tick)\r\n */\r\n get: function () {\r\n return this.minorTickModeProperty;\r\n },\r\n /**\r\n * Gets or sets the mode for minor ticks using {@link ELogarithmicMinorTickMode},\r\n * Linear (default, best for smaller ranges),\r\n * Logarithmic (better for very large ranges) or\r\n * Auto (switches from linear to Logarithmic when the visible range is such that\r\n * the first linear minor tick would be more than 70% of the major tick)\r\n */\r\n set: function (mode) {\r\n var _a;\r\n this.minorTickModeProperty = mode;\r\n if ((_a = this.parentAxis) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback) {\r\n this.parentAxis.invalidateParentCallback();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LogarithmicTickProvider.prototype.getMajorTicks = function (minorDelta, majorDelta, visibleRange) {\r\n var deltaRange = new NumberRange_1.NumberRange(minorDelta, majorDelta);\r\n var logAxis = this.parentAxis;\r\n var adj = 1;\r\n if ((logAxis === null || logAxis === void 0 ? void 0 : logAxis.isNegative) && visibleRange.min < 0) {\r\n adj = -1;\r\n visibleRange = new NumberRange_1.NumberRange(Math.abs(visibleRange.max), Math.abs(visibleRange.min));\r\n }\r\n if (!this.isParamsValid(visibleRange, deltaRange)) {\r\n return [];\r\n }\r\n if (this.majorTickMode === ELogarithmicMajorTickMode.RoundNumbers) {\r\n return this.getRoundNumberMajorTicks(minorDelta, majorDelta, visibleRange);\r\n }\r\n else {\r\n var results = [];\r\n if (this.logarithmicBase === 0)\r\n return results;\r\n var current = visibleRange.min;\r\n var min = visibleRange.min;\r\n var max = visibleRange.max;\r\n var numberUtil = this.wasmContext.NumberUtil;\r\n if (!this.isHighPrecisionTicks &&\r\n !numberUtil.IsPowerOf(current, this.logarithmicBase, this.logarithmicBase)) {\r\n current = numberUtil.RoundDownPower(current, this.logarithmicBase, this.logarithmicBase);\r\n }\r\n var start = numberUtil.Log(current, this.logarithmicBase);\r\n start = numberUtil.RoundToDigits(start, 10);\r\n if (!numberUtil.IsDivisibleBy(start, majorDelta)) {\r\n start = numberUtil.RoundUp(start, majorDelta);\r\n }\r\n var exp = start;\r\n current = Math.pow(this.logarithmicBase, exp);\r\n var tickCount = 0;\r\n while (current <= max) {\r\n // If major ticks are calculated, the exponent of current should be divisible by MajorDelta\r\n if (numberUtil.IsDivisibleBy(exp, majorDelta)) {\r\n results.push(adj * current);\r\n }\r\n exp = start + ++tickCount * majorDelta;\r\n current = Math.pow(this.logarithmicBase, exp);\r\n }\r\n //console.log(majorDelta, minorDelta, results);\r\n if (adj === -1) {\r\n return results.reverse();\r\n }\r\n else {\r\n return results;\r\n }\r\n }\r\n };\r\n LogarithmicTickProvider.prototype.getRoundNumberMajorTicks = function (minorDelta, majorDelta, visibleRange) {\r\n var results = [];\r\n var current = visibleRange.min;\r\n var min = visibleRange.min;\r\n var max = visibleRange.max;\r\n var diff = Math.pow(this.logarithmicBase, majorDelta);\r\n var minDiff = this.roundNum(min * (diff - 1));\r\n current = this.roundNum(current, minDiff);\r\n results.push(current);\r\n while (current <= max) {\r\n var nextDiff = current * (diff - 1);\r\n var next = this.roundNum(current * diff, nextDiff);\r\n var working = next;\r\n while (next === current) {\r\n working = working * diff;\r\n next = this.roundNum(working, nextDiff);\r\n }\r\n current = next;\r\n results.push(current);\r\n }\r\n return results;\r\n };\r\n LogarithmicTickProvider.prototype.roundNum = function (value, difference) {\r\n if (value === 0)\r\n return 0;\r\n var exponent = Math.floor(Math.log10(value));\r\n if (difference) {\r\n exponent = Math.min(exponent, Math.round(Math.log10(difference)));\r\n }\r\n // Fractional part of range\r\n var figures = this.wasmContext.NumberUtil.RoundToDigits(value / Math.pow(10, exponent), 1);\r\n var base = Math.floor(figures);\r\n var fraction = figures - base;\r\n var niceFraction = NaN;\r\n if (fraction < 0.3) {\r\n niceFraction = 0;\r\n }\r\n else if (fraction < 0.7) {\r\n niceFraction = 0.5;\r\n }\r\n else {\r\n niceFraction = 1;\r\n }\r\n return (base + niceFraction) * Math.pow(10, exponent);\r\n };\r\n LogarithmicTickProvider.prototype.getMinorTicks = function (minorDelta, majorDelta, visibleRange) {\r\n var logAxis = this.parentAxis;\r\n var adj = 1;\r\n if (logAxis === null || logAxis === void 0 ? void 0 : logAxis.isNegative) {\r\n adj = -1;\r\n visibleRange = new NumberRange_1.NumberRange(Math.abs(visibleRange.max), Math.abs(visibleRange.min));\r\n }\r\n var firstIncrement = visibleRange.min * minorDelta;\r\n var partMajor = visibleRange.min * Math.pow(this.logarithmicBase, majorDelta * 0.7);\r\n var minorsToMajors = (Math.pow(this.logarithmicBase, majorDelta) - 1) / minorDelta;\r\n var minorLogMode = this.minorTickMode === ELogarithmicMinorTickMode.Logarithmic ||\r\n (this.minorTickMode === ELogarithmicMinorTickMode.Auto && partMajor < firstIncrement);\r\n var results = [];\r\n var majorTicks = this.getMajorTicks(minorDelta, majorDelta, visibleRange);\r\n var count = majorTicks.length;\r\n var logDiff = Math.pow(this.logarithmicBase, majorDelta);\r\n if (count > 0) {\r\n for (var index = 0; index <= count; index++) {\r\n var upper = index < count ? majorTicks[index] : majorTicks[index - 1] * logDiff;\r\n var prev = Math.max(upper / logDiff, visibleRange.min);\r\n var increment = prev * minorDelta;\r\n if (minorLogMode) {\r\n var ticks = this.getMajorTicks(1, majorDelta / minorsToMajors, new NumberRange_1.NumberRange(prev, upper));\r\n ticks.forEach(function (t) { return results.push(adj * t); });\r\n }\r\n else {\r\n var current = prev + increment;\r\n while (current < upper && increment > 0) {\r\n results.push(adj * current);\r\n current += increment;\r\n }\r\n }\r\n }\r\n }\r\n return results;\r\n };\r\n /**\r\n * @summary Performs sanity checks to see if parameters are valid.\r\n * @description If this method returns false, then we should not process or compute major/minor gridlines, but instead should\r\n * return empty array ```[]``` in {@link getMajorTicks} / {@link getMinorTicks}\r\n * @param visibleRange The current {@link AxisCore.visibleRange} which is the minimum / maximum range visible on the Axis.\r\n * @param deltaRange The current {@link AxisCore.minorDelta} and {@link AxisCore.majorDelta} which is the difference between minor\r\n * and major gridlines requested by the {@link AxisCore | Axis}\r\n */\r\n LogarithmicTickProvider.prototype.isParamsValid = function (visibleRange, deltaRange) {\r\n Guard_1.Guard.notNull(visibleRange, \"visibleRange\");\r\n Guard_1.Guard.notNull(deltaRange, \"deltaRange\");\r\n return ((0, isRealNumber_1.isRealNumber)(visibleRange.min) &&\r\n (0, isRealNumber_1.isRealNumber)(visibleRange.max) &&\r\n (0, isRealNumber_1.isRealNumber)(deltaRange.min) &&\r\n (0, isRealNumber_1.isRealNumber)(deltaRange.max));\r\n };\r\n return LogarithmicTickProvider;\r\n}(TickProvider_1.TickProvider));\r\nexports.LogarithmicTickProvider = LogarithmicTickProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumericTickProvider = void 0;\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar isRealNumber_1 = require(\"../../../utils/isRealNumber\");\r\nvar TickProvider_1 = require(\"./TickProvider\");\r\n/**\r\n * @summary The NumericTickProvider is a {@link TickProvider} implementation for Numeric 2D or 3D Axis.\r\n * @description TickProviders are responsible for calculating the interval between major and minor gridlines, ticks and labels.\r\n *\r\n * * The method {@link getMajorTicks} returns an array of major ticks (data-values values where SciChart will place labels and major gridlines.\r\n * * The method {@link getMinorTicks} returns an array of minor ticks (data-values values where SciChart will place minor gridlines.\r\n * * The method {@link isParamsValid} performs some sanity checks.\r\n * * The method {@link calculateTicks} performs the actual calculation\r\n *\r\n * Override these methods to create custom implementations of Tick intervals in SciChart\r\n * @remarks\r\n * See also {@link TickProvider} for the base implementation.\r\n */\r\nvar NumericTickProvider = /** @class */ (function (_super) {\r\n __extends(NumericTickProvider, _super);\r\n /**\r\n * Creates an instance of a NumericTickProvider\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart | SciChart 3D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 WebAssembly Rendering Engine\r\n */\r\n function NumericTickProvider(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n _this.minDeltaValue = 1e-13;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n NumericTickProvider.prototype.getMinorTicks = function (minorDelta, majorDelta, visibleRange) {\r\n var deltaRange = new NumberRange_1.NumberRange(minorDelta, majorDelta);\r\n var tickRange = visibleRange;\r\n if (!this.isParamsValid(tickRange, deltaRange)) {\r\n return [];\r\n }\r\n return this.calculateTicks(tickRange, deltaRange.min, deltaRange.max);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NumericTickProvider.prototype.getMajorTicks = function (minorDelta, majorDelta, visibleRange) {\r\n var deltaRange = new NumberRange_1.NumberRange(minorDelta, majorDelta);\r\n var tickRange = visibleRange;\r\n if (!this.isParamsValid(tickRange, deltaRange)) {\r\n return [];\r\n }\r\n return this.calculateTicks(tickRange, deltaRange.max, deltaRange.max);\r\n };\r\n /**\r\n * @summary Performs sanity checks to see if parameters are valid.\r\n * @description If this method returns false, then we should not process or compute major/minor gridlines, but instead should\r\n * return empty array ```[]``` in {@link getMajorTicks} / {@link getMinorTicks}\r\n * @param visibleRange The current {@link AxisCore.visibleRange} which is the minimum / maximum range visible on the Axis.\r\n * @param deltaRange The current {@link AxisCore.minorDelta} and {@link AxisCore.majorDelta} which is the difference between minor\r\n * and major gridlines requested by the {@link AxisCore | Axis}\r\n */\r\n NumericTickProvider.prototype.isParamsValid = function (visibleRange, deltaRange) {\r\n Guard_1.Guard.notNull(visibleRange, \"visibleRange\");\r\n Guard_1.Guard.notNull(deltaRange, \"deltaRange\");\r\n return ((0, isRealNumber_1.isRealNumber)(visibleRange.min) && (0, isRealNumber_1.isRealNumber)(visibleRange.max) && deltaRange.min > 0 && deltaRange.max > 0);\r\n };\r\n /**\r\n * @summary Performs the Numeric tick calculation\r\n * @param visibleRange The current {@link AxisCore.visibleRange} which is the minimum / maximum range visible on the Axis.\r\n * @param delta The delta we are calculating for (could be major or minor delta)\r\n * @param majorDelta The current {@link AxisCore.majorDelta} which is the difference between major\r\n * gridlines requested by the {@link AxisCore | Axis}\r\n */\r\n NumericTickProvider.prototype.calculateTicks = function (visibleRange, delta, majorDelta) {\r\n var results = [];\r\n var min = visibleRange.min;\r\n var max = visibleRange.max;\r\n var calcMajorTicks = delta === majorDelta;\r\n var numberUtil = this.webAssemblyContext.NumberUtil;\r\n // Skip the divisiblity check here as it can return true if the min is within epsilon of being divisible,\r\n // but false for min + delta, leading to only one tick being output.\r\n var current = numberUtil.RoundUp(min, delta);\r\n var start = current;\r\n var tickCount = 0;\r\n while (current <= max) {\r\n // TRUE if major ticks are calculated && Current is divisible by MajorDelta\r\n // or if minor ticks are calculated && Current is NOT divisible by MajorDelta\r\n if (!(numberUtil.IsDivisibleBy(current, majorDelta) !== calcMajorTicks)) {\r\n results.push(current);\r\n }\r\n current = start + ++tickCount * delta;\r\n }\r\n return results;\r\n };\r\n return NumericTickProvider;\r\n}(TickProvider_1.TickProvider));\r\nexports.NumericTickProvider = NumericTickProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TickProvider = void 0;\r\n/**\r\n * @summary The TickProvider is a base class for calculating ticks (interval between major and minor gridlines, ticks and labels).\r\n * @description TickProviders are responsible for calculating the interval between major and minor gridlines, ticks and labels.\r\n *\r\n * The method {@getMajorTicks} returns an array of major ticks (data-values values where SciChart will place labels and major gridlines).\r\n * The method {@getMinorTicks} returns an array of minor ticks (data-values values where SciChart will place minor gridlines).\r\n * The method {@attachedToAxis} is called when the TickProvider is attached to an {@link AxisCore | Axis}.\r\n *\r\n * Override these methods to create custom implementations of Tick intervals in SciChart or use our built-in {@link NumericTickProvider}\r\n * @remarks\r\n * TickProviders are shared between 2D & 3D Charts.\r\n * See also {@link NumericTickProvider} for a concrete implementation.\r\n */\r\nvar TickProvider = /** @class */ (function () {\r\n function TickProvider() {\r\n }\r\n /**\r\n * Called when the TickProvider is attached to an {@link AxisCore | Axis}\r\n * @param axis\r\n */\r\n TickProvider.prototype.attachedToAxis = function (axis) {\r\n this.parentAxis = axis;\r\n };\r\n /**\r\n * Called when the TickProvider is attached from an {@link AxisCore | Axis}\r\n * @param axis\r\n */\r\n TickProvider.prototype.detachedFromAxis = function () {\r\n this.parentAxis = undefined;\r\n };\r\n return TickProvider;\r\n}());\r\nexports.TickProvider = TickProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChartTitleRenderer = void 0;\r\nvar Thickness_1 = require(\"../../Core/Thickness\");\r\nvar TextStyle_1 = require(\"../../types/TextStyle\");\r\nvar SciChartSurfaceBase_1 = require(\"../Visuals/SciChartSurfaceBase\");\r\nvar TitleRenderer_1 = require(\"./TitleRenderer\");\r\n/**\r\n * Draws a chart title\r\n */\r\nvar ChartTitleRenderer = /** @class */ (function (_super) {\r\n __extends(ChartTitleRenderer, _super);\r\n function ChartTitleRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.titleOffsetProperty = Thickness_1.Thickness.fromNumber(0);\r\n return _this;\r\n }\r\n Object.defineProperty(ChartTitleRenderer.prototype, \"titleOffset\", {\r\n /**\r\n * Defines a padding reserved for space taken by a title\r\n */\r\n get: function () {\r\n return this.titleOffsetProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Calculates {@link ChartTitleRenderer.titleOffset}\r\n */\r\n ChartTitleRenderer.prototype.measure = function (title, originalTextStyle, renderContext) {\r\n var _a;\r\n var shouldUpdateTextSize = title !== this.text ||\r\n !(0, TextStyle_1.areEqualTextStyles)(originalTextStyle, this.originalTextStyle) ||\r\n ((_a = this.originalTextStyle) === null || _a === void 0 ? void 0 : _a.position) !== originalTextStyle.position;\r\n if (title && title.length > 0) {\r\n if (!this.useCache || (!this.texture && !originalTextStyle.useNativeText) || shouldUpdateTextSize) {\r\n // recalculate cached text size info or texture\r\n this.invalidateCache();\r\n this.text = title;\r\n this.originalTextStyle = __assign({}, originalTextStyle);\r\n this.textStyle = (0, TextStyle_1.adjustTextStyle)(originalTextStyle);\r\n this.useNativeTextProperty = originalTextStyle.useNativeText;\r\n this.titlePosition = originalTextStyle.position;\r\n this.getTextSize(title, this.textStyle, renderContext);\r\n }\r\n else {\r\n // update text style properties that only affect placement\r\n this.textStyle.alignment = originalTextStyle.alignment;\r\n this.textStyle.placeWithinChart = originalTextStyle.placeWithinChart;\r\n }\r\n }\r\n this.titleOffsetProperty = this.getTitleOffset(title, this.textStyle);\r\n };\r\n /**\r\n * Calculates {@link ChartTitleRenderer.viewRect} of the title\r\n * @param chartViewRect - the container area which is used as an origin for title layout calculation\r\n */\r\n ChartTitleRenderer.prototype.layout = function (chartViewRect) {\r\n if (!this.text || this.text.length === 0) {\r\n this.viewRectProperty = undefined;\r\n return;\r\n }\r\n this.viewRectProperty = this.getViewRect(this.text, chartViewRect, this.textStyle.position, this.textStyle.alignment);\r\n };\r\n /**\r\n * Performs rendering of the title\r\n */\r\n ChartTitleRenderer.prototype.draw = function (renderContext) {\r\n if (!this.text || this.text.length === 0) {\r\n return;\r\n }\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"ChartTitleRenderer.draw fontSize: \".concat(this.textStyle.fontSize));\r\n }\r\n var _a = this.textStyle, useNativeText = _a.useNativeText, position = _a.position, lineSpacing = _a.lineSpacing;\r\n this.drawInternal(renderContext, useNativeText, position);\r\n if (this.drawDebug) {\r\n this.drawTitleDebugViewRect(renderContext);\r\n }\r\n };\r\n ChartTitleRenderer.prototype.getTitleTexture = function () {\r\n var position = this.textStyle.position;\r\n var adjRotation = (0, TitleRenderer_1.getAdjustedRotation)(this.textStyle.rotation, position);\r\n var titleText = Array.isArray(this.text) ? this.text : this.text.split(\"\\n\");\r\n var texture = this.textureManager.createTextTexture(titleText, \r\n // @ts-ignore mismatch with TTextStyle\r\n this.textStyle, \r\n // { ...this.textStyle, padding: new Thickness(0, 0, 0, 0) },\r\n adjRotation, this.textStyle.lineSpacing);\r\n return texture;\r\n };\r\n /**\r\n * Calculates the {@link ChartTitleRenderer.titleOffset}\r\n */\r\n ChartTitleRenderer.prototype.getTitleOffset = function (title, textStyle) {\r\n if (!this.text || this.text.length === 0 || textStyle.placeWithinChart) {\r\n return Thickness_1.Thickness.fromNumber(0);\r\n }\r\n var height = this.textHeight;\r\n switch (textStyle.position) {\r\n case TextStyle_1.ETitlePosition.Top:\r\n return new Thickness_1.Thickness(height, 0, 0, 0);\r\n case TextStyle_1.ETitlePosition.Bottom:\r\n return new Thickness_1.Thickness(0, 0, height, 0);\r\n case TextStyle_1.ETitlePosition.Left:\r\n return new Thickness_1.Thickness(0, 0, 0, height);\r\n case TextStyle_1.ETitlePosition.Right:\r\n return new Thickness_1.Thickness(0, height, 0, 0);\r\n default:\r\n return (0, TextStyle_1.handleInvalidChartTitlePosition)(textStyle.position);\r\n }\r\n };\r\n return ChartTitleRenderer;\r\n}(TitleRenderer_1.TitleRendererBase));\r\nexports.ChartTitleRenderer = ChartTitleRenderer;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderPassData = void 0;\r\n/**\r\n * @summary RenderPassData contains properties which are passed to {@link BaseRenderableSeries} at the time of drawing\r\n */\r\nvar RenderPassData = /** @class */ (function () {\r\n /**\r\n * Creates an instance of RenderPassData\r\n * @param indexRange The min and max index to data-range currently visible on the {@link SciChartSurface}\r\n * @param getxCoordinateCalculator A function to get the XAxis {@link CoordinateCalculatorBase | Coordinate Calculator},\r\n * used to transform between pixel and data-coordinates\r\n * @param getyCoordinateCalculator A function to get the YAxis {@link CoordinateCalculatorBase | Coordinate Calculator},\r\n * used to transform between pixel and data-coordinates\r\n * @param isVerticalChart A flag indicating if the chart is currently vertically arranged (XAxis on the left, YAxis on the top/bottom)\r\n * @param pointSeries The point series\r\n * @param resamplingHash The resampling hash value, used for caching\r\n */\r\n function RenderPassData(indexRange, getxCoordinateCalculator, getyCoordinateCalculator, isVerticalChart, pointSeries, resamplingHash) {\r\n this.indexRange = indexRange;\r\n this.getxCoordinateCalculator = getxCoordinateCalculator;\r\n this.getyCoordinateCalculator = getyCoordinateCalculator;\r\n this.isVerticalChart = isVerticalChart;\r\n this.pointSeries = pointSeries;\r\n this.resamplingHash = resamplingHash;\r\n }\r\n Object.defineProperty(RenderPassData.prototype, \"xCoordinateCalculator\", {\r\n /**\r\n * Get the XAxis {@link CoordinateCalculatorBase | Coordinate Calculator},\r\n * used to transform between pixel and data-coordinates\r\n */\r\n get: function () {\r\n return this.getxCoordinateCalculator();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RenderPassData.prototype, \"yCoordinateCalculator\", {\r\n /**\r\n * Get the YAxis {@link CoordinateCalculatorBase | Coordinate Calculator},\r\n * used to transform between pixel and data-coordinates\r\n */\r\n get: function () {\r\n return this.getyCoordinateCalculator();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return RenderPassData;\r\n}());\r\nexports.RenderPassData = RenderPassData;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderPassDataCollection = void 0;\r\nvar RenderPassDataCollection = /** @class */ (function () {\r\n function RenderPassDataCollection() {\r\n }\r\n return RenderPassDataCollection;\r\n}());\r\nexports.RenderPassDataCollection = RenderPassDataCollection;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderPassInfo = void 0;\r\nvar RenderPassInfo = /** @class */ (function () {\r\n function RenderPassInfo(seriesCount, seriesViewRect) {\r\n this.pointSeriesArray = [];\r\n this.renderableSeriesArray = [];\r\n this.indicesRanges = [];\r\n this.resamplingHashes = [];\r\n this.seriesViewRect = seriesViewRect;\r\n }\r\n return RenderPassInfo;\r\n}());\r\nexports.RenderPassInfo = RenderPassInfo;\r\n","\"use strict\";\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartRenderer = void 0;\r\nvar app_1 = require(\"../../constants/app\");\r\nvar Dictionary_1 = require(\"../../Core/Dictionary\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar AutoRange_1 = require(\"../../types/AutoRange\");\r\nvar AxisAlignment_1 = require(\"../../types/AxisAlignment\");\r\nvar DefaultRenderLayer_1 = require(\"../../types/DefaultRenderLayer\");\r\nvar hash_1 = require(\"../../utils/hash\");\r\nvar WebGlRenderContext2D_1 = require(\"../Drawing/WebGlRenderContext2D\");\r\nvar ResamplingParams_1 = require(\"../Numerics/Resamplers/ResamplingParams\");\r\nvar IAnnotation_1 = require(\"../Visuals/Annotations/IAnnotation\");\r\nvar SciChartSurface_1 = require(\"../Visuals/SciChartSurface\");\r\nvar SciChartSurfaceBase_1 = require(\"../Visuals/SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../Visuals/TextureManager/DpiHelper\");\r\nvar RenderPassData_1 = require(\"./RenderPassData\");\r\nvar RenderPassInfo_1 = require(\"./RenderPassInfo\");\r\nvar SvgClippingMode_1 = require(\"../../types/SvgClippingMode\");\r\nvar WatermarkPosition_1 = require(\"../../types/WatermarkPosition\");\r\nvar NativeObject_1 = require(\"../Visuals/Helpers/NativeObject\");\r\nvar createNativeRect_1 = require(\"../Visuals/Helpers/createNativeRect\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar logger_1 = require(\"../../utils/logger\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\n/**\r\n * A class used internally in SciChart to perform layout, arrangement, data-preparation and rendering on the Cartesian 2D {@link SciChartSurface}\r\n */\r\nvar SciChartRenderer = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the SciChartRenderer\r\n * @param sciChartSurface The {@link SciChartSurface} that we are rendering\r\n */\r\n function SciChartRenderer(sciChartSurface) {\r\n this.isInvalidated = false;\r\n this.sciChartSurface = sciChartSurface;\r\n }\r\n /**\r\n * Used internally\r\n * @param xAxis\r\n * @param rs\r\n * @param seriesViewRect\r\n */\r\n SciChartRenderer.resampleSeries = function (xAxis, rs, seriesViewRect) {\r\n /**\r\n * Stacked series and Heatmap do not support resampling\r\n * If a series does not support resampling, the pointSeries is not used in the drawing provider.\r\n * For example, UniformHeatmapDrawingProvider does not use renderPassData.pointSeries,\r\n * but LineSeriesDrawingProvider use renderPassData.pointSeries in the draw() method!\r\n */\r\n if (!rs.supportsResampling)\r\n return {\r\n pointSeries: rs.toPointSeries(),\r\n renderableSeries: rs,\r\n indicesRange: rs.isStacked ? undefined : rs.getIndicesRange(xAxis.visibleRange, xAxis.isCategoryAxis),\r\n resamplingHash: undefined\r\n };\r\n var rp = new ResamplingParams_1.ResamplingParams(seriesViewRect, rs, xAxis);\r\n if (!rs.needsResampling(rp))\r\n return {\r\n pointSeries: rs.toPointSeries(),\r\n renderableSeries: rs,\r\n indicesRange: rp.indexesRange,\r\n resamplingHash: undefined\r\n };\r\n var resamplingHash = SciChartRenderer.calculateResamplingHash(rs, rp);\r\n var prevRPD = rs.getCurrentRenderPassData();\r\n var useFromCache = Boolean(prevRPD && prevRPD.resamplingHash === resamplingHash);\r\n // console.log(\"resampling ...\");\r\n // console.log(\"useFromCache\", useFromCache);\r\n var pointSeries = useFromCache ? prevRPD.pointSeries : rs.toPointSeries(rp);\r\n return {\r\n pointSeries: pointSeries,\r\n renderableSeries: rs,\r\n indicesRange: rp.indexesRange,\r\n resamplingHash: resamplingHash\r\n };\r\n };\r\n SciChartRenderer.calculateResamplingHash = function (rs, rp) {\r\n var hashes = [];\r\n var enableDrawingOptimizationsHash = hash_1.hashUtils.generateBooleanHash(rs.enableDrawingOptimisations);\r\n hashes.push(enableDrawingOptimizationsHash);\r\n var dataSeries = rs.dataSeries;\r\n if (dataSeries) {\r\n var dataSeriesHash = hash_1.hashUtils.generateHash(dataSeries.id);\r\n hashes.push(dataSeriesHash);\r\n var dataSeriesCountHash = hash_1.hashUtils.generateNumberHash(dataSeries.count());\r\n hashes.push(dataSeriesCountHash);\r\n var dataSeriesSortedHash = hash_1.hashUtils.generateBooleanHash(dataSeries.dataDistributionCalculator.isSortedAscending);\r\n hashes.push(dataSeriesSortedHash);\r\n var dataSeriesChangeCountHash = hash_1.hashUtils.generateNumberHash(dataSeries.changeCount);\r\n hashes.push(dataSeriesChangeCountHash);\r\n }\r\n var resamplingParamsHash = hash_1.hashUtils.generateObjectHash(rp);\r\n hashes.push(resamplingParamsHash);\r\n return hash_1.hashUtils.generateCombinedHash(hashes);\r\n };\r\n /**\r\n * Render loop for the current {@SciChartSurface}\r\n * @param renderContext the {@WebGLRenderContext2D} used for drawing\r\n */\r\n SciChartRenderer.prototype.render = function (renderContext) {\r\n var _this = this;\r\n var _a;\r\n if (this.sciChartSurface.isDeleted) {\r\n return;\r\n }\r\n var mark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.RenderStart, {\r\n contextId: this.sciChartSurface.id\r\n });\r\n logger_1.Logger.debug(\"render start\");\r\n this.isInvalidated = false;\r\n var nativeContext = renderContext.getNativeContext();\r\n var wasmContext = this.sciChartSurface.webAssemblyContext2D;\r\n var oldBlendMode;\r\n if (!app_1.IS_TEST_ENV) {\r\n oldBlendMode = nativeContext.GetBlendMode();\r\n nativeContext.SetBlendMode(wasmContext.eSCRTBlendMode.BlendAdditiveOneAlpha);\r\n }\r\n // Step 1 validate the chart and show errors\r\n this.validate();\r\n // Animation Step\r\n var timeElapsed = this.previousTime ? Date.now() - this.previousTime : 0;\r\n this.previousTime = Date.now();\r\n this.sciChartSurface.onAnimate(timeElapsed);\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.sciChartSurface.updateBackground();\r\n }, this.getAbsoluteLayer(DefaultRenderLayer_1.EDefaultRenderLayer.Background));\r\n // Step 2 autorange\r\n this.sciChartSurface.updateStackedCollectionAccumulatedVectors();\r\n this.sciChartSurface.xAxes.asArray().forEach(function (axis) { return _this.tryPerformAutoRangeOn(axis, _this.sciChartSurface); });\r\n this.sciChartSurface.yAxes.asArray().forEach(function (axis) { return _this.tryPerformAutoRangeOn(axis, _this.sciChartSurface); });\r\n // Step 3 layout\r\n var titleOffset = this.measureTitle(renderContext);\r\n var seriesViewRect = this.sciChartSurface.layoutManager.layoutChart(renderContext.viewportSize, titleOffset);\r\n var viewportSvgRect = this.getViewportSvgRect(renderContext.viewportSize, seriesViewRect);\r\n this.sciChartSurface.setCoordSvgTranslation(seriesViewRect.x - viewportSvgRect.x, seriesViewRect.y - viewportSvgRect.y);\r\n this.resizeAnnotationRootElements(viewportSvgRect);\r\n this.layoutTitle(seriesViewRect);\r\n this.scheduleTitleDraw(renderContext);\r\n // Step 4 prepare render data\r\n var _b = this.prepareAxesRenderData(), xAxesById = _b.xAxesById, yAxesById = _b.yAxesById;\r\n var renderPassInfo = this.prepareSeriesRenderData(seriesViewRect, xAxesById);\r\n // Draw seriesViewRect border\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.sciChartSurface.drawBorder(renderContext);\r\n }, this.getAbsoluteLayer(DefaultRenderLayer_1.EDefaultRenderLayer.AxisBandsLayer));\r\n // Step 5 Draw X, Y axis and gridlines\r\n if (this.sciChartSurface.debugRendering) {\r\n this.drawDebugAxes(this.sciChartSurface, renderContext);\r\n }\r\n this.drawAxes(this.sciChartSurface, renderContext);\r\n // Step 6 Draw annotations below the series\r\n var userAnnotations = this.sciChartSurface.annotations.asArray();\r\n var modifierAnnotations = this.sciChartSurface.modifierAnnotations.asArray();\r\n var annotations = __spreadArray(__spreadArray([], userAnnotations, true), modifierAnnotations, true);\r\n var renderContextAnnotations = annotations.filter(function (el) {\r\n // TODO This is bad as it makes it hard to add custom renderContext annotations\r\n // probably could be replaced with !el.isSvgAnnotation\r\n return (el.type === IAnnotation_1.EAnnotationType.RenderContextBoxAnnotation ||\r\n el.type === IAnnotation_1.EAnnotationType.RenderContextLineAnnotation ||\r\n el.type === IAnnotation_1.EAnnotationType.RenderContextHorizontalLineAnnotation ||\r\n el.type === IAnnotation_1.EAnnotationType.RenderContextVerticalLineAnnotation ||\r\n el.type === IAnnotation_1.EAnnotationType.RenderContextAxisMarkerAnnotation ||\r\n el.type === IAnnotation_1.EAnnotationType.RenderContextNativeTextAnnotation);\r\n });\r\n // Draw annotations before axis\r\n var annotationsLayerBelowAxis = this.getAbsoluteLayer(DefaultRenderLayer_1.EDefaultRenderLayer.Background);\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.drawRenderContextAnnotations(renderContextAnnotations, xAxesById, yAxesById, IAnnotation_1.EAnnotationLayer.Background, renderContext, seriesViewRect);\r\n }, annotationsLayerBelowAxis);\r\n var annotationsBelowLayer = this.getAbsoluteLayer(DefaultRenderLayer_1.EDefaultRenderLayer.AnnotationsBelowSeriesLayer);\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.drawRenderContextAnnotations(renderContextAnnotations, xAxesById, yAxesById, IAnnotation_1.EAnnotationLayer.BelowChart, renderContext, seriesViewRect);\r\n }, annotationsBelowLayer);\r\n var seriesLayer = this.getAbsoluteLayer(DefaultRenderLayer_1.EDefaultRenderLayer.SeriesLayer);\r\n // Step 7 Draw series. Queue series rendering after grid lines and bands, but before the axes\r\n renderContext.enqueueLayeredDraw(function () { return _this.drawSeries(_this.sciChartSurface, renderPassInfo, renderContext); }, seriesLayer);\r\n var annotationsAboveLayer = this.getAbsoluteLayer(DefaultRenderLayer_1.EDefaultRenderLayer.AnnotationsAboveSeriesLayer);\r\n // Step 8 Draw annotations above the series\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.drawRenderContextAnnotations(renderContextAnnotations, xAxesById, yAxesById, IAnnotation_1.EAnnotationLayer.AboveChart, renderContext, seriesViewRect);\r\n }, annotationsAboveLayer);\r\n // Execute rendering of queued elements\r\n renderContext.drawLayers();\r\n renderContext.endFonts();\r\n // Step 9 Draw SVG or Html Overlays\r\n var svgAnnotations = annotations.filter(function (el) {\r\n return el.type === IAnnotation_1.EAnnotationType.SVG ||\r\n el.type === IAnnotation_1.EAnnotationType.SVGTextAnnotation ||\r\n el.type === IAnnotation_1.EAnnotationType.SVGCustomAnnotation;\r\n });\r\n this.drawSvgAnnotations(svgAnnotations, xAxesById, yAxesById, this.sciChartSurface.getCoordSvgTranslation());\r\n // Update watermark\r\n if (!this.sciChartSurface.isSubSurface) {\r\n this.updateWatermark(renderContext, seriesViewRect);\r\n }\r\n else if (renderContext.doDraw) {\r\n this.updateWatermark(renderContext, this.sciChartSurface.parentSurface.seriesViewRect);\r\n }\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.RenderEnd, {\r\n contextId: this.sciChartSurface.id,\r\n relatedId: (_a = mark === null || mark === void 0 ? void 0 : mark.detail) === null || _a === void 0 ? void 0 : _a.relatedId\r\n });\r\n // Step 10 Call OnParentSurfaceRendered\r\n this.onParentSurfaceRendered();\r\n if (!app_1.IS_TEST_ENV) {\r\n nativeContext.SetBlendMode(oldBlendMode);\r\n }\r\n // Invalidate for the animations\r\n if (this.sciChartSurface.isRunningAnimation) {\r\n setTimeout(this.sciChartSurface.invalidateElement, 0);\r\n }\r\n logger_1.Logger.debug(\"render end\");\r\n };\r\n SciChartRenderer.prototype.drawRenderContextAnnotations = function (annotations, xAxisById, yAxisById, annotationLayer, renderContext, seriesViewRect) {\r\n annotations\r\n .filter(function (a) { return a.annotationLayer === annotationLayer; })\r\n .forEach(function (a) {\r\n if (xAxisById.count === 0 || yAxisById.count === 0) {\r\n console.error(\"Cannot draw annotations before axes have been configured. Add axes first, or use suspendUpdates to pause drawing until axes are available.\");\r\n }\r\n else {\r\n var xAxis = xAxisById.item(a.xAxisId) || xAxisById.values[0];\r\n var yAxis = yAxisById.item(a.yAxisId) || yAxisById.values[0];\r\n if (a.showWarning) {\r\n if (xAxisById.count > 0 && xAxis.id !== a.xAxisId) {\r\n console.warn(\"Annotation looked for xAxis Id \".concat(a.xAxisId, \" but got \").concat(xAxis.id, \". Do you need to set xAxisId on an annotation or modifier?\"));\r\n }\r\n if (yAxisById.count > 0 && yAxis.id !== a.yAxisId) {\r\n console.warn(\"Annotation looked for yAxis Id \".concat(a.yAxisId, \" but got \").concat(yAxis.id, \". Do you need to set yAxisId on an annotation or modifier?\"));\r\n }\r\n a.showWarning = false;\r\n }\r\n if (!a.isHidden) {\r\n a.drawWithContext(renderContext, xAxis.getCurrentCoordinateCalculator(), yAxis.getCurrentCoordinateCalculator(), seriesViewRect);\r\n }\r\n }\r\n });\r\n };\r\n SciChartRenderer.prototype.drawSvgAnnotations = function (annotations, xAxisById, yAxisById, coordSvgTranslation) {\r\n annotations.forEach(function (a) {\r\n var xAxis = xAxisById.item(a.xAxisId) || xAxisById.values[0];\r\n var yAxis = yAxisById.item(a.yAxisId) || yAxisById.values[0];\r\n if (a.showWarning) {\r\n if (xAxisById.count > 0 && xAxis.id !== a.xAxisId) {\r\n console.warn(\"Annotation looked for xAxis Id \".concat(a.xAxisId, \" but got \").concat(xAxis.id, \". Do you need to set xAxisId on an annotation or modifier?\"));\r\n }\r\n if (yAxisById.count > 0 && yAxis.id !== a.yAxisId) {\r\n console.warn(\"Annotation looked for yAxis Id \".concat(a.yAxisId, \" but got \").concat(yAxis.id, \". Do you need to set yAxisId on an annotation or modifier?\"));\r\n }\r\n a.showWarning = false;\r\n }\r\n a.update(xAxis.getCurrentCoordinateCalculator(), yAxis.getCurrentCoordinateCalculator(), coordSvgTranslation.x / DpiHelper_1.DpiHelper.PIXEL_RATIO, coordSvgTranslation.y / DpiHelper_1.DpiHelper.PIXEL_RATIO);\r\n });\r\n };\r\n SciChartRenderer.prototype.validate = function () {\r\n this.sciChartSurface.xAxes.asArray().forEach(function (axis) { return (axis.isMeasured = false); });\r\n this.sciChartSurface.yAxes.asArray().forEach(function (axis) { return (axis.isMeasured = false); });\r\n // TODO: Check the surface is valid and output error codes to console\r\n // Checks would include\r\n // Is XAxes and YAxes collection null or empty\r\n // is XAxis a CategoryAxis and renderableseries is null or empty\r\n // Do all renderableseries have dataseries\r\n var errors = [];\r\n if (this.sciChartSurface.renderableSeries.size() > 0) {\r\n if (this.sciChartSurface.xAxes.size() === 0) {\r\n errors.push(\"Chart must have at least one X axis\");\r\n }\r\n if (this.sciChartSurface.yAxes.size() === 0) {\r\n errors.push(\"Chart must have at least one Y axis\");\r\n }\r\n }\r\n if (errors.length > 0) {\r\n throw new Error(errors.join(\"\\n\"));\r\n }\r\n };\r\n SciChartRenderer.prototype.resizeAnnotationRootElements = function (seriesViewRect) {\r\n // Convert seriesViewRect back to device pixels\r\n // e.g. at Retina display canvas size may be 400x300 but seriesViewRect size would be 800x600\r\n var viewRectInDevicePixels = new Rect_1.Rect(seriesViewRect.x / DpiHelper_1.DpiHelper.PIXEL_RATIO, seriesViewRect.y / DpiHelper_1.DpiHelper.PIXEL_RATIO, seriesViewRect.width / DpiHelper_1.DpiHelper.PIXEL_RATIO, seriesViewRect.height / DpiHelper_1.DpiHelper.PIXEL_RATIO);\r\n if (!this.prevRect) {\r\n this.prevRect = viewRectInDevicePixels;\r\n }\r\n else if (Rect_1.Rect.isEqual(this.prevRect, viewRectInDevicePixels)) {\r\n return;\r\n }\r\n this.prevRect = viewRectInDevicePixels;\r\n var svgRootElement = this.sciChartSurface.domSvgContainer;\r\n if (svgRootElement) {\r\n (0, translate_1.fitSvgToViewRect)(svgRootElement, viewRectInDevicePixels);\r\n }\r\n var backgroundSvgRootElement = this.sciChartSurface.domBackgroundSvgContainer;\r\n if (backgroundSvgRootElement) {\r\n (0, translate_1.fitSvgToViewRect)(backgroundSvgRootElement, viewRectInDevicePixels);\r\n }\r\n var backgroundDivElement = this.sciChartSurface.domSeriesBackground;\r\n if (backgroundDivElement) {\r\n (0, translate_1.fitElementToViewRect)(backgroundDivElement, viewRectInDevicePixels);\r\n }\r\n };\r\n SciChartRenderer.prototype.prepareAxesRenderData = function () {\r\n var xAxesById = new Dictionary_1.Dictionary();\r\n var yAxesById = new Dictionary_1.Dictionary();\r\n // Prepare XAxes\r\n this.sciChartSurface.xAxes.asArray().forEach(function (xAxis) {\r\n xAxesById.add(xAxis.id, xAxis);\r\n xAxis.prepareRenderData();\r\n });\r\n // Prepare YAxes\r\n this.sciChartSurface.yAxes.asArray().forEach(function (yAxis) {\r\n yAxesById.add(yAxis.id, yAxis);\r\n yAxis.prepareRenderData();\r\n });\r\n return { xAxesById: xAxesById, yAxesById: yAxesById };\r\n };\r\n SciChartRenderer.prototype.prepareSeriesRenderData = function (seriesViewRect, xAxesById) {\r\n var seriesCount = this.sciChartSurface.renderableSeries.size();\r\n var renderPassInfo = new RenderPassInfo_1.RenderPassInfo(seriesCount, seriesViewRect);\r\n // TODO: Calculate XRange before resample but YRange after resample for faster autorange on large datasets\r\n for (var i = 0; i < this.sciChartSurface.renderableSeries.size(); i++) {\r\n var series = this.sciChartSurface.renderableSeries.get(i);\r\n // don't try and draw series with no data\r\n if (!series.isStacked && !series.dataSeries)\r\n continue;\r\n // don't try and draw deleted dataseries\r\n if (!series.isStacked && series.dataSeries.getIsDeleted()) {\r\n throw new Error(\"SciChartSurface.renderableSeries[index=\".concat(i, \"] dataSeries has been deleted. \") +\r\n \"This is an invalid state for SciChart. Have you shared this DataSeries between chart surfaces?\");\r\n }\r\n // TODO: Do resampling, store result for use in drawing\r\n var xAxis = xAxesById.item(series.xAxisId);\r\n var seriesRenderPassInfo = SciChartRenderer.resampleSeries(xAxis, series, seriesViewRect);\r\n renderPassInfo.renderableSeriesArray.push(seriesRenderPassInfo.renderableSeries);\r\n renderPassInfo.pointSeriesArray.push(seriesRenderPassInfo.pointSeries);\r\n renderPassInfo.indicesRanges.push(seriesRenderPassInfo.indicesRange);\r\n renderPassInfo.resamplingHashes.push(seriesRenderPassInfo.resamplingHash);\r\n }\r\n return renderPassInfo;\r\n };\r\n SciChartRenderer.prototype.drawAxes = function (scs, renderContext) {\r\n scs.xAxes.asArray().forEach(function (xAxis) {\r\n xAxis.draw(renderContext);\r\n });\r\n scs.yAxes.asArray().forEach(function (yAxis) {\r\n yAxis.draw(renderContext);\r\n });\r\n };\r\n SciChartRenderer.prototype.drawSeries = function (scs, renderPassInfo, renderContext) {\r\n var renderableSeriesArray = renderPassInfo.renderableSeriesArray, pointSeriesArray = renderPassInfo.pointSeriesArray, resamplingHashes = renderPassInfo.resamplingHashes, indicesRanges = renderPassInfo.indicesRanges;\r\n var drawSeriesImpl = function (index) {\r\n var renderableSeries = renderableSeriesArray[index];\r\n var pointSeries = pointSeriesArray[index];\r\n var resamplingHash = resamplingHashes[index];\r\n var indexRange = indicesRanges[index];\r\n var xAxis = scs.xAxes.asArray().find(function (a) { return a.id === renderableSeries.xAxisId; });\r\n if (!xAxis)\r\n throw Error(\"Cannot find an X Axis with ID = \" + renderableSeries.xAxisId);\r\n var yAxis = scs.yAxes.asArray().find(function (a) { return a.id === renderableSeries.yAxisId; });\r\n if (!yAxis)\r\n throw Error(\"Cannot find a Y Axis with ID = \" + renderableSeries.yAxisId);\r\n if (xAxis.isVerticalChart && ![AxisAlignment_1.EAxisAlignment.Top, AxisAlignment_1.EAxisAlignment.Bottom].includes(yAxis.axisAlignment))\r\n throw Error(\"For vertical chart (chart with X Axis alignment Left or Right) Y Axis alignment should be Top or Bottom, X Axis ID = \".concat(xAxis.id));\r\n if ((0, AxisAlignment_1.getIsVertical)(xAxis.axisAlignment) && (0, AxisAlignment_1.getIsVertical)(yAxis.axisAlignment))\r\n throw Error(\"Both x and y axes can't have vertical alignment\");\r\n if ((0, AxisAlignment_1.getIsHorizontal)(xAxis.axisAlignment) && (0, AxisAlignment_1.getIsHorizontal)(yAxis.axisAlignment))\r\n throw Error(\"Both x and y axes can't have horizontal alignment\");\r\n try {\r\n var renderPassData = new RenderPassData_1.RenderPassData(indexRange, xAxis.getCurrentCoordinateCalculator, yAxis.getCurrentCoordinateCalculator, xAxis.isVerticalChart, pointSeries, resamplingHash);\r\n renderableSeries.draw(renderContext, renderPassData);\r\n }\r\n finally {\r\n // We can not delete calculators because we use them in Hit Test\r\n // xCalc.delete();\r\n // yCalc.delete();\r\n }\r\n };\r\n var nativeContext = renderContext.getNativeContext();\r\n var viewRect = this.sciChartSurface.seriesViewRect;\r\n nativeContext.PushMatrix();\r\n nativeContext.PushState();\r\n nativeContext.Translate(viewRect.x, viewRect.y);\r\n nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n // Draw unselected series first\r\n renderableSeriesArray.forEach(function (rs, index) {\r\n if (rs.isVisible && !rs.isSelected && !rs.isHovered)\r\n drawSeriesImpl(index);\r\n });\r\n // Draw hovered series next\r\n renderableSeriesArray.forEach(function (rs, index) {\r\n if (rs.isVisible && rs.isHovered)\r\n drawSeriesImpl(index);\r\n });\r\n // Draw selected series at higher z-index\r\n renderableSeriesArray.forEach(function (rs, index) {\r\n if (rs.isVisible && rs.isSelected)\r\n drawSeriesImpl(index);\r\n });\r\n // Perform global text layout\r\n if (this.sciChartSurface.dataLabelLayoutManager) {\r\n this.sciChartSurface.dataLabelLayoutManager.performTextLayout(this.sciChartSurface, renderPassInfo);\r\n }\r\n // Draw series text\r\n renderableSeriesArray.forEach(function (rs, index) {\r\n if (rs.isVisible && rs.dataLabelProvider) {\r\n rs.dataLabelProvider.draw(renderContext);\r\n }\r\n });\r\n nativeContext.PopMatrix();\r\n nativeContext.PopState();\r\n };\r\n SciChartRenderer.prototype.drawDebugAxes = function (scs, renderContext) {\r\n renderContext.enqueueLayeredDraw(function () {\r\n scs.xAxes.asArray().forEach(function (xAxis) {\r\n xAxis.drawDebug(renderContext);\r\n });\r\n scs.yAxes.asArray().forEach(function (yAxis) {\r\n yAxis.drawDebug(renderContext);\r\n });\r\n });\r\n };\r\n SciChartRenderer.prototype.tryPerformAutoRangeOn = function (axis, sciChartSurface) {\r\n var firstRange = !axis.hasValidVisibleRange() || axis.hasDefaultVisibleRange();\r\n var shouldAutoRange = axis.autoRange === AutoRange_1.EAutoRange.Always || (axis.autoRange === AutoRange_1.EAutoRange.Once && firstRange);\r\n if (shouldAutoRange) {\r\n // Different implementation for YAxis and XAxis because of windowing\r\n var newRange = axis.getMaximumRange();\r\n if (!newRange.equals(axis.visibleRange)) {\r\n if (!axis.autoRangeAnimation ||\r\n (firstRange && !axis.autoRangeAnimation.animateInitialRanging) ||\r\n (!firstRange && !axis.autoRangeAnimation.animateSubsequentRanging)) {\r\n axis.visibleRange = newRange;\r\n }\r\n else if (!newRange.equals(axis.animatedVisibleRange)) {\r\n axis.animateVisibleRange(newRange, axis.autoRangeAnimation.duration, axis.autoRangeAnimation.easing);\r\n }\r\n }\r\n }\r\n };\r\n SciChartRenderer.prototype.onParentSurfaceRendered = function () {\r\n var _a;\r\n if (!this.sciChartSurface.isSubSurface) {\r\n this.sciChartSurface.chartModifiers.asArray().forEach(function (cm) {\r\n cm.onParentSurfaceRendered();\r\n });\r\n }\r\n // For subCharts, run this once from the parent surface, after draw has happened\r\n (_a = this.sciChartSurface.subCharts) === null || _a === void 0 ? void 0 : _a.forEach(function (sc) {\r\n sc.chartModifiers.asArray().forEach(function (cm) {\r\n cm.onParentSurfaceRendered();\r\n });\r\n });\r\n // TODO add another event handler for multichart\r\n if (!this.sciChartSurface.isCopyCanvasSurface || this.sciChartSurface.isSubSurface) {\r\n this.sciChartSurface.rendered.raiseEvent(this.isInvalidated);\r\n }\r\n };\r\n SciChartRenderer.prototype.updateWatermark = function (renderContext, seriesViewRect) {\r\n var chartHeight = this.sciChartSurface.isCopyCanvasSurface\r\n ? SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height\r\n : renderContext.viewportSize.height;\r\n var left = seriesViewRect.x + 5;\r\n var bottom = chartHeight - (seriesViewRect.top + seriesViewRect.height) + 10;\r\n var wmWidth = Math.max(72, Math.min(0.25 * renderContext.viewportSize.width, 256));\r\n var wmHeight = (42 * wmWidth) / 256;\r\n if (this.sciChartSurface.watermarkRelativeToCanvas) {\r\n switch (this.sciChartSurface.watermarkPosition) {\r\n case WatermarkPosition_1.EWatermarkPosition.BottomRight:\r\n left = renderContext.viewportSize.width - wmWidth - 5;\r\n bottom = chartHeight - renderContext.viewportSize.height + 12;\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.TopLeft:\r\n bottom = chartHeight - (5 + wmHeight);\r\n left = 5;\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.TopRight:\r\n left = renderContext.viewportSize.width - wmWidth - 5;\r\n bottom = chartHeight - (5 + wmHeight);\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.BottomLeft:\r\n left = 5;\r\n bottom = chartHeight - renderContext.viewportSize.height + 12;\r\n break;\r\n }\r\n }\r\n else {\r\n switch (this.sciChartSurface.watermarkPosition) {\r\n case WatermarkPosition_1.EWatermarkPosition.BottomRight:\r\n left = seriesViewRect.left + seriesViewRect.width - wmWidth - 5;\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.TopLeft:\r\n bottom = chartHeight - (seriesViewRect.top + 5 + wmHeight);\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.TopRight:\r\n left = seriesViewRect.left + seriesViewRect.width - wmWidth - 5;\r\n bottom = chartHeight - (seriesViewRect.top + 5 + wmHeight);\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.BottomLeft:\r\n default:\r\n break;\r\n }\r\n }\r\n this.sciChartSurface.updateWatermark(left, bottom);\r\n };\r\n SciChartRenderer.prototype.getViewportSvgRect = function (viewportSize, seriesViewRect) {\r\n switch (this.sciChartSurface.svgClippingMode) {\r\n case SvgClippingMode_1.ESvgClippingMode.SeriesViewRect:\r\n return seriesViewRect;\r\n case SvgClippingMode_1.ESvgClippingMode.Chart:\r\n return new Rect_1.Rect(0, 0, viewportSize.width, viewportSize.height);\r\n case SvgClippingMode_1.ESvgClippingMode.SubChart:\r\n var viewportRect = new Rect_1.Rect(0, 0, viewportSize.width, viewportSize.height);\r\n if (this.sciChartSurface.isSubSurface) {\r\n var sub = this.sciChartSurface;\r\n viewportRect = sub.getSubChartRect();\r\n }\r\n return viewportRect;\r\n default:\r\n return seriesViewRect;\r\n }\r\n };\r\n SciChartRenderer.prototype.scheduleTitleDraw = function (renderContext) {\r\n var _this = this;\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.sciChartSurface.chartTitleRenderer.draw(renderContext);\r\n }, this.getAbsoluteLayer(DefaultRenderLayer_1.EDefaultRenderLayer.AnnotationsAboveSeriesLayer));\r\n };\r\n SciChartRenderer.prototype.measureTitle = function (renderContext) {\r\n this.sciChartSurface.chartTitleRenderer.measure(this.sciChartSurface.title, this.sciChartSurface.titleStyle, renderContext);\r\n return this.sciChartSurface.chartTitleRenderer.titleOffset;\r\n };\r\n SciChartRenderer.prototype.layoutTitle = function (seriesViewRect) {\r\n // current surface area which will contain title\r\n var chartViewRect = this.sciChartSurface.titleStyle.placeWithinChart\r\n ? seriesViewRect\r\n : this.getChartViewRect();\r\n // title position calculation\r\n this.sciChartSurface.chartTitleRenderer.layout(chartViewRect);\r\n };\r\n SciChartRenderer.prototype.getChartViewRect = function () {\r\n var viewportSize = this.sciChartSurface.renderSurface.viewportSize;\r\n if (SciChartSurface_1.SciChartSurface.isSubSurface(this.sciChartSurface)) {\r\n var viewportRect = new Rect_1.Rect(0, 0, viewportSize.width, viewportSize.height);\r\n var sub = this.sciChartSurface;\r\n viewportRect = sub.getSubChartRect();\r\n return viewportRect;\r\n }\r\n return new Rect_1.Rect(0, 0, viewportSize.width, viewportSize.height);\r\n };\r\n SciChartRenderer.prototype.getAbsoluteLayer = function (relativeRenderLayer) {\r\n return (0, WebGlRenderContext2D_1.calculateAbsoluteRenderLayer)(this.sciChartSurface.layersOffset, this.sciChartSurface.stepBetweenLayers, relativeRenderLayer);\r\n };\r\n SciChartRenderer.prototype.drawDebugSurfaceRect = function (renderContext, viewRect, wasmContext) {\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(wasmContext);\r\n var brush = new wasmContext.SCRTSolidBrush((0, parseColor_1.parseColorToUIntArgb)(\"rgba(0,255,0,0.7)\"), false);\r\n var nativeRect = (0, createNativeRect_1.createNativeRect)(wasmContext, 0, 0, viewRect.width, viewRect.height);\r\n vecRects.push_back(nativeRect);\r\n renderContext.drawRects(vecRects, brush, viewRect.left, viewRect.top);\r\n brush.delete();\r\n };\r\n return SciChartRenderer;\r\n}());\r\nexports.SciChartRenderer = SciChartRenderer;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getAdjustedRotation = exports.TitleRendererBase = void 0;\r\nvar app_1 = require(\"../../constants/app\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar TextPosition_1 = require(\"../../types/TextPosition\");\r\nvar TextStyle_1 = require(\"../../types/TextStyle\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar text_1 = require(\"../../utils/text\");\r\nvar createNativeRect_1 = require(\"../Visuals/Helpers/createNativeRect\");\r\nvar NativeObject_1 = require(\"../Visuals/Helpers/NativeObject\");\r\nvar DpiHelper_1 = require(\"../Visuals/TextureManager/DpiHelper\");\r\nvar TextureManager_1 = require(\"../Visuals/TextureManager/TextureManager\");\r\nvar TitleRendererBase = /** @class */ (function (_super) {\r\n __extends(TitleRendererBase, _super);\r\n function TitleRendererBase(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n _this.drawDebug = false;\r\n _this.useCache = true;\r\n _this.viewRectProperty = Rect_1.Rect.createZero();\r\n /**\r\n * The height taken by the text with normal(horizontal) orientation including padding\r\n */\r\n _this.textHeight = 0;\r\n /**\r\n * The width taken by the text with normal(horizontal) orientation including padding\r\n */\r\n _this.textWidth = 0;\r\n /**\r\n * The height taken by the text considering current orientation including padding\r\n */\r\n _this.desiredHeightProperty = 0;\r\n /**\r\n * The width taken by the text considering current orientation including padding\r\n */\r\n _this.desiredWidthProperty = 0;\r\n _this.useNativeTextProperty = false;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.textureManager = new TextureManager_1.TextureManager(webAssemblyContext);\r\n _this.onDpiChanged = _this.onDpiChanged.bind(_this);\r\n DpiHelper_1.DpiHelper.dpiChanged.subscribe(_this.onDpiChanged);\r\n return _this;\r\n }\r\n Object.defineProperty(TitleRendererBase.prototype, \"viewRect\", {\r\n /**\r\n * Defines a bounding {@link Rect} containing the title text\r\n */\r\n get: function () {\r\n return this.viewRectProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // TODO consider if this class should be abstract\r\n TitleRendererBase.prototype.measure = function () {\r\n var params = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n params[_i] = arguments[_i];\r\n }\r\n };\r\n TitleRendererBase.prototype.layout = function (originRect) { };\r\n TitleRendererBase.prototype.draw = function () {\r\n var params = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n params[_i] = arguments[_i];\r\n }\r\n };\r\n TitleRendererBase.prototype.delete = function () {\r\n this.resetCache();\r\n this.textureManager = (0, Deleter_1.deleteSafe)(this.textureManager);\r\n this.webAssemblyContext = undefined;\r\n DpiHelper_1.DpiHelper.dpiChanged.unsubscribe(this.onDpiChanged);\r\n };\r\n TitleRendererBase.prototype.resetCache = function () {\r\n this.invalidateCache();\r\n this.textStyle = undefined;\r\n this.originalTextStyle = undefined;\r\n };\r\n TitleRendererBase.prototype.invalidateCache = function () {\r\n var _a;\r\n (0, Deleter_1.deleteSafe)((_a = this.texture) === null || _a === void 0 ? void 0 : _a.bitmapTexture);\r\n this.texture = undefined;\r\n };\r\n TitleRendererBase.prototype.onDpiChanged = function (args) {\r\n this.resetCache();\r\n };\r\n /**\r\n * Performs rendering of the title\r\n */\r\n TitleRendererBase.prototype.drawInternal = function (renderContext, useNativeText, titlePosition) {\r\n if (!this.text || this.text.length === 0) {\r\n return;\r\n }\r\n if (useNativeText) {\r\n this.drawWithNativeText(renderContext, titlePosition);\r\n }\r\n else {\r\n this.drawWithTexture(renderContext, titlePosition);\r\n }\r\n // if (this.drawDebug) {\r\n // this.drawTitleDebugViewRect(renderContext);\r\n // }\r\n };\r\n TitleRendererBase.prototype.drawWithNativeText = function (renderContext, position) {\r\n var titleText = Array.isArray(this.text) ? this.text.join(\"\\n\") : this.text;\r\n // @ts-ignore mismatch with TTextStyle\r\n var nativeFont = renderContext.getFont(this.textStyle, true);\r\n // calculate start coordinates for native text drawing;\r\n // the start point is the beginning of alphabetic text baseline\r\n var tx = this.viewRect.left + this.nativeTextShiftX;\r\n var ty = this.viewRect.top + this.nativeTextShiftY;\r\n var adjRotation = (0, exports.getAdjustedRotation)(this.textStyle.rotation, position);\r\n var rotationRad = -(adjRotation * Math.PI) / 180;\r\n var nativeMultilineAlignment = (0, TextPosition_1.convertMultiLineAlignment)(this.textStyle.multilineAlignment, this.webAssemblyContext);\r\n var textColor = (0, parseColor_1.parseColorToUIntArgb)(this.textStyle.color);\r\n nativeFont.DrawStringAdvanced(titleText, textColor, Math.round(tx), Math.round(ty), (0, NativeObject_1.getVector4)(this.webAssemblyContext, tx, ty, rotationRad, 0), nativeMultilineAlignment, this.nativeLineSpacing);\r\n };\r\n TitleRendererBase.prototype.drawWithTexture = function (renderContext, titlePosition) {\r\n var _a = this.texture, bitmapTexture = _a.bitmapTexture, textureHeight = _a.textureHeight, textureWidth = _a.textureWidth;\r\n if (bitmapTexture) {\r\n try {\r\n var nativeContext = renderContext.getNativeContext();\r\n nativeContext.DrawTexture(bitmapTexture, Math.round(this.viewRect.left), Math.round(this.viewRect.top), textureWidth, textureHeight);\r\n if (!this.useCache) {\r\n bitmapTexture.delete();\r\n this.texture = undefined;\r\n }\r\n }\r\n catch (err) {\r\n console.error(\"Error while drawing title: \", err);\r\n // webgl context probably lost. Clear the cache\r\n this.resetCache();\r\n }\r\n }\r\n };\r\n /**\r\n * Calculates width and hight of the title text\r\n */\r\n TitleRendererBase.prototype.getTextSize = function (title, textStyle, renderContext) {\r\n if (title === void 0) { title = \"\"; }\r\n if (!title || title.length === 0) {\r\n this.desiredHeightProperty = 0;\r\n this.desiredWidthProperty = 0;\r\n this.textHeight = 0;\r\n this.textWidth = 0;\r\n return;\r\n }\r\n var hasHorizontalPlacement = (0, TextStyle_1.getIsHorizontalPlacement)(this.titlePosition);\r\n if (this.useNativeTextProperty) {\r\n // @ts-ignore mismatch with TTextStyle\r\n var nativeFont = renderContext.getFont(textStyle, !hasHorizontalPlacement);\r\n var titleString = Array.isArray(title) ? title.join(\"\\n\") : title;\r\n var adjRotation = (0, exports.getAdjustedRotation)(textStyle.rotation, this.titlePosition);\r\n var _a = (0, text_1.getNativeTextSize)(titleString, nativeFont, textStyle, this.webAssemblyContext, adjRotation), textHeight = _a.textHeight, textWidth = _a.textWidth, nativeLineSpacing = _a.nativeLineSpacing, deltaX = _a.deltaX, deltaY = _a.deltaY;\r\n this.textHeight = hasHorizontalPlacement ? textHeight : textWidth;\r\n this.textWidth = hasHorizontalPlacement ? textWidth : textHeight;\r\n this.nativeLineSpacing = nativeLineSpacing;\r\n this.nativeTextShiftX = deltaX;\r\n this.nativeTextShiftY = deltaY;\r\n this.desiredHeightProperty = hasHorizontalPlacement ? this.textHeight : this.textWidth;\r\n this.desiredWidthProperty = hasHorizontalPlacement ? this.textWidth : this.textHeight;\r\n }\r\n else {\r\n // current title texture doesn't include paddings, so they should be added here\r\n var texture = this.getTitleTexture();\r\n this.texture = texture;\r\n this.desiredHeightProperty = texture.textureHeight;\r\n this.desiredWidthProperty = texture.textureWidth;\r\n this.textHeight = hasHorizontalPlacement ? this.desiredHeightProperty : this.desiredWidthProperty;\r\n this.textWidth = hasHorizontalPlacement ? this.desiredWidthProperty : this.desiredHeightProperty;\r\n }\r\n if (app_1.IS_TEST_ENV) {\r\n if (hasHorizontalPlacement) {\r\n this.desiredHeightProperty =\r\n (0, TextureManager_1.measureTextHeight)(textStyle.fontSize) + this.textStyle.padding.top + this.textStyle.padding.bottom;\r\n this.desiredWidthProperty = 0;\r\n }\r\n else {\r\n this.desiredHeightProperty = 0;\r\n this.desiredWidthProperty =\r\n (0, TextureManager_1.measureTextHeight)(textStyle.fontSize) + this.textStyle.padding.top + this.textStyle.padding.bottom;\r\n }\r\n }\r\n };\r\n TitleRendererBase.prototype.getTitleTexture = function () {\r\n // TODO this is not used at the moment; consider unifying logic for Chart Title Renderer and Axis Title Renderer\r\n var titleText = Array.isArray(this.text) ? this.text : this.text.split(\"\\n\");\r\n var texture = this.textureManager.createTextTexture(titleText, \r\n // @ts-ignore mismatch with TTextStyle\r\n this.textStyle\r\n // { ...this.textStyle, padding: new Thickness(0, 0, 0, 0) },\r\n );\r\n return texture;\r\n };\r\n /**\r\n * Calculates the {@link TitleRenderer.viewRect}\r\n */\r\n TitleRendererBase.prototype.getViewRect = function (title, originRect, titlePosition, alignment) {\r\n if (title === void 0) { title = \"\"; }\r\n if (!title || title.length === 0) {\r\n return Rect_1.Rect.createZero();\r\n }\r\n var hasHorizontalPlacement = (0, TextStyle_1.getIsHorizontalPlacement)(titlePosition);\r\n var alignmentDelta = this.getAlignmentAdjustmentDelta(hasHorizontalPlacement ? originRect.width : originRect.height, titlePosition, alignment);\r\n switch (titlePosition) {\r\n case TextStyle_1.ETitlePosition.Top:\r\n return new Rect_1.Rect(originRect.x + alignmentDelta, originRect.y, this.textWidth, this.textHeight);\r\n case TextStyle_1.ETitlePosition.Bottom:\r\n return new Rect_1.Rect(originRect.x + alignmentDelta, originRect.bottom - this.textHeight, this.textWidth, this.textHeight);\r\n case TextStyle_1.ETitlePosition.Left:\r\n return new Rect_1.Rect(originRect.x, originRect.y + alignmentDelta, this.textHeight, this.textWidth);\r\n case TextStyle_1.ETitlePosition.Right:\r\n return new Rect_1.Rect(originRect.right - this.textHeight, originRect.y + alignmentDelta, this.textHeight, this.textWidth);\r\n default:\r\n return (0, TextStyle_1.handleInvalidChartTitlePosition)(titlePosition);\r\n }\r\n };\r\n TitleRendererBase.prototype.drawTitleDebugViewRect = function (renderContext) {\r\n var viewRect = this.viewRect;\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(this.webAssemblyContext);\r\n var brush = new this.webAssemblyContext.SCRTSolidBrush((0, parseColor_1.parseColorToUIntArgb)(\"rgba(0,255,0,0.7)\"), false);\r\n var nativeRect = (0, createNativeRect_1.createNativeRect)(this.webAssemblyContext, 0, 0, viewRect.width, viewRect.height);\r\n vecRects.push_back(nativeRect);\r\n renderContext.drawRects(vecRects, brush, viewRect.left, viewRect.top);\r\n brush.delete();\r\n };\r\n /**\r\n * Calculates the offset of title text alignment defined by {@link TChartTitleStyle.alignment} or {@link TTextStyle.alignment}\r\n */\r\n TitleRendererBase.prototype.getAlignmentAdjustmentDelta = function (availableSpace, position, alignment) {\r\n switch (alignment) {\r\n case TextStyle_1.ETextAlignment.Center:\r\n return availableSpace / 2 - this.textWidth / 2;\r\n case TextStyle_1.ETextAlignment.Left:\r\n return position === TextStyle_1.ETitlePosition.Left ? availableSpace - this.textWidth : 0;\r\n case TextStyle_1.ETextAlignment.Right:\r\n return position === TextStyle_1.ETitlePosition.Left ? 0 : availableSpace - this.textWidth;\r\n default:\r\n return (0, TextStyle_1.handleInvalidTextAlignment)(alignment);\r\n }\r\n };\r\n return TitleRendererBase;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.TitleRendererBase = TitleRendererBase;\r\nvar getAdjustedRotation = function (rotation, position) {\r\n if (rotation !== undefined) {\r\n return (rotation + 360) % 360;\r\n }\r\n var adjustedRotation = 0;\r\n if (position === TextStyle_1.ETitlePosition.Left) {\r\n adjustedRotation += -90;\r\n }\r\n else if (position === TextStyle_1.ETitlePosition.Right) {\r\n adjustedRotation += 90;\r\n }\r\n return (adjustedRotation + 360) % 360;\r\n};\r\nexports.getAdjustedRotation = getAdjustedRotation;\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.stripAutoColor = exports.ThemeProvider = exports.AUTO_COLOR = void 0;\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar PaletteFactory_1 = require(\"../Model/PaletteFactory\");\r\nexports.AUTO_COLOR = \"auto\";\r\nvar ThemeProvider = /** @class */ (function () {\r\n function ThemeProvider() {\r\n this.strokePalette = [];\r\n this.fillPalette = [];\r\n }\r\n ThemeProvider.prototype.getStrokeColor = function (index, max, wasmContext) {\r\n return this.getPaletteColor(index, max, wasmContext, true);\r\n };\r\n ThemeProvider.prototype.getFillColor = function (index, max, wasmContext) {\r\n return this.getPaletteColor(index, max, wasmContext, false);\r\n };\r\n ThemeProvider.prototype.applyOverrides = function (overrides) {\r\n this.overrides = overrides;\r\n Object.assign(this, overrides);\r\n };\r\n ThemeProvider.prototype.toJSON = function () {\r\n return __assign({ type: this.type }, this.overrides);\r\n };\r\n ThemeProvider.prototype.getPaletteColor = function (index, max, wasmContext, isStroke) {\r\n var palette = isStroke ? this.strokePalette : this.fillPalette;\r\n if (!palette || palette.length === 0) {\r\n throw new Error(\"\".concat(isStroke ? \"stroke\" : \"fill\", \"Palette must not be empty to use get\").concat(isStroke ? \"Stroke\" : \"Fill\", \"Color\"));\r\n }\r\n if (palette.length < 2) {\r\n return this.toColor(palette[0]);\r\n }\r\n if (index > max) {\r\n throw new Error(\"index must be less than or equal to max\");\r\n }\r\n if (max <= palette.length) {\r\n return this.toColor(palette[index]);\r\n }\r\n var gradient = isStroke ? this.strokeGradient : this.fillGradient;\r\n if (!gradient) {\r\n var gradientStops = typeof palette[0] === \"string\"\r\n ? palette.map(function (color, i) {\r\n return ({\r\n color: color,\r\n offset: i / palette.length - 1\r\n });\r\n })\r\n : palette;\r\n gradient = PaletteFactory_1.PaletteFactory.createColorMap(wasmContext, gradientStops);\r\n if (isStroke) {\r\n this.strokeGradient = gradient;\r\n }\r\n else {\r\n this.fillGradient = gradient;\r\n }\r\n }\r\n var lerpFactor = index / max;\r\n var mapIndex = wasmContext.NumberUtil.Constrain(Math.round(lerpFactor * (gradient.length - 1)), 0, gradient.length - 1);\r\n var result = gradient[mapIndex];\r\n return (0, parseColor_1.parseArgbToHtmlColor)(result);\r\n };\r\n ThemeProvider.prototype.toColor = function (val) {\r\n if (typeof val === \"string\") {\r\n return val;\r\n }\r\n else {\r\n return val.color;\r\n }\r\n };\r\n return ThemeProvider;\r\n}());\r\nexports.ThemeProvider = ThemeProvider;\r\nvar stripAutoColor = function (val) {\r\n if (val === exports.AUTO_COLOR) {\r\n return \"#00000000\";\r\n }\r\n if (val && val.startsWith(exports.AUTO_COLOR)) {\r\n return val.substring(exports.AUTO_COLOR.length);\r\n }\r\n return val;\r\n};\r\nexports.stripAutoColor = stripAutoColor;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartJSDarkTheme = void 0;\r\nvar ThemeProviderType_1 = require(\"../../types/ThemeProviderType\");\r\nvar IThemeProvider_1 = require(\"./IThemeProvider\");\r\n/**\r\n * An implementation of {@link ThemeProvider} which provides a dark theme\r\n * @decription Applied to a 2D {@link SciChartSurface}, or a 3D {@link SciChart3DSurface}, the ThemeProvider may be\r\n * applied using the {@link SciChartSurface.applyTheme | applyTheme} method, where it is passed down to child components\r\n * so that all children of the chart get the same theme.\r\n *\r\n * For example:\r\n * ```ts\r\n * // Applying a theme when creating a chart\r\n * const { sciChartSurface, wasmContext } = SciChartSurface.create(\"div-id\", { theme: new SciChartJSDarkTheme() });\r\n * // Apply a theme after chart creation\r\n * sciChartSurface.applyTheme(new SciChartJSDarkTheme());\r\n *\r\n * // Applying a custom theme\r\n * export class MyCustomTheme implements IThemeProvider {\r\n * // todo: implement IThemeProvider interface and apply properties\r\n * }\r\n *\r\n * sciChartSurface.applyTheme(new MyCustomTheme()); // Or apply in SciChartSurface.create()\r\n *\r\n * // Overriding just some members of a theme\r\n * const myOverriddenTheme = {...new SciChartJSLightTheme(), sciChartBackground: \"white\" };\r\n * ciChartSurface.applyTheme(myOverriddenTheme); // Or apply in SciChartSurface.create()\r\n * ```\r\n */\r\nvar SciChartJSDarkTheme = /** @class */ (function (_super) {\r\n __extends(SciChartJSDarkTheme, _super);\r\n function SciChartJSDarkTheme() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /** @inheritDoc */\r\n _this.type = ThemeProviderType_1.EThemeProviderType.Dark;\r\n /** @inheritDoc */\r\n _this.sciChartBackground = \"#1C1C1EFF\";\r\n /** @inheritDoc */\r\n _this.loadingAnimationBackground = \"#1C1C1EFF\";\r\n /** @inheritDoc */\r\n _this.loadingAnimationForeground = \"#AAA\";\r\n /** @inheritDoc */\r\n _this.gridBorderBrush = \"#5A5B5BFF\";\r\n /** @inheritDoc */\r\n _this.axisBandsFill = \"#202123E1\";\r\n /** @inheritDoc */\r\n _this.axisBorder = \"#00000000\";\r\n /** @inheritDoc */\r\n _this.tickTextBrush = \"#A6A7ACFF\";\r\n /** @inheritDoc */\r\n _this.majorGridLineBrush = \"#323539FF\";\r\n /** @inheritDoc */\r\n _this.minorGridLineBrush = \"#232426FF\";\r\n /** @inheritDoc */\r\n _this.gridBackgroundBrush = \"TRANSPARENT\";\r\n /** @inheritDoc */\r\n _this.rolloverLineBrush = \"#42b64933\";\r\n /** @inheritDoc */\r\n _this.cursorLineBrush = \"#228B22FF\";\r\n /** @inheritDoc */\r\n _this.rubberBandFillBrush = \"#42b64933\";\r\n /** @inheritDoc */\r\n _this.rubberBandStrokeBrush = \"#42b64977\";\r\n /** @inheritDoc */\r\n _this.legendBackgroundBrush = \"#1D2C35FF\";\r\n /** @inheritDoc */\r\n _this.labelBackgroundBrush = \"#42b649AA\";\r\n /** @inheritDoc */\r\n _this.labelBorderBrush = \"#42b649FF\";\r\n /** @inheritDoc */\r\n _this.labelForegroundBrush = \"#EEEEEEFF\";\r\n /** @inheritDoc */\r\n _this.textAnnotationForeground = \"#EEEEEEFF\";\r\n /** @inheritDoc */\r\n _this.textAnnotationBackground = \"#42b649AA\";\r\n /** @inheritDoc */\r\n _this.annotationsGripsBorderBrush = \"#CDCDCD99\";\r\n /** @inheritDoc */\r\n _this.annotationsGripsBackroundBrush = \"#CDCDCD22\";\r\n /** @inheritDoc */\r\n _this.annotationSelectionStroke = \"#f00e0e66\";\r\n /** @inheritDoc */\r\n _this.overviewFillBrush = \"#262728BB\";\r\n /** @inheritDoc */\r\n _this.scrollbarBackgroundBrush = \"#262728FF\";\r\n /** @inheritDoc */\r\n _this.scrollbarBorderBrush = \"#121212FF\";\r\n /** @inheritDoc */\r\n _this.scrollbarGripsBackgroundBrush = \"#535353FF\";\r\n /** @inheritDoc */\r\n _this.scrollbarViewportBackgroundBrush = \"#222222FF\";\r\n /** @inheritDoc */\r\n _this.scrollbarViewportBorderBrush = \"#232323FF\";\r\n /** @inheritDoc */\r\n _this.upWickColor = \"#50ff50FF\";\r\n /** @inheritDoc */\r\n _this.downWickColor = \"#ff5050FF\";\r\n /** @inheritDoc */\r\n _this.upBodyBrush = \"#50ff50B2\";\r\n /** @inheritDoc */\r\n _this.downBodyBrush = \"#ff5050B2\";\r\n /** @inheritDoc */\r\n _this.upBandSeriesLineColor = \"#279B27FF\";\r\n /** @inheritDoc */\r\n _this.downBandSeriesLineColor = \"#FF1919FF\";\r\n /** @inheritDoc */\r\n _this.upBandSeriesFillColor = \"#279B2733\";\r\n /** @inheritDoc */\r\n _this.downBandSeriesFillColor = \"#FF191933\";\r\n /** @inheritDoc */\r\n _this.mountainAreaBrush = \"#4083B777\";\r\n /** @inheritDoc */\r\n _this.mountainLineColor = \"#C6E6FFFF\";\r\n /** @inheritDoc */\r\n _this.lineSeriesColor = \"#C6E6FFFF\";\r\n /** @inheritDoc */\r\n _this.columnLineColor = \"#FFFFFFFF\";\r\n /** @inheritDoc */\r\n _this.columnFillBrush = \"#FFFFFFFF\";\r\n /** @inheritDoc */\r\n _this.impulseFillBrush = \"#FFFFFFFF\";\r\n /** @inheritDoc */\r\n _this.defaultColorMapBrush = [\r\n { offset: 0, color: \"DARKBLUE\" },\r\n { offset: 0.5, color: \"CORNFLOWERBLUE\" },\r\n { offset: 1, color: \"#FF22AAFF\" }\r\n ];\r\n /** @inheritDoc */\r\n _this.axisTitleColor = \"#C8C7C3FF\";\r\n /** @inheritDoc */\r\n _this.chartTitleColor = \"#C8C7C3FF\";\r\n /** @inheritDoc */\r\n _this.shadowEffectColor = \"#000000FF\";\r\n /** @inheritDoc */\r\n _this.planeBorderColor = \"#333333FF\";\r\n /** @inheritDoc */\r\n _this.axisPlaneBackgroundFill = \"TRANSPARENT\";\r\n /** @inheritDoc */\r\n _this.axis3DBandsFill = \"#202123E1\";\r\n /** @inheritDoc */\r\n _this.isLightBackground = false;\r\n return _this;\r\n }\r\n return SciChartJSDarkTheme;\r\n}(IThemeProvider_1.ThemeProvider));\r\nexports.SciChartJSDarkTheme = SciChartJSDarkTheme;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartJSDarkv2Theme = void 0;\r\nvar ThemeProviderType_1 = require(\"../../types/ThemeProviderType\");\r\nvar SciChartJSDarkTheme_1 = require(\"./SciChartJSDarkTheme\");\r\n/**\r\n * An implementation of {@link ThemeProvider} which provides an improved dark theme\r\n * @decription Applied to a 2D {@link SciChartSurface}, or a 3D {@link SciChart3DSurface}, the ThemeProvider may be\r\n * applied using the {@link SciChartSurface.applyTheme | applyTheme} method, where it is passed down to child components\r\n * so that all children of the chart get the same theme.\r\n *\r\n * For example:\r\n * ```ts\r\n * // Applying a theme when creating a chart\r\n * const { sciChartSurface, wasmContext } = SciChartSurface.create(\"div-id\", { theme: new SciChartJSDarkv2Theme() });\r\n * // Apply a theme after chart creation\r\n * sciChartSurface.applyTheme(new SciChartJSDarkv2Theme());\r\n *\r\n * // Applying a custom theme\r\n * export class MyCustomTheme implements IThemeProvider {\r\n * // todo: implement IThemeProvider interface and apply properties\r\n * }\r\n *\r\n * sciChartSurface.applyTheme(new MyCustomTheme()); // Or apply in SciChartSurface.create()\r\n *\r\n * // Overriding just some members of a theme\r\n * const myOverriddenTheme = {...new SciChartJSLightTheme(), sciChartBackground: \"white\" };\r\n * ciChartSurface.applyTheme(myOverriddenTheme); // Or apply in SciChartSurface.create()\r\n * ```\r\n */\r\nvar SciChartJSDarkv2Theme = /** @class */ (function (_super) {\r\n __extends(SciChartJSDarkv2Theme, _super);\r\n function SciChartJSDarkv2Theme() {\r\n var _this = _super.call(this) || this;\r\n /** @inheritDoc */\r\n _this.type = ThemeProviderType_1.EThemeProviderType.DarkV2;\r\n _this.sciChartBackground = \"radial-gradient(circle, #3C3C3FFF 0%, #1C1C1EFF 100%)\";\r\n _this.loadingAnimationBackground = \"radial-gradient(circle, #3C3C3FFF 0%, #1C1C1EFF 100%)\";\r\n _this.axisBandsFill = \"#20212333\";\r\n _this.majorGridLineBrush = \"#AAAAAA37\";\r\n _this.minorGridLineBrush = \"#77777719\";\r\n _this.strokePalette = [\"#F48420\", \"#AE408E\", \"#209FD9\", \"#264B93\"];\r\n _this.fillPalette = [\"#F4842077\", \"#AE408E77\", \"#209FD977\", \"#264B9377\"];\r\n _this.isLightBackground = false;\r\n return _this;\r\n }\r\n return SciChartJSDarkv2Theme;\r\n}(SciChartJSDarkTheme_1.SciChartJSDarkTheme));\r\nexports.SciChartJSDarkv2Theme = SciChartJSDarkv2Theme;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartJSLightTheme = void 0;\r\nvar ThemeProviderType_1 = require(\"../../types/ThemeProviderType\");\r\nvar IThemeProvider_1 = require(\"./IThemeProvider\");\r\n/**\r\n * An implementation of {@link ThemeProvider} which provides a light theme\r\n * @decription Applied to a 2D {@link SciChartSurface}, or a 3D {@link SciChart3DSurface}, the ThemeProvider may be\r\n * applied using the {@link SciChartSurface.applyTheme | applyTheme} method, where it is passed down to child components\r\n * so that all children of the chart get the same theme.\r\n *\r\n * For example:\r\n * ```ts\r\n * // Applying a theme when creating a chart\r\n * const { sciChartSurface, wasmContext } = SciChartSurface.create(\"div-id\", { theme: new SciChartJSDarkTheme() });\r\n * // Apply a theme after chart creation\r\n * sciChartSurface.applyTheme(new SciChartJSDarkTheme());\r\n *\r\n * // Applying a custom theme\r\n * export class MyCustomTheme implements IThemeProvider {\r\n * // todo: implement IThemeProvider interface and apply properties\r\n * }\r\n *\r\n * sciChartSurface.applyTheme(new MyCustomTheme()); // Or apply in SciChartSurface.create()\r\n *\r\n * // Overriding just some members of a theme\r\n * const myOverriddenTheme = {...new SciChartJSLightTheme(), sciChartBackground: \"white\" };\r\n * ciChartSurface.applyTheme(myOverriddenTheme); // Or apply in SciChartSurface.create()\r\n * ```\r\n */\r\nvar SciChartJSLightTheme = /** @class */ (function (_super) {\r\n __extends(SciChartJSLightTheme, _super);\r\n function SciChartJSLightTheme() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /** @inheritDoc */\r\n _this.strokePalette = [\"#F48420\", \"#AE408E\", \"#30BC9A\", \"#209FD9\", \"#264B93\"];\r\n /** @inheritDoc */\r\n _this.fillPalette = [\"#F4842077\", \"#AE408E77\", \"#30BC9A77\", \"#209FD977\", \"#264B9377\"];\r\n /** @inheritDoc */\r\n _this.type = ThemeProviderType_1.EThemeProviderType.Light;\r\n /** @inheritDoc */\r\n _this.sciChartBackground = \"#F9F9F9FF\";\r\n /** @inheritDoc */\r\n _this.loadingAnimationBackground = \"#F9F9F9FF\";\r\n /** @inheritDoc */\r\n _this.loadingAnimationForeground = \"#777777FF\";\r\n /** @inheritDoc */\r\n _this.gridBorderBrush = \"#33333399\";\r\n /** @inheritDoc */\r\n _this.axisBandsFill = \"#AAAAAA09\";\r\n /** @inheritDoc */\r\n _this.axisBorder = \"#00000000\";\r\n /** @inheritDoc */\r\n _this.tickTextBrush = \"#333333FF\";\r\n /** @inheritDoc */\r\n _this.majorGridLineBrush = \"#CFCFCFFF\";\r\n /** @inheritDoc */\r\n _this.minorGridLineBrush = \"#CFCFCF77\";\r\n /** @inheritDoc */\r\n _this.gridBackgroundBrush = \"#05333377\";\r\n /** @inheritDoc */\r\n _this.rolloverLineBrush = \"#33333333\";\r\n /** @inheritDoc */\r\n _this.cursorLineBrush = \"#33333355\";\r\n /** @inheritDoc */\r\n _this.rubberBandFillBrush = \"#33333333\";\r\n /** @inheritDoc */\r\n _this.rubberBandStrokeBrush = \"#33333377\";\r\n /** @inheritDoc */\r\n _this.legendBackgroundBrush = \"#33333333\";\r\n /** @inheritDoc */\r\n _this.labelBackgroundBrush = \"#D0D0D0BB\";\r\n /** @inheritDoc */\r\n _this.labelBorderBrush = \"#33333377\";\r\n /** @inheritDoc */\r\n _this.labelForegroundBrush = \"#555555FF\";\r\n /** @inheritDoc */\r\n _this.textAnnotationForeground = \"#000000FF\";\r\n /** @inheritDoc */\r\n _this.textAnnotationBackground = \"#FFFFFFFF\";\r\n /** @inheritDoc */\r\n _this.annotationsGripsBorderBrush = \"#232323FF\";\r\n /** @inheritDoc */\r\n _this.annotationsGripsBackroundBrush = \"#FFFFFF33\";\r\n /** @inheritDoc */\r\n _this.annotationSelectionStroke = \"#f00e0e66\";\r\n /** @inheritDoc */\r\n _this.overviewFillBrush = \"#33333322\";\r\n /** @inheritDoc */\r\n _this.scrollbarBackgroundBrush = \"#33333322\";\r\n /** @inheritDoc */\r\n _this.scrollbarBorderBrush = \"#12121255\";\r\n /** @inheritDoc */\r\n _this.scrollbarGripsBackgroundBrush = \"#FFFFFF66\";\r\n /** @inheritDoc */\r\n _this.scrollbarViewportBackgroundBrush = \"#FFFFFF44\";\r\n /** @inheritDoc */\r\n _this.scrollbarViewportBorderBrush = \"#12121255\";\r\n /** @inheritDoc */\r\n _this.upWickColor = \"#52CC54FF\";\r\n /** @inheritDoc */\r\n _this.downWickColor = \"#E26565FF\";\r\n /** @inheritDoc */\r\n _this.upBodyBrush = \"#52CC54A0\";\r\n /** @inheritDoc */\r\n _this.downBodyBrush = \"#E26565D0\";\r\n /** @inheritDoc */\r\n _this.upBandSeriesLineColor = \"#52CC54FF\";\r\n /** @inheritDoc */\r\n _this.downBandSeriesLineColor = \"#E26565FF\";\r\n /** @inheritDoc */\r\n _this.upBandSeriesFillColor = \"#52CC5490\";\r\n /** @inheritDoc */\r\n _this.downBandSeriesFillColor = \"#E26565A0\";\r\n /** @inheritDoc */\r\n _this.mountainAreaBrush = \"#76B7E2B4\";\r\n /** @inheritDoc */\r\n _this.mountainLineColor = \"#777777FF\";\r\n /** @inheritDoc */\r\n _this.lineSeriesColor = \"#777777FF\";\r\n /** @inheritDoc */\r\n _this.columnLineColor = \"#777777FF\";\r\n /** @inheritDoc */\r\n _this.columnFillBrush = \"#777777FF\";\r\n /** @inheritDoc */\r\n _this.impulseFillBrush = \"#777777FF\";\r\n /** @inheritDoc */\r\n _this.defaultColorMapBrush = [\r\n { offset: 0, color: \"DARKBLUE\" },\r\n { offset: 0.5, color: \"CORNFLOWERBLUE\" },\r\n { offset: 1, color: \"#FF22AAFF\" }\r\n ];\r\n /** @inheritDoc */\r\n _this.axisTitleColor = \"#777777FF\";\r\n /** @inheritDoc */\r\n _this.chartTitleColor = \"#777777FF\";\r\n /** @inheritDoc */\r\n _this.shadowEffectColor = \"#A0AABAFA\";\r\n /** @inheritDoc */\r\n _this.planeBorderColor = \"#EEEEEEFF\";\r\n /** @inheritDoc */\r\n _this.axisPlaneBackgroundFill = \"TRANSPARENT\";\r\n /** @inheritDoc */\r\n _this.axis3DBandsFill = \"#33333333\";\r\n /** @inheritDoc */\r\n _this.isLightBackground = true;\r\n return _this;\r\n }\r\n return SciChartJSLightTheme;\r\n}(IThemeProvider_1.ThemeProvider));\r\nexports.SciChartJSLightTheme = SciChartJSLightTheme;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartJsNavyTheme = void 0;\r\nvar ThemeProviderType_1 = require(\"../../types/ThemeProviderType\");\r\nvar IThemeProvider_1 = require(\"./IThemeProvider\");\r\nvar SciChartJSDarkv2Theme_1 = require(\"./SciChartJSDarkv2Theme\");\r\nvar SciChartJsNavyTheme = /** @class */ (function (_super) {\r\n __extends(SciChartJsNavyTheme, _super);\r\n function SciChartJsNavyTheme() {\r\n var _this = _super.call(this) || this;\r\n _this.type = ThemeProviderType_1.EThemeProviderType.Navy;\r\n _this.background1 = \"#22365B\";\r\n _this.background2 = \"#17243d\";\r\n _this.loadingBackground1 = \"#21253D\";\r\n _this.loadingBackground2 = \"#09090F\";\r\n _this.sciChartBackground = \"radial-gradient(circle, \".concat(_this.background1, \" 0%, \").concat(_this.background2, \" 100%)\");\r\n _this.loadingAnimationBackground = \"radial-gradient(circle, \".concat(_this.loadingBackground1, \" 0%, \").concat(_this.loadingBackground2, \" 100%)\");\r\n _this.loadingAnimationForeground = \"#2A2F4C\";\r\n _this.axisBandsFill = \"#52469503\";\r\n _this.majorGridLineBrush = \"#191C6D77\";\r\n _this.minorGridLineBrush = \"#2B2D7077\";\r\n _this.tickTextBrush = \"#8398ba\";\r\n _this.strokePalette = [\"#274b92\", \"#47bde6\", \"#ae418d\", \"#e97064\", \"#68bcae\", \"#634e96\"];\r\n _this.fillPalette = [\"#274b9288\", \"#47bde688\", \"#ae418d88\", \"#e9706488\", \"#68bcae88\", \"#634e9688\"];\r\n _this.lineSeriesColor = IThemeProvider_1.AUTO_COLOR;\r\n _this.planeBorderColor = \"#191C6D77\";\r\n _this.axisPlaneBackgroundFill = \"TRANSPARENT\";\r\n _this.axis3DBandsFill = \"#52469503\";\r\n _this.isLightBackground = false;\r\n return _this;\r\n }\r\n return SciChartJsNavyTheme;\r\n}(SciChartJSDarkv2Theme_1.SciChartJSDarkv2Theme));\r\nexports.SciChartJsNavyTheme = SciChartJsNavyTheme;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AdornerLayer = void 0;\r\nvar AdornerLayer = /** @class */ (function () {\r\n function AdornerLayer(scs) {\r\n this.parentSurface = scs;\r\n }\r\n AdornerLayer.prototype.selectAnnotation = function (args) {\r\n var scs = this.parentSurface;\r\n var selectedAnnotation;\r\n var selectAnnotationHelper = function (annotations) {\r\n for (var i = annotations.length - 1; i >= 0; i--) {\r\n var anBase = annotations[i];\r\n /** Allow all annotations to be clicked. Only select if editable */\r\n var isAnnotationSelected = anBase.click(args, !selectedAnnotation && anBase.isEditable);\r\n if (isAnnotationSelected) {\r\n selectedAnnotation = anBase;\r\n }\r\n }\r\n };\r\n selectAnnotationHelper(scs.annotations.asArray());\r\n selectAnnotationHelper(scs.modifierAnnotations.asArray());\r\n this.selectedAnnotationProperty = selectedAnnotation;\r\n return !!selectedAnnotation;\r\n };\r\n AdornerLayer.prototype.deselectAnnotation = function (annotation) {\r\n if (this.selectedAnnotationProperty === annotation)\r\n this.selectedAnnotationProperty = undefined;\r\n };\r\n Object.defineProperty(AdornerLayer.prototype, \"selectedAnnotation\", {\r\n get: function () {\r\n return this.selectedAnnotationProperty;\r\n },\r\n set: function (value) {\r\n this.selectedAnnotationProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AdornerLayer.prototype, \"isAnnotationSelected\", {\r\n get: function () {\r\n return !!this.selectedAnnotationProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return AdornerLayer;\r\n}());\r\nexports.AdornerLayer = AdornerLayer;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AnnotationBase = exports.ECoordinateMode = exports.EDraggingGripPoint = void 0;\r\nvar classFactory_1 = require(\"../../../Builder/classFactory\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar BaseType_1 = require(\"../../../types/BaseType\");\r\nvar XyDirection_1 = require(\"../../../types/XyDirection\");\r\nvar guid_1 = require(\"../../../utils/guid\");\r\nvar translate_1 = require(\"../../../utils/translate\");\r\nvar AxisCore_1 = require(\"../Axis/AxisCore\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationClickEventArgs_1 = require(\"./AnnotationClickEventArgs\");\r\nvar AnnotationDragDeltaEventArgs_1 = require(\"./AnnotationDragDeltaEventArgs\");\r\nvar AnnotationHoverEventArgs_1 = require(\"./AnnotationHoverEventArgs\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\n/**\r\n * Defines possible parts of an annotation which could be interacted with a cursor to do dragging or resizing\r\n */\r\nvar EDraggingGripPoint;\r\n(function (EDraggingGripPoint) {\r\n /** x1,y1 */\r\n EDraggingGripPoint[\"x1y1\"] = \"x1y1\";\r\n /** x2,y1 */\r\n EDraggingGripPoint[\"x2y2\"] = \"x2y2\";\r\n /** x1,y2 */\r\n EDraggingGripPoint[\"x2y1\"] = \"x2y1\";\r\n /** x2,y2 */\r\n EDraggingGripPoint[\"x1y2\"] = \"x1y2\";\r\n EDraggingGripPoint[\"Body\"] = \"Body\";\r\n})(EDraggingGripPoint = exports.EDraggingGripPoint || (exports.EDraggingGripPoint = {}));\r\n/**\r\n * Defines the CoordinateMode for {@link AnnotationBase | Annotations} within SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n */\r\nvar ECoordinateMode;\r\n(function (ECoordinateMode) {\r\n /**\r\n * The {@link AnnotationBase.x1 | Annotation.x1}, {@link AnnotationBase.x2 | x2},\r\n * {@link AnnotationBase.y1 | y1}, {@link AnnotationBase.y2 | y2} coordinate is a data-value,\r\n * corresponding to the value on the {@link AxisBase2D | Axis} or in the\r\n * {@link IRenderableSeries.dataSeries | DataSeries}\r\n */\r\n ECoordinateMode[\"DataValue\"] = \"DataValue\";\r\n /**\r\n * The {@link AnnotationBase.x1 | Annotation.x1}, {@link AnnotationBase.x2 | x2},\r\n * {@link AnnotationBase.y1 | y1}, {@link AnnotationBase.y2 | y2} coordinate is a pixel coordinate,\r\n * corresponding to the distance from the top-left of the\r\n * {@link SciChartSurface}\r\n */\r\n ECoordinateMode[\"Pixel\"] = \"Pixel\";\r\n /**\r\n * The {@link AnnotationBase.x1 | Annotation.x1}, {@link AnnotationBase.x2 | x2},\r\n * {@link AnnotationBase.y1 | y1}, {@link AnnotationBase.y2 | y2} coordinate is relative,\r\n * where 0.0 corresponds to the left (or top) of the {@link SciChartSurface}\r\n * and 1.0 corresponds to the right (or bottom) of the {@link SciChartSurface}\r\n */\r\n ECoordinateMode[\"Relative\"] = \"Relative\";\r\n})(ECoordinateMode = exports.ECoordinateMode || (exports.ECoordinateMode = {}));\r\n/**\r\n * Defines the base class to an Annotation - a type of marker, text label, line or custom UI overlay on a 2D Cartesian {@link SciChartSurface}\r\n */\r\nvar AnnotationBase = /** @class */ (function (_super) {\r\n __extends(AnnotationBase, _super);\r\n /**\r\n * Creates an instance of the Annotation\r\n * @param options optional parameters of type {@link IAnnotationBaseOptions} used to configure the annotation at construct time\r\n */\r\n function AnnotationBase(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\r\n _this = _super.call(this) || this;\r\n _this.showWarning = true;\r\n _this.prevIsSelected = true;\r\n /** the annotation absolute coordinates */\r\n _this.annotationBorders = {\r\n x1: 0,\r\n x2: 0,\r\n y1: 0,\r\n y2: 0\r\n };\r\n _this.typeMap = new Map();\r\n _this.isHiddenProperty = false;\r\n _this.annotationsGripsStrokeProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.annotationsGripsBorderBrush;\r\n _this.annotationsGripsFillProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.annotationsGripsBackroundBrush;\r\n _this.annotationsGripsRadiusProperty = constants_1.ADORNER_GRIP_RADIUS;\r\n _this.selectionBoxStrokeProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.annotationSelectionStroke;\r\n _this.selectionBoxDeltaProperty = 1.5;\r\n _this.selectionBoxThicknessProperty = 6;\r\n _this.dragPointsProperty = [\r\n EDraggingGripPoint.Body,\r\n EDraggingGripPoint.x1y1,\r\n EDraggingGripPoint.x2y2,\r\n EDraggingGripPoint.x2y1,\r\n EDraggingGripPoint.x1y2\r\n ];\r\n _this.annotationLayerProperty = IAnnotation_1.EAnnotationLayer.AboveChart;\r\n _this.isEditableProperty = false;\r\n _this.xAxisIdProperty = AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.yAxisIdProperty = AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.xCoordinateModeProperty = ECoordinateMode.DataValue;\r\n _this.yCoordinateModeProperty = ECoordinateMode.DataValue;\r\n _this.isSelectedProperty = false;\r\n _this.isHoveredProperty = false;\r\n _this.resizeDirectionsProperty = XyDirection_1.EXyDirection.XyDirection;\r\n _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n _this.dragStarted = new EventHandler_1.EventHandler();\r\n _this.dragEnded = new EventHandler_1.EventHandler();\r\n _this.dragDelta = new EventHandler_1.EventHandler();\r\n _this.selectedChanged = new EventHandler_1.EventHandler();\r\n _this.clicked = new EventHandler_1.EventHandler();\r\n _this.hovered = new EventHandler_1.EventHandler();\r\n _this.annotationLayerProperty = (_b = options === null || options === void 0 ? void 0 : options.annotationLayer) !== null && _b !== void 0 ? _b : _this.annotationLayerProperty;\r\n _this.resizeDirectionsProperty = (_c = options === null || options === void 0 ? void 0 : options.resizeDirections) !== null && _c !== void 0 ? _c : _this.resizeDirectionsProperty;\r\n _this.isEditableProperty = (_d = options === null || options === void 0 ? void 0 : options.isEditable) !== null && _d !== void 0 ? _d : _this.isEditableProperty;\r\n _this.isHiddenProperty = (_e = options === null || options === void 0 ? void 0 : options.isHidden) !== null && _e !== void 0 ? _e : _this.isHiddenProperty;\r\n _this.x1Property = (_f = options === null || options === void 0 ? void 0 : options.x1) !== null && _f !== void 0 ? _f : _this.x1Property;\r\n _this.y1Property = (_g = options === null || options === void 0 ? void 0 : options.y1) !== null && _g !== void 0 ? _g : _this.y1Property;\r\n _this.x2Property = (_h = options === null || options === void 0 ? void 0 : options.x2) !== null && _h !== void 0 ? _h : _this.x2Property;\r\n _this.y2Property = (_j = options === null || options === void 0 ? void 0 : options.y2) !== null && _j !== void 0 ? _j : _this.y2Property;\r\n _this.xAxisIdProperty = (_k = options === null || options === void 0 ? void 0 : options.xAxisId) !== null && _k !== void 0 ? _k : _this.xAxisIdProperty;\r\n _this.yAxisIdProperty = (_l = options === null || options === void 0 ? void 0 : options.yAxisId) !== null && _l !== void 0 ? _l : _this.yAxisIdProperty;\r\n _this.xCoordinateModeProperty = (_m = options === null || options === void 0 ? void 0 : options.xCoordinateMode) !== null && _m !== void 0 ? _m : _this.xCoordinateModeProperty;\r\n _this.yCoordinateModeProperty = (_o = options === null || options === void 0 ? void 0 : options.yCoordinateMode) !== null && _o !== void 0 ? _o : _this.yCoordinateModeProperty;\r\n _this.isSelectedProperty = (_p = options === null || options === void 0 ? void 0 : options.isSelected) !== null && _p !== void 0 ? _p : _this.isSelectedProperty;\r\n _this.opacityProperty = (_q = options === null || options === void 0 ? void 0 : options.opacity) !== null && _q !== void 0 ? _q : 1.0;\r\n _this.annotationsGripsStrokeProperty = (_r = options === null || options === void 0 ? void 0 : options.annotationsGripsStroke) !== null && _r !== void 0 ? _r : _this.annotationsGripsStrokeProperty;\r\n _this.annotationsGripsFillProperty = (_s = options === null || options === void 0 ? void 0 : options.annotationsGripsFill) !== null && _s !== void 0 ? _s : _this.annotationsGripsFillProperty;\r\n _this.annotationsGripsRadiusProperty = (_t = options === null || options === void 0 ? void 0 : options.annotationsGripsRadius) !== null && _t !== void 0 ? _t : _this.annotationsGripsRadius;\r\n _this.selectionBoxStroke = (_u = options === null || options === void 0 ? void 0 : options.selectionBoxStroke) !== null && _u !== void 0 ? _u : _this.selectionBoxStrokeProperty;\r\n _this.selectionBoxDelta = (_v = options === null || options === void 0 ? void 0 : options.selectionBoxDelta) !== null && _v !== void 0 ? _v : _this.selectionBoxDeltaProperty;\r\n _this.selectionBoxThickness = (_w = options === null || options === void 0 ? void 0 : options.selectionBoxThickness) !== null && _w !== void 0 ? _w : _this.selectionBoxThicknessProperty;\r\n _this.dragPointsProperty = (_x = options === null || options === void 0 ? void 0 : options.dragPoints) !== null && _x !== void 0 ? _x : _this.dragPointsProperty;\r\n if (options === null || options === void 0 ? void 0 : options.onDragStarted) {\r\n if (typeof options.onDragStarted === \"string\") {\r\n _this.typeMap.set(\"onDragStarted\", options.onDragStarted);\r\n _this.dragStarted.subscribe((0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onDragStarted));\r\n }\r\n else {\r\n _this.dragStarted.subscribe(options.onDragStarted);\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.onDragEnded) {\r\n if (typeof options.onDragEnded === \"string\") {\r\n _this.typeMap.set(\"onDragEnded\", options.onDragEnded);\r\n _this.dragEnded.subscribe((0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onDragEnded));\r\n }\r\n else {\r\n _this.dragEnded.subscribe(options.onDragEnded);\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.onDrag) {\r\n if (typeof options.onDrag === \"string\") {\r\n _this.typeMap.set(\"onDrag\", options.onDrag);\r\n _this.dragDelta.subscribe((0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onDrag));\r\n }\r\n else {\r\n _this.dragDelta.subscribe(options.onDrag);\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.onClick) {\r\n if (typeof options.onClick === \"string\") {\r\n _this.typeMap.set(\"onClick\", options.onClick);\r\n _this.clicked.subscribe((0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onClick));\r\n }\r\n else {\r\n _this.clicked.subscribe(options.onClick);\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.onHover) {\r\n if (typeof options.onHover === \"string\") {\r\n _this.typeMap.set(\"onHover\", options.onHover);\r\n _this.hovered.subscribe((0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onHover));\r\n }\r\n else {\r\n _this.hovered.subscribe(options.onHover);\r\n }\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(AnnotationBase.prototype, \"annotationLayer\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.annotationLayerProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (annotationCanvas) {\r\n if (this.annotationLayerProperty !== annotationCanvas) {\r\n this.annotationLayerProperty = annotationCanvas;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ANNOTATION_CANVAS);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"adornerDraggingPoint\", {\r\n /**\r\n * Gets or sets current {@link EDraggingGripPoint}\r\n */\r\n get: function () {\r\n return this.adornerDraggingPointProperty;\r\n },\r\n /**\r\n * Gets or sets current {@link EDraggingGripPoint}\r\n */\r\n set: function (value) {\r\n var _a;\r\n if (this.adornerDraggingPointProperty !== value) {\r\n this.adornerDraggingPointProperty = value;\r\n if (value) {\r\n (_a = this.dragStarted) === null || _a === void 0 ? void 0 : _a.raiseEvent();\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"parentSurface\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.parentSurfaceProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (parentSurface) {\r\n if (this.parentSurfaceProperty !== parentSurface) {\r\n this.parentSurfaceProperty = parentSurface;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PARENT_SURFACE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"isEditable\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isEditableProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isEditable) {\r\n if (this.isEditableProperty !== isEditable) {\r\n this.isEditableProperty = isEditable;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_EDITABLE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"isHidden\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isHiddenProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isHidden) {\r\n if (this.isHiddenProperty !== isHidden) {\r\n this.isHiddenProperty = isHidden;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_HIDDEN);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"xCoordinateMode\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.xCoordinateModeProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (xCoordinateMode) {\r\n if (this.xCoordinateModeProperty !== xCoordinateMode) {\r\n this.xCoordinateModeProperty = xCoordinateMode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X_COORDINATE_MODE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"yCoordinateMode\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.yCoordinateModeProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (yCoordinateMode) {\r\n if (this.yCoordinateModeProperty !== yCoordinateMode) {\r\n this.yCoordinateModeProperty = yCoordinateMode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Y_COORDINATE_MODE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"x1\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.x1Property;\r\n },\r\n /** @inheritDoc */\r\n set: function (x1) {\r\n if (this.x1Property !== x1) {\r\n this.x1Property = x1;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X1);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"x2\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.x2Property;\r\n },\r\n /** @inheritDoc */\r\n set: function (x2) {\r\n if (this.x2Property !== x2) {\r\n this.x2Property = x2;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X2);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"y1\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.y1Property;\r\n },\r\n /** @inheritDoc */\r\n set: function (y1) {\r\n if (this.y1Property !== y1) {\r\n this.y1Property = y1;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Y1);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"y2\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.y2Property;\r\n },\r\n /** @inheritDoc */\r\n set: function (y2) {\r\n if (this.y2Property !== y2) {\r\n this.y2Property = y2;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Y2);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"xAxisId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.xAxisIdProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (xAxisId) {\r\n if (this.xAxisIdProperty !== xAxisId) {\r\n this.xAxisIdProperty = xAxisId;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.XAXIS_ID);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"yAxisId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.yAxisIdProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (yAxisId) {\r\n if (this.yAxisIdProperty !== yAxisId) {\r\n this.yAxisIdProperty = yAxisId;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.YAXIS_ID);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"isVerticalChart\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n var xAxis = this.parentSurface.getXAxisById(this.xAxisId);\r\n return xAxis === null || xAxis === void 0 ? void 0 : xAxis.isVerticalChart;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"resizeDirections\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.resizeDirectionsProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (this.resizeDirectionsProperty !== value) {\r\n this.resizeDirectionsProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.RESIZE_DIRECTIONS);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"isSelected\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isSelectedProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (this.isSelectedProperty !== value) {\r\n this.isSelectedProperty = value;\r\n this.selectedChanged.raiseEvent(this.isSelectedProperty);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_SELECTED);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"isHovered\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isHoveredProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (this.isHoveredProperty !== value) {\r\n this.isHoveredProperty = value;\r\n this.hovered.raiseEvent(new AnnotationHoverEventArgs_1.AnnotationHoverEventArgs({ sender: this, mouseArgs: undefined, isHovered: value }));\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_HOVERED);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"annotationsGripsStroke\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.annotationsGripsStrokeProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (color) {\r\n if (this.annotationsGripsStrokeProperty !== color) {\r\n this.annotationsGripsStrokeProperty = color;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ADORNER_STROKE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"annotationsGripsFill\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.annotationsGripsFillProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (color) {\r\n if (this.annotationsGripsFillProperty !== color) {\r\n this.annotationsGripsFillProperty = color;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ADORNER_FILL);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"annotationsGripsRadius\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.annotationsGripsRadiusProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (radius) {\r\n if (this.annotationsGripsRadiusProperty !== radius) {\r\n this.annotationsGripsRadiusProperty = radius;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ADORNER_RADIUS);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"selectionBoxStroke\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.selectionBoxStrokeProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (color) {\r\n if (this.selectionBoxStrokeProperty !== color) {\r\n this.selectionBoxStrokeProperty = color;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SELECTION_STROKE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"selectionBoxDelta\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.selectionBoxDeltaProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (delta) {\r\n if (this.selectionBoxDeltaProperty !== delta) {\r\n this.selectionBoxDeltaProperty = delta;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SELECTION_DELTA);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"selectionBoxThickness\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.selectionBoxThicknessProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (delta) {\r\n if (this.selectionBoxThicknessProperty !== delta) {\r\n this.selectionBoxThicknessProperty = delta;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SELECTION_DELTA);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"isDraggingStarted\", {\r\n get: function () {\r\n return !!this.adornerDraggingPoint;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"opacity\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.opacityProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (opacity) {\r\n if (this.opacityProperty !== opacity) {\r\n this.opacityProperty = opacity;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.OPACITY);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnnotationBase.prototype, \"svgAdornerRoot\", {\r\n get: function () {\r\n return this.svgAdornerRootProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n AnnotationBase.prototype.onAttach = function (scs) {\r\n this.svgAdornerRootProperty = scs.domSvgAdornerLayer;\r\n // Override in derived classes to be notified of attached\r\n if (this.isSelected) {\r\n this.parentSurface.adornerLayer.selectedAnnotation = this;\r\n }\r\n };\r\n /** @inheritDoc */\r\n AnnotationBase.prototype.onDetach = function () {\r\n if (this.isSelected) {\r\n this.isSelected = false;\r\n this.parentSurface.adornerLayer.deselectAnnotation(this);\r\n }\r\n if (this.isHovered) {\r\n this.isHovered = false;\r\n }\r\n this.selectedChanged.unsubscribeAll();\r\n this.deleteAdorner();\r\n this.svgAdornerRootProperty = undefined;\r\n };\r\n Object.defineProperty(AnnotationBase.prototype, \"dragPoints\", {\r\n /** Get the dragging points that should be enabled for this annotation */\r\n get: function () {\r\n return this.dragPointsProperty;\r\n },\r\n /** Set the dragging points that should be enabled for this annotation */\r\n set: function (dragPoints) {\r\n this.dragPointsProperty = dragPoints;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAGPOINTS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** Calculates if the annotation is hovered with the specified args*/\r\n AnnotationBase.prototype.checkIsWithinBounds = function (args) {\r\n var xyPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect, true);\r\n if (!xyPoint) {\r\n return false;\r\n }\r\n return this.checkIsClickedOnAnnotationInternal(xyPoint.x, xyPoint.y);\r\n };\r\n /** Sends hover/leave action to the annotation */\r\n AnnotationBase.prototype.hover = function (options) {\r\n var args = options.args, notifyPositionUpdate = options.notifyPositionUpdate, notifyOutEvent = options.notifyOutEvent;\r\n // check if the annotation is hovered or skip check if the result is provided\r\n var isHovered = options.isHovered !== undefined ? options.isHovered : this.checkIsWithinBounds(args);\r\n var wasHovered = this.isHovered;\r\n // change state if needed\r\n this.isHoveredProperty = isHovered;\r\n var isMouseEnterEvent = isHovered && !wasHovered;\r\n var isMouseLeaveEvent = wasHovered && !isHovered && notifyOutEvent;\r\n var isMouseUpdateEvent = isHovered && wasHovered && notifyPositionUpdate;\r\n if (isMouseEnterEvent || isMouseLeaveEvent || isMouseUpdateEvent) {\r\n this.hovered.raiseEvent(new AnnotationHoverEventArgs_1.AnnotationHoverEventArgs({ sender: this, mouseArgs: args, isHovered: isHovered }));\r\n }\r\n if (isHovered !== wasHovered) {\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_HOVERED);\r\n }\r\n };\r\n /** Called internally. Send a click to the annotation if the point is in bounds, raising the clicked event and optionally selecting the annotation. */\r\n AnnotationBase.prototype.click = function (args, selectOnClick) {\r\n var xyPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect, true);\r\n if (!xyPoint) {\r\n return false;\r\n }\r\n if (this.checkIsClickedOnAnnotationInternal(xyPoint.x, xyPoint.y)) {\r\n var borders = this.getAdornerAnnotationBorders(true);\r\n var x = args.mousePoint.x / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var y = args.mousePoint.y / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var relativeCoords = new Point_1.Point(x - borders.x1, y - borders.y1);\r\n this.isSelected = selectOnClick;\r\n this.clicked.raiseEvent(new AnnotationClickEventArgs_1.AnnotationClickEventArgs(this, args, relativeCoords));\r\n return this.isSelected;\r\n }\r\n else {\r\n this.isSelected = false;\r\n }\r\n return this.isSelected;\r\n };\r\n /** Called internally. Select the annotation if the point is in bounds. Does not raise the clicked event */\r\n AnnotationBase.prototype.clickToSelect = function (args) {\r\n var xyPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(args.mousePoint, this.parentSurface.seriesViewRect, true);\r\n if (!xyPoint) {\r\n return false;\r\n }\r\n this.isSelected = this.checkIsClickedOnAnnotationInternal(xyPoint.x, xyPoint.y);\r\n return this.isSelected;\r\n };\r\n AnnotationBase.prototype.calcDragDistance = function (xyPoint) { };\r\n AnnotationBase.prototype.onDragStarted = function (args) {\r\n return false;\r\n };\r\n AnnotationBase.prototype.checkIsClickedOnAnnotation = function (x, y) {\r\n // We multiply by PIXEL_RATIO to get coordinates on the scaled canvas\r\n var xyPoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(x * DpiHelper_1.DpiHelper.PIXEL_RATIO, y * DpiHelper_1.DpiHelper.PIXEL_RATIO), this.parentSurface.seriesViewRect, true);\r\n if (!xyPoint)\r\n return false;\r\n return this.checkIsClickedOnAnnotationInternal(xyPoint.x, xyPoint.y);\r\n };\r\n AnnotationBase.prototype.onDragAdorner = function (args) {\r\n var xyValues = this.getValuesFromCoordinates(args.mousePoint, true);\r\n if (xyValues) {\r\n this.calcDragDistance(xyValues);\r\n }\r\n this.dragDelta.raiseEvent(new AnnotationDragDeltaEventArgs_1.AnnotationDragDeltaEventArgs());\r\n };\r\n AnnotationBase.prototype.onDragEnded = function () {\r\n var _a;\r\n (_a = this.dragEnded) === null || _a === void 0 ? void 0 : _a.raiseEvent();\r\n this.adornerDraggingPoint = undefined;\r\n this.prevValue = undefined;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n AnnotationBase.prototype.onDpiChanged = function (args) { };\r\n /** Internal use. Captures the state of isHidden,x1,y1 and prevents invalidateParent being called on change to these properties */\r\n AnnotationBase.prototype.suspendInvalidate = function () {\r\n this.invalidateState = {\r\n isHidden: this.isHidden,\r\n x1: this.x1,\r\n y1: this.y1\r\n };\r\n };\r\n /** Internal use. If isHidden,x1,y1 have change since suspendInvalidate was called, call invalidateParent */\r\n AnnotationBase.prototype.resumeInvalidate = function () {\r\n if (!this.invalidateState)\r\n return;\r\n if (this.isHidden !== this.invalidateState.isHidden ||\r\n this.x1 !== this.invalidateState.x1 ||\r\n this.y1 !== this.invalidateState.y1) {\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n }\r\n this.invalidateState = undefined;\r\n };\r\n AnnotationBase.prototype.toJSON = function () {\r\n var options = {\r\n id: this.id,\r\n annotationLayer: this.annotationLayer,\r\n isEditable: this.isEditable,\r\n isHidden: this.isHidden,\r\n isSelected: this.isSelected,\r\n onDrag: this.typeMap.get(\"onDrag\"),\r\n onDragEnded: this.typeMap.get(\"onDragEnded\"),\r\n onDragStarted: this.typeMap.get(\"onDragStarted\"),\r\n onClick: this.typeMap.get(\"onClick\"),\r\n onHover: this.typeMap.get(\"onHover\"),\r\n opacity: this.opacity,\r\n resizeDirections: this.resizeDirections,\r\n x1: this.x1Property,\r\n x2: this.x2Property,\r\n y1: this.y1Property,\r\n y2: this.y2Property,\r\n xAxisId: this.xAxisId,\r\n yAxisId: this.yAxisId,\r\n xCoordinateMode: this.xCoordinateMode,\r\n yCoordinateMode: this.yCoordinateMode,\r\n annotationsGripsStroke: this.annotationsGripsStroke,\r\n annotationsGripsFill: this.annotationsGripsFill,\r\n annotationsGripsRadius: this.annotationsGripsRadius,\r\n selectionBoxStroke: this.selectionBoxStroke,\r\n selectionBoxDelta: this.selectionBoxDelta,\r\n selectionBoxThickness: this.selectionBoxThickness,\r\n dragPoints: this.dragPointsProperty\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n /**\r\n * Returns annotationBorders\r\n * @param ordered flag to return x and y values in ascending order, where x1 <= x2 and y1 <= y2\r\n */\r\n AnnotationBase.prototype.getAnnotationBorders = function (ordered, applyDelta) {\r\n var _a, _b;\r\n if (ordered === void 0) { ordered = false; }\r\n if (applyDelta === void 0) { applyDelta = false; }\r\n if (!ordered && !applyDelta)\r\n return this.annotationBorders;\r\n var _c = this.annotationBorders, x1 = _c.x1, x2 = _c.x2, y1 = _c.y1, y2 = _c.y2;\r\n var delta = applyDelta ? this.selectionBoxDelta : 0;\r\n if (ordered) {\r\n if (x2 < x1) {\r\n _a = [x2 - delta, x1 + delta], x1 = _a[0], x2 = _a[1];\r\n }\r\n else {\r\n x1 -= delta;\r\n x2 += delta;\r\n }\r\n if (y2 < y1) {\r\n _b = [y2 - delta, y1 + delta], y1 = _b[0], y2 = _b[1];\r\n }\r\n else {\r\n y1 -= delta;\r\n y2 += delta;\r\n }\r\n }\r\n else {\r\n if (x2 < x1) {\r\n x1 += delta;\r\n x2 -= delta;\r\n }\r\n else {\r\n x1 -= delta;\r\n x2 += delta;\r\n }\r\n if (y2 < y1) {\r\n y1 += delta;\r\n y2 -= delta;\r\n }\r\n else {\r\n y1 -= delta;\r\n y2 += delta;\r\n }\r\n }\r\n return { x1: x1, x2: x2, y1: y1, y2: y2 };\r\n };\r\n /**\r\n * Returns annotation borders for the {@link AdornerLayer} which has the size of the whole canvas\r\n * @param ordered flag to return x and y values in ascending order\r\n */\r\n AnnotationBase.prototype.getAdornerAnnotationBorders = function (ordered, applyDelta) {\r\n if (ordered === void 0) { ordered = false; }\r\n if (applyDelta === void 0) { applyDelta = false; }\r\n var borders = this.getAnnotationBorders(ordered, applyDelta);\r\n var x1 = this.isSvgAnnotation ? borders.x1 * DpiHelper_1.DpiHelper.PIXEL_RATIO : borders.x1;\r\n var x2 = this.isSvgAnnotation ? borders.x2 * DpiHelper_1.DpiHelper.PIXEL_RATIO : borders.x2;\r\n var y1 = this.isSvgAnnotation ? borders.y1 * DpiHelper_1.DpiHelper.PIXEL_RATIO : borders.y1;\r\n var y2 = this.isSvgAnnotation ? borders.y2 * DpiHelper_1.DpiHelper.PIXEL_RATIO : borders.y2;\r\n var point1 = (0, translate_1.translateFromSeriesViewRectToCanvas)(new Point_1.Point(x1, y1), this.parentSurface.seriesViewRect, true);\r\n var point2 = (0, translate_1.translateFromSeriesViewRectToCanvas)(new Point_1.Point(x2, y2), this.parentSurface.seriesViewRect, true);\r\n return {\r\n x1: point1.x / DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n x2: point2.x / DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n y1: point1.y / DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n y2: point2.y / DpiHelper_1.DpiHelper.PIXEL_RATIO\r\n };\r\n };\r\n /** Get svg for the adorner grip handles for standard annotations */\r\n AnnotationBase.prototype.getAnnotationGripSvg = function (x, y) {\r\n return \"\");\r\n };\r\n /** Override this to disable drag behaviour for certain dragging points */\r\n AnnotationBase.prototype.canDragPoint = function (dragPoint) {\r\n return this.dragPointsProperty.includes(dragPoint);\r\n };\r\n /**\r\n * Gets the svg string for the adorner for standard annotations. Called by updateAdornerInner.\r\n * Coordinates passed in are the top left and bottom right of the bounding box.\r\n * To get the bounding coordinates in their original order call this.getAdornerAnnotationBorders(false, true);\r\n */\r\n AnnotationBase.prototype.svgStringAdornerTemplate = function (x1, y1, x2, y2) {\r\n return \"\";\r\n };\r\n /**\r\n * @summary Notifies subscribers of {@link AnnotationBase.propertyChanged} that a property has changed and the chart requires redrawing\r\n * @description SciChart provides fully reactive components, changing any property or changing data will cause the {@link AnnotationBase} to\r\n * redraw where necessary. This method notifies subscribers of the {@link AnnotationBase.propertyChanged} {@link EventHandler}\r\n * that a property has changed.\r\n * @param propertyName The name of the property which has changed\r\n */\r\n AnnotationBase.prototype.notifyPropertyChanged = function (propertyName) {\r\n if (this.invalidateParentCallback && !this.invalidateState) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n /**\r\n * Converts a value (e.g. from {@link x1}, {@link x2}, {@link y1} or {@link y2}) into a pixel coordinate\r\n * @param value - the value to convert\r\n * @param calculator the {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param coordinateMode the {@link ECoordinateMode} to apply\r\n * @returns the pixel coordinate\r\n */\r\n AnnotationBase.prototype.getCoordinate = function (value, calculator, coordinateMode) {\r\n Guard_1.Guard.notNull(coordinateMode, \"coordinateMode\");\r\n Guard_1.Guard.notNull(calculator, \"calculator\");\r\n if (value === undefined) {\r\n return undefined;\r\n }\r\n switch (coordinateMode) {\r\n case ECoordinateMode.Pixel: {\r\n // Value is 20.0 means pixel = 20.0\r\n return this.isSvgAnnotation ? value : value * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n }\r\n case ECoordinateMode.DataValue: {\r\n // Value is 20.0 must be converted from data-value to coordinate using Axis api\r\n var absoluteCoordinate = value !== undefined && value !== null ? calculator.getCoordinate(value) : undefined;\r\n return this.isSvgAnnotation ? absoluteCoordinate / DpiHelper_1.DpiHelper.PIXEL_RATIO : absoluteCoordinate;\r\n }\r\n case ECoordinateMode.Relative: {\r\n // Value is 0.5 means 50% of the viewport size\r\n return this.isSvgAnnotation\r\n ? (value * calculator.viewportDimension + calculator.offset) / DpiHelper_1.DpiHelper.PIXEL_RATIO\r\n : value * calculator.viewportDimension + calculator.offset;\r\n }\r\n default: {\r\n throw new Error(\"AnnotationBase.getCoordinate with CoordinateMode.\".concat(coordinateMode, \" is not implemented\"));\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the pixel X1 coordinate\r\n * @param xCalc the X {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param yCalc the Y {@link CoordinateCalculatorBase} which will do the transformation\r\n * @returns the pixel X1 coordinate\r\n */\r\n AnnotationBase.prototype.getX1Coordinate = function (xCalc, yCalc) {\r\n var _a, _b;\r\n return this.isVerticalChart\r\n ? this.getCoordinate((_a = this.y1) !== null && _a !== void 0 ? _a : 0, yCalc, this.yCoordinateMode)\r\n : this.getCoordinate((_b = this.x1) !== null && _b !== void 0 ? _b : 0, xCalc, this.xCoordinateMode);\r\n };\r\n /**\r\n * Returns the pixel X2 coordinate\r\n * @param xCalc the X {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param yCalc the Y {@link CoordinateCalculatorBase} which will do the transformation\r\n * @returns the pixel X2 coordinate\r\n */\r\n AnnotationBase.prototype.getX2Coordinate = function (xCalc, yCalc) {\r\n var _a, _b;\r\n return this.isVerticalChart\r\n ? this.getCoordinate((_a = this.y2) !== null && _a !== void 0 ? _a : 0, yCalc, this.yCoordinateMode)\r\n : this.getCoordinate((_b = this.x2) !== null && _b !== void 0 ? _b : 0, xCalc, this.xCoordinateMode);\r\n };\r\n /**\r\n * Returns the pixel Y1 coordinate\r\n * @param xCalc the X {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param yCalc the Y {@link CoordinateCalculatorBase} which will do the transformation\r\n * @returns the pixel Y1 coordinate\r\n */\r\n AnnotationBase.prototype.getY1Coordinate = function (xCalc, yCalc) {\r\n var _a, _b;\r\n return this.isVerticalChart\r\n ? this.getCoordinate((_a = this.x1) !== null && _a !== void 0 ? _a : 0, xCalc, this.xCoordinateMode)\r\n : this.getCoordinate((_b = this.y1) !== null && _b !== void 0 ? _b : 0, yCalc, this.yCoordinateMode);\r\n };\r\n /**\r\n * Returns the pixel Y2 coordinate\r\n * @param xCalc the X {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param yCalc the Y {@link CoordinateCalculatorBase} which will do the transformation\r\n * @returns the pixel Y2 coordinate\r\n */\r\n AnnotationBase.prototype.getY2Coordinate = function (xCalc, yCalc) {\r\n var _a, _b;\r\n return this.isVerticalChart\r\n ? this.getCoordinate((_a = this.x2) !== null && _a !== void 0 ? _a : 0, xCalc, this.xCoordinateMode)\r\n : this.getCoordinate((_b = this.y2) !== null && _b !== void 0 ? _b : 0, yCalc, this.yCoordinateMode);\r\n };\r\n /**\r\n * Converts a pixel coordinate back to a value\r\n * @param value - coordinate or dataValue to convert\r\n * @param calculator the {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param coordinateMode the {@link ECoordinateMode} to apply\r\n * @returns the data-value or value\r\n */\r\n AnnotationBase.prototype.getValue = function (value, calculator, coordinateMode) {\r\n switch (coordinateMode) {\r\n case ECoordinateMode.Pixel: {\r\n return this.isSvgAnnotation\r\n ? calculator.getDataValue(value * DpiHelper_1.DpiHelper.PIXEL_RATIO)\r\n : calculator.getDataValue(value);\r\n }\r\n case ECoordinateMode.DataValue: {\r\n return value;\r\n }\r\n // Case relative: 0.0 = left and 1.0 = right % on the viewport\r\n case ECoordinateMode.Relative: {\r\n return (calculator.visibleMax - calculator.visibleMin) * value + calculator.visibleMin;\r\n }\r\n default: {\r\n throw new Error(\"Not implemented\");\r\n }\r\n }\r\n };\r\n AnnotationBase.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n return false;\r\n };\r\n AnnotationBase.prototype.deleteAdorner = function () {\r\n if (!this.svgAdorner || !this.parentSurface || this.parentSurface.isDeleted)\r\n return;\r\n this.svgAdornerRoot.removeChild(this.svgAdorner);\r\n this.svgAdorner = undefined;\r\n };\r\n /**\r\n * Transforms an absolute coordinates point to the corresponding value point.\r\n * The value point has x and y converted accordingly to the the coordinate modes {@link xCoordinateMode} and {@link yCoordinateMode}\r\n * @param point\r\n * @param translateToSeriesViewRect defines if the coordinates should be projected from the Canvas to SeriesViewRect\r\n * @returns a point with coordinates {@link ECoordinateMode}\r\n */\r\n AnnotationBase.prototype.getValuesFromCoordinates = function (point, translateToSeriesViewRect) {\r\n var viewRect = this.parentSurface.seriesViewRect;\r\n var translatedPoint = !translateToSeriesViewRect\r\n ? point\r\n : (0, translate_1.translateFromCanvasToSeriesViewRect)(point, viewRect, true);\r\n if (!translatedPoint) {\r\n return undefined;\r\n }\r\n var xAxis = this.parentSurface.getXAxisById(this.xAxisId);\r\n var xCoordCalc = xAxis.getCurrentCoordinateCalculator();\r\n var yAxis = this.parentSurface.getYAxisById(this.yAxisId);\r\n var yCoordCalc = yAxis.getCurrentCoordinateCalculator();\r\n var xValue = this.convertFromCoordinate(xAxis.isHorizontalAxis ? translatedPoint.x : translatedPoint.y, xCoordCalc, this.xCoordinateMode);\r\n var yValue = this.convertFromCoordinate(yAxis.isHorizontalAxis ? translatedPoint.x : translatedPoint.y, yCoordCalc, this.yCoordinateMode);\r\n return new Point_1.Point(xValue, yValue);\r\n };\r\n AnnotationBase.prototype.getXYCoordinatesFromValues = function (xyDataPoint) {\r\n var viewRect = this.parentSurface.seriesViewRect;\r\n var pointWithAbsoluteCoordinates = this.getAbsoluteCoordinates(xyDataPoint);\r\n var translatedPoint = (0, translate_1.translateFromSeriesViewRectToCanvas)(pointWithAbsoluteCoordinates, viewRect, true);\r\n if (!translatedPoint) {\r\n return undefined;\r\n }\r\n return new Point_1.Point(translatedPoint.x, translatedPoint.y);\r\n };\r\n /**\r\n * Converts an absolute coordinate to a value which could be in form of DataValue, Pixel, or Relative coordinate\r\n * @param value - an absolute coordinate to convert\r\n * @param calculator the {@link CoordinateCalculatorBase} which will do the transformation\r\n * @param coordinateMode the expected {@link ECoordinateMode} of the converted point\r\n * @returns the data-value, pixel, or relative value accordingly to the coordinateMode\r\n */\r\n AnnotationBase.prototype.convertFromCoordinate = function (value, calculator, coordinateMode) {\r\n switch (coordinateMode) {\r\n case ECoordinateMode.Pixel: {\r\n return value / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n }\r\n case ECoordinateMode.DataValue: {\r\n return value !== undefined && value !== null ? calculator.getDataValue(value) : undefined;\r\n }\r\n case ECoordinateMode.Relative: {\r\n return (value - calculator.offset) / calculator.viewportDimension;\r\n }\r\n default: {\r\n throw new Error(\"Not implemented\");\r\n }\r\n }\r\n };\r\n /**\r\n * Calculates coordinates in pixels of the specified Point.\r\n * Uses the {@link xCoordinateMode} (or {@link yCoordinateMode} for vertical chart)\r\n * @param point\r\n */\r\n AnnotationBase.prototype.getAbsoluteCoordinates = function (point) {\r\n var xCalc = this.parentSurface.getXAxisById(this.xAxisId).getCurrentCoordinateCalculator();\r\n var yCalc = this.parentSurface.getYAxisById(this.yAxisId).getCurrentCoordinateCalculator();\r\n var coord1 = this.getCoordinate(point.x, xCalc, this.xCoordinateMode);\r\n var coord2 = this.getCoordinate(point.y, yCalc, this.yCoordinateMode);\r\n return this.isVerticalChart ? new Point_1.Point(coord2, coord1) : new Point_1.Point(coord1, coord2);\r\n };\r\n /**\r\n * Calculates coordinates in pixels of the specified Point.\r\n * Uses the {@link xCoordinateMode} (or {@link yCoordinateMode} for vertical chart)\r\n * @param value\r\n */\r\n AnnotationBase.prototype.getAbsoluteHorizontalCoordinate = function (value) {\r\n var xCalc = this.parentSurface.getXAxisById(this.xAxisId).getCurrentCoordinateCalculator();\r\n var yCalc = this.parentSurface.getYAxisById(this.yAxisId).getCurrentCoordinateCalculator();\r\n return this.isVerticalChart\r\n ? this.getCoordinate(value, yCalc, this.yCoordinateMode)\r\n : this.getCoordinate(value, xCalc, this.xCoordinateMode);\r\n };\r\n /**\r\n * Calculates coordinate in pixels of the specified value in the vertical dimension.\r\n * Uses the {@link yCoordinateMode} (or {@link xCoordinateMode} for vertical chart)\r\n * @param value\r\n */\r\n AnnotationBase.prototype.getAbsoluteVerticalCoordinate = function (value) {\r\n var xCalc = this.parentSurface.getXAxisById(this.xAxisId).getCurrentCoordinateCalculator();\r\n var yCalc = this.parentSurface.getYAxisById(this.yAxisId).getCurrentCoordinateCalculator();\r\n return this.isVerticalChart\r\n ? this.getCoordinate(value, xCalc, this.xCoordinateMode)\r\n : this.getCoordinate(value, yCalc, this.yCoordinateMode);\r\n };\r\n /**\r\n * Sets annotationBorders\r\n * For renderContext annotations it is scaled and for SVG annotations it is not\r\n * For example if we have a macbook with retina display and canvas.width = 1600px, canvas.height = 1200px,\r\n * canvas.style.width = 800px, canvas.style.height = 600px\r\n * If we have {@link BoxAnnotation} (renderContext) which takes 50% width and height, located in the left-top corner\r\n * it should have annotationBorders as follows x1 = 0, x2 = 800, y1 = 0, y2 = 600\r\n * But if we have {@link CustomAnnotation} (SVG) which takes 50% width and height, located in the left-top corner\r\n * it should have annotationBorders as follows x1 = 0, x2 = 400, y1 = 0, y2 = 300\r\n * @protected\r\n */\r\n AnnotationBase.prototype.setAnnotationBorders = function (x1, x2, y1, y2) {\r\n this.annotationBorders = {\r\n x1: x1,\r\n x2: x2,\r\n y1: y1,\r\n y2: y2\r\n };\r\n };\r\n return AnnotationBase;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.AnnotationBase = AnnotationBase;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AnnotationClickEventArgs = void 0;\r\nvar AnnotationClickEventArgs = /** @class */ (function () {\r\n function AnnotationClickEventArgs(sender, mouseArgs, relativeCoords) {\r\n this.sender = sender;\r\n this.mouseArgs = mouseArgs;\r\n this.relativeCoords = relativeCoords;\r\n }\r\n return AnnotationClickEventArgs;\r\n}());\r\nexports.AnnotationClickEventArgs = AnnotationClickEventArgs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AnnotationDragDeltaEventArgs = void 0;\r\nvar AnnotationDragDeltaEventArgs = /** @class */ (function () {\r\n function AnnotationDragDeltaEventArgs() {\r\n }\r\n return AnnotationDragDeltaEventArgs;\r\n}());\r\nexports.AnnotationDragDeltaEventArgs = AnnotationDragDeltaEventArgs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AnnotationHoverEventArgs = void 0;\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationHoverEventArgs = /** @class */ (function () {\r\n function AnnotationHoverEventArgs(options) {\r\n var sender = options.sender, mouseArgs = options.mouseArgs, isHovered = options.isHovered;\r\n this.sender = sender;\r\n this.mouseArgs = mouseArgs;\r\n this.isHovered = isHovered;\r\n }\r\n AnnotationHoverEventArgs.prototype.getRelativeCoordinates = function () {\r\n var borders = this.sender.getAdornerAnnotationBorders(true);\r\n var x = this.mouseArgs.mousePoint.x / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var y = this.mouseArgs.mousePoint.y / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n return new Point_1.Point(x - borders.x1, y - borders.y1);\r\n };\r\n return AnnotationHoverEventArgs;\r\n}());\r\nexports.AnnotationHoverEventArgs = AnnotationHoverEventArgs;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxisMarkerAnnotation = void 0;\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar translate_1 = require(\"../../../utils/translate\");\r\nvar drawLabel_1 = require(\"../Helpers/drawLabel\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar RenderContextAnnotationBase_1 = require(\"./RenderContextAnnotationBase\");\r\n/**\r\n * @summary The {@link AxisMarkerAnnotation} provides an {@link AnnotationBase | Annotation} which draws a marker at\r\n * specified value on the axis over the {@link SciChartSurface}\r\n * @description\r\n * To add a {@link AxisMarkerAnnotation} to a {@link SciChartSurface}, use the following code:\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const AxisMarkerAnnotation = new AxisMarkerAnnotation( { y1: 3, backgroundColor: \"#FF000077\", color: \"#FF0000\"});\r\n * sciChartSurface.annotations.add(AxisMarkerAnnotation);\r\n * ```\r\n * @remarks Uses the fast WebGL/WebAssembly {@link WebGL2RenderingContext} for rendering\r\n */\r\nvar AxisMarkerAnnotation = /** @class */ (function (_super) {\r\n __extends(AxisMarkerAnnotation, _super);\r\n /**\r\n * Create an instance of a AxisMarkerAnnotation\r\n * @param options Optional parameters of type {@link IAxisMarkerAnnotationOptions} which configure the annotation upon construction\r\n */\r\n function AxisMarkerAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.RenderContextAxisMarkerAnnotation;\r\n _this.fontSizeProperty = 14;\r\n _this.fontFamilyProperty = \"Arial\";\r\n _this.fontWeightProperty = \"Normal\";\r\n _this.fontStyleProperty = \"Normal\";\r\n _this.colorProperty = \"#FFFFFF\";\r\n _this.backgroundColorProperty = \"#b36200\";\r\n _this.fontSizeProperty = (_a = options === null || options === void 0 ? void 0 : options.fontSize) !== null && _a !== void 0 ? _a : _this.fontSizeProperty;\r\n _this.fontFamilyProperty = (_b = options === null || options === void 0 ? void 0 : options.fontFamily) !== null && _b !== void 0 ? _b : _this.fontFamilyProperty;\r\n _this.fontWeightProperty = (_c = options === null || options === void 0 ? void 0 : options.fontWeight) !== null && _c !== void 0 ? _c : _this.fontWeightProperty;\r\n _this.fontStyleProperty = (_d = options === null || options === void 0 ? void 0 : options.fontStyle) !== null && _d !== void 0 ? _d : _this.fontStyleProperty;\r\n _this.colorProperty = (_e = options === null || options === void 0 ? void 0 : options.color) !== null && _e !== void 0 ? _e : _this.colorProperty;\r\n _this.paddingProperty = (_f = options === null || options === void 0 ? void 0 : options.padding) !== null && _f !== void 0 ? _f : _this.paddingProperty;\r\n _this.backgroundColorProperty = (_g = options === null || options === void 0 ? void 0 : options.backgroundColor) !== null && _g !== void 0 ? _g : _this.backgroundColorProperty;\r\n _this.formattedValueProperty = (_h = options === null || options === void 0 ? void 0 : options.formattedValue) !== null && _h !== void 0 ? _h : _this.formattedValueProperty;\r\n _this.imageProperty = (_j = options === null || options === void 0 ? void 0 : options.image) !== null && _j !== void 0 ? _j : _this.imageProperty;\r\n _this.imageWidthProperty = (_k = options === null || options === void 0 ? void 0 : options.imageWidth) !== null && _k !== void 0 ? _k : _this.imageWidthProperty;\r\n _this.imageHeightProperty = (_l = options === null || options === void 0 ? void 0 : options.imageHeight) !== null && _l !== void 0 ? _l : _this.imageHeightProperty;\r\n if (options === null || options === void 0 ? void 0 : options.x1) {\r\n _this.x1 = options.x1;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.x2) {\r\n _this.x2 = options.x2;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.y2) {\r\n _this.y2 = options.y2;\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n AxisMarkerAnnotation.prototype.delete = function () { };\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"y2\", {\r\n /**\r\n * y2 property is not supported for AxisMarkerAnnotation\r\n */\r\n get: function () {\r\n throw Error(\"y2 property is not supported for AxisMarkerAnnotation\");\r\n },\r\n /**\r\n * y2 property is not supported for AxisMarkerAnnotation\r\n */\r\n set: function (y2) {\r\n throw Error(\"y2 property is not supported for AxisMarkerAnnotation\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"x2\", {\r\n /**\r\n * x2 property is not supported for AxisMarkerAnnotation\r\n */\r\n get: function () {\r\n throw Error(\"x2 property is not supported for AxisMarkerAnnotation\");\r\n },\r\n /**\r\n * x2 property is not supported for AxisMarkerAnnotation\r\n */\r\n set: function (x2) {\r\n throw Error(\"x2 property is not supported for AxisMarkerAnnotation\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"backgroundColor\", {\r\n /**\r\n * Gets the color of the background of the {@link AxisMarkerAnnotation} as an HTML Color code\r\n */\r\n get: function () {\r\n return this.backgroundColorProperty;\r\n },\r\n /**\r\n * Sets the color of the background of the {@link AxisMarkerAnnotation} as an HTML Color code\r\n */\r\n set: function (value) {\r\n this.backgroundColorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.BACKGROUND_COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"color\", {\r\n /**\r\n * Gets the color of the {@link AxisMarkerAnnotation} as an HTML Color code\r\n */\r\n get: function () {\r\n return this.colorProperty;\r\n },\r\n /**\r\n * Sets the color of the {@link AxisMarkerAnnotation} as an HTML Color code\r\n */\r\n set: function (value) {\r\n this.colorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"fontSize\", {\r\n /**\r\n * Gets the fontSize of the {@link AxisMarkerAnnotation}\r\n */\r\n get: function () {\r\n return this.fontSizeProperty;\r\n },\r\n /**\r\n * Sets the fontSize of the {@link AxisMarkerAnnotation}\r\n */\r\n set: function (value) {\r\n this.fontSizeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FONT_SIZE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"fontFamily\", {\r\n /**\r\n * Gets the fontFamily of the {@link AxisMarkerAnnotation}\r\n */\r\n get: function () {\r\n return this.fontFamilyProperty;\r\n },\r\n /**\r\n * Sets the fontFamily of the {@link AxisMarkerAnnotation}\r\n */\r\n set: function (value) {\r\n this.fontFamilyProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FONT_FAMILY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"fontWeight\", {\r\n /**\r\n * Gets the fontWeight of the {@link AxisMarkerAnnotation}\r\n */\r\n get: function () {\r\n return this.fontWeightProperty;\r\n },\r\n /**\r\n * Sets the fontWeight of the {@link AxisMarkerAnnotation}\r\n */\r\n set: function (value) {\r\n this.fontWeightProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FONT_WEIGHT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"fontStyle\", {\r\n /**\r\n * Gets the fontStyle of the {@link AxisMarkerAnnotation}\r\n */\r\n get: function () {\r\n return this.fontStyleProperty;\r\n },\r\n /**\r\n * Sets the fontStyle of the {@link AxisMarkerAnnotation}\r\n */\r\n set: function (value) {\r\n this.fontStyleProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FONT_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"padding\", {\r\n /**\r\n * Gets the padding of the {@link AxisMarkerAnnotation}\r\n */\r\n get: function () {\r\n return this.paddingProperty;\r\n },\r\n /**\r\n * Sets the padding of the {@link AxisMarkerAnnotation}\r\n */\r\n set: function (value) {\r\n this.paddingProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PADDING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"formattedValue\", {\r\n /**\r\n * Gets the formattedValue of the {@link AxisMarkerAnnotation}\r\n */\r\n get: function () {\r\n return this.formattedValueProperty;\r\n },\r\n /**\r\n * Sets the formattedValue of the {@link AxisMarkerAnnotation}\r\n */\r\n set: function (value) {\r\n this.formattedValueProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FORMATTED_VALUE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"image\", {\r\n /**\r\n * Gets or sets the image to draw as an annotation {@link HTMLImageElement}\r\n */\r\n get: function () {\r\n return this.imageProperty;\r\n },\r\n /**\r\n * Gets or sets the image to draw as an annotation {@link HTMLImageElement}\r\n */\r\n set: function (image) {\r\n this.imageProperty = image;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IMAGE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"imageWidth\", {\r\n /**\r\n * Gets or sets the image width\r\n */\r\n get: function () {\r\n return this.imageWidthProperty;\r\n },\r\n /**\r\n * Gets or sets the image width\r\n */\r\n set: function (value) {\r\n this.imageWidthProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IMAGE_WIDTH);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisMarkerAnnotation.prototype, \"imageHeight\", {\r\n /**\r\n * Gets or sets the image height\r\n */\r\n get: function () {\r\n return this.imageHeightProperty;\r\n },\r\n /**\r\n * Gets or sets the image height\r\n */\r\n set: function (value) {\r\n this.imageHeightProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IMAGE_HEIGHT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n AxisMarkerAnnotation.prototype.drawWithContext = function (renderContext, xCalc, yCalc, viewRect) {\r\n Guard_1.Guard.notNull(renderContext, \"renderContext\");\r\n Guard_1.Guard.notNull(xCalc, \"xCalc\");\r\n Guard_1.Guard.notNull(yCalc, \"yCalc\");\r\n var x1Coord = this.getX1Coordinate(xCalc, yCalc);\r\n var y1Coord = this.getY1Coordinate(xCalc, yCalc);\r\n var isNil = function (obj) { return obj === undefined || obj === null; };\r\n var isX1CoordinateUndefined = isNil(this.x1);\r\n var markerDataValue = isX1CoordinateUndefined ? this.y1 : this.x1;\r\n Guard_1.Guard.argumentIsRealNumber(markerDataValue, \"x1 or y1\");\r\n var xAxisId = this.xAxisId;\r\n var xAxis = this.parentSurface.getXAxisById(xAxisId);\r\n var yAxisId = this.yAxisId;\r\n var yAxis = this.parentSurface.getYAxisById(yAxisId);\r\n var axisWithMarker = isX1CoordinateUndefined ? yAxis : xAxis;\r\n if (!axisWithMarker || axisWithMarker.isVisible === false)\r\n return;\r\n var coordinateMode = isX1CoordinateUndefined ? this.yCoordinateMode : this.xCoordinateMode;\r\n var coordinateCalculator = isX1CoordinateUndefined ? yCalc : xCalc;\r\n var annotationAbsoluteCoord = this.getCoordinate(markerDataValue, coordinateCalculator, coordinateMode);\r\n var isAxisLabelInVisibleRange = axisWithMarker.isHorizontalAxis\r\n ? annotationAbsoluteCoord >= 0 &&\r\n annotationAbsoluteCoord <= axisWithMarker.parentSurface.seriesViewRect.width\r\n : annotationAbsoluteCoord >= 0 &&\r\n annotationAbsoluteCoord <= axisWithMarker.parentSurface.seriesViewRect.height;\r\n if (isAxisLabelInVisibleRange) {\r\n var textStyle = {\r\n fontFamily: this.fontFamilyProperty,\r\n fontSize: this.fontSizeProperty * DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n fontStyle: this.fontStyleProperty,\r\n color: this.colorProperty\r\n };\r\n var res = (0, drawLabel_1.drawAxisMarkerAnnotation)(axisWithMarker, renderContext, this.formattedValueProperty, annotationAbsoluteCoord, x1Coord, y1Coord, textStyle, this.backgroundColorProperty, this.opacity, this.image, this.imageWidth, this.imageHeight);\r\n var point1 = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(res.xPosition, res.yPosition), viewRect, true);\r\n var point2 = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(res.xPosition + res.textureWidth, res.yPosition + res.textureHeight), viewRect, true);\r\n this.setAnnotationBorders(point1.x, point2.x, point1.y, point2.y);\r\n this.updateAdornerInner();\r\n }\r\n else {\r\n this.deleteAdorner();\r\n }\r\n };\r\n AxisMarkerAnnotation.prototype.onDragStarted = function (args) {\r\n _super.prototype.onDragStarted.call(this, args);\r\n var _a = this.calculateAdornerCenter(), x = _a.x, y = _a.y;\r\n var xyMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(args.mousePoint.x, args.mousePoint.y), this.parentSurface.seriesViewRect, true);\r\n var xyAdorner = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(x * DpiHelper_1.DpiHelper.PIXEL_RATIO, y * DpiHelper_1.DpiHelper.PIXEL_RATIO), this.parentSurface.seriesViewRect, true);\r\n if (xyMousePoint) {\r\n if (xyAdorner) {\r\n var dist = (0, pointUtil_1.calcDistance)(xyAdorner.x, xyAdorner.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y1;\r\n return true;\r\n }\r\n }\r\n if (this.clickToSelect(args)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.Body;\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n AxisMarkerAnnotation.prototype.calcDragDistance = function (xyValues) {\r\n if (!this.prevValue) {\r\n this.prevValue = xyValues;\r\n return;\r\n }\r\n if (this.x1 !== undefined) {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.y1 !== undefined) {\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n this.prevValue = xyValues;\r\n };\r\n AxisMarkerAnnotation.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n backgroundColor: this.backgroundColor,\r\n color: this.color,\r\n fontFamily: this.fontFamily,\r\n fontSize: this.fontSize,\r\n fontStyle: this.fontStyle,\r\n fontWeight: this.fontWeight,\r\n formattedValue: this.formattedValue,\r\n padding: this.padding\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n AxisMarkerAnnotation.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n var _a = this.getAnnotationBorders(true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n return (0, pointUtil_1.testIsInBounds)(x, y, x1, y2, x2, y1);\r\n };\r\n AxisMarkerAnnotation.prototype.updateAdornerInner = function () {\r\n this.deleteAdorner();\r\n if (this.isSelected) {\r\n var _a = this.getAdornerAnnotationBorders(true, true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var svgString = this.svgStringAdornerTemplate(x1, y1, x2, y2);\r\n this.svgAdorner = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgAdornerRoot);\r\n }\r\n };\r\n AxisMarkerAnnotation.prototype.svgStringAdornerTemplate = function (x1, y1, x2, y2) {\r\n var colorLine = this.selectionBoxStroke;\r\n var _a = this.calculateAdornerCenter(), x = _a.x, y = _a.y;\r\n var width = x2 - x1;\r\n var height = y2 - y1;\r\n return \"\\n \\n \").concat(this.getAnnotationGripSvg(x, y), \"\\n \");\r\n };\r\n /**\r\n * Calculates the adorner center relative to the canvas,\r\n * The coordinates are not scaled\r\n * @private\r\n */\r\n AxisMarkerAnnotation.prototype.calculateAdornerCenter = function () {\r\n var _a = this.getAdornerAnnotationBorders(), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var x = Math.abs((x1 + x2) / 2);\r\n var y = Math.abs((y1 + y2) / 2);\r\n return { x: x, y: y };\r\n };\r\n return AxisMarkerAnnotation;\r\n}(RenderContextAnnotationBase_1.RenderContextAnnotationBase));\r\nexports.AxisMarkerAnnotation = AxisMarkerAnnotation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BoxAnnotation = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar Rect_1 = require(\"../../../Core/Rect\");\r\nvar XyDirection_1 = require(\"../../../types/XyDirection\");\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar translate_1 = require(\"../../../utils/translate\");\r\nvar BrushCache_1 = require(\"../../Drawing/BrushCache\");\r\nvar Pen2DCache_1 = require(\"../../Drawing/Pen2DCache\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar RenderContextAnnotationBase_1 = require(\"./RenderContextAnnotationBase\");\r\n/**\r\n * @summary The {@link BoxAnnotation} provides an {@link AnnotationBase | Annotation} which draws a rectangle or box over the {@link SciChartSurface}\r\n * @description\r\n * To add a {@link BoxAnnotation} to a {@link SciChartSurface}, use the following code:\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const boxAnnotation = new BoxAnnotation( { x1: 1, x2: 2, y1: 3, y2: 4, fill: \"#FF000077\", stroke: \"#FF0000\"});\r\n * sciChartSurface.annotations.add(boxAnnotation);\r\n * ```\r\n * @remarks Uses the fast WebGL/WebAssembly {@link WebGL2RenderingContext} for rendering\r\n */\r\nvar BoxAnnotation = /** @class */ (function (_super) {\r\n __extends(BoxAnnotation, _super);\r\n /**\r\n * Create an instance of a BoxAnnotation\r\n * @param options Optional parameters of type {@link IBoxAnnotationOptions} which configure the annotation upon construction\r\n */\r\n function BoxAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.RenderContextBoxAnnotation;\r\n _this.strokeThicknessProperty = 1;\r\n _this.stroke = (_a = options === null || options === void 0 ? void 0 : options.stroke) !== null && _a !== void 0 ? _a : \"#ffffff\";\r\n _this.strokeThickness = (_b = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _b !== void 0 ? _b : 1;\r\n _this.fill = (_c = options === null || options === void 0 ? void 0 : options.fill) !== null && _c !== void 0 ? _c : \"#777777\";\r\n return _this;\r\n }\r\n Object.defineProperty(BoxAnnotation.prototype, \"stroke\", {\r\n /**\r\n * Gets stroke for the outline of the {@link BoxAnnotation}\r\n * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```\r\n */\r\n get: function () {\r\n return this.strokeProperty;\r\n },\r\n /**\r\n * Sets the stroke for the outline of the {@link BoxAnnotation}\r\n * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```\r\n */\r\n set: function (htmlColorCode) {\r\n this.strokeProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BoxAnnotation.prototype, \"strokeThickness\", {\r\n /**\r\n * Gets the strokeThickness for the outline of the {@link BoxAnnotation}\r\n */\r\n get: function () {\r\n return this.strokeThicknessProperty;\r\n },\r\n /**\r\n * Sets the strokeThickness for the outline of the {@link BoxAnnotation}\r\n */\r\n set: function (value) {\r\n this.strokeThicknessProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BoxAnnotation.prototype, \"fill\", {\r\n /**\r\n * Gets the fill for the {@link BoxAnnotation}\r\n * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```\r\n */\r\n get: function () {\r\n return this.fillProperty;\r\n },\r\n /**\r\n * Sets the fill for the {@link BoxAnnotation}\r\n * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```\r\n */\r\n set: function (htmlColorCode) {\r\n this.fillProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BoxAnnotation.prototype.delete = function () {\r\n this.strokePenCache = (0, Deleter_1.deleteSafe)(this.strokePenCache);\r\n this.fillBrushCache = (0, Deleter_1.deleteSafe)(this.fillBrushCache);\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n };\r\n /** @inheritDoc */\r\n BoxAnnotation.prototype.drawWithContext = function (renderContext, xCalc, yCalc, viewRect) {\r\n Guard_1.Guard.notNull(renderContext, \"renderContext\");\r\n Guard_1.Guard.notNull(xCalc, \"xCalc\");\r\n Guard_1.Guard.notNull(yCalc, \"yCalc\");\r\n var strokePen = this.stroke && this.strokeThickness ? (0, Pen2DCache_1.getWebGlPenFromCache)(this.strokePenCache) : undefined;\r\n strokePen === null || strokePen === void 0 ? void 0 : strokePen.setOpacity(this.opacity);\r\n var fillBrush = this.fill ? (0, BrushCache_1.getWebGlBrushFromCache)(this.fillBrushCache) : undefined;\r\n fillBrush === null || fillBrush === void 0 ? void 0 : fillBrush.setOpacity(this.opacity);\r\n var x1 = this.getX1Coordinate(xCalc, yCalc);\r\n var x2 = this.getX2Coordinate(xCalc, yCalc);\r\n var y1 = this.getY1Coordinate(xCalc, yCalc);\r\n var y2 = this.getY2Coordinate(xCalc, yCalc);\r\n this.setAnnotationBorders(x1, x2, y1, y2);\r\n var rect = Rect_1.Rect.createWithPoints(new Point_1.Point(x1, y1), new Point_1.Point(x2, y2));\r\n // Temporary HAX! drawRect is rubbish with large strokeThickness, whereas the columnDrawingProvider does a nice\r\n // outlined rectangle, but the code is ugly. In 2.3 we will improve the native drawRect to do the outline properly.\r\n if (!app_1.IS_TEST_ENV) {\r\n if (this.strokeThickness > 3) {\r\n this.drawWithProvider(renderContext, strokePen.scrtPen, fillBrush.scrtBrush, xCalc, yCalc, rect, viewRect);\r\n }\r\n else {\r\n renderContext.drawRect(rect, viewRect, strokePen, fillBrush);\r\n }\r\n }\r\n this.updateAdornerInner();\r\n };\r\n /** @inheritDoc */\r\n BoxAnnotation.prototype.onAttach = function (scs) {\r\n _super.prototype.onAttach.call(this, scs);\r\n this.nativeDrawingProvider = new scs.webAssemblyContext2D.SCRTColumnSeriesDrawingProvider();\r\n if (!this.strokePenCache) {\r\n this.strokePenCache = new Pen2DCache_1.Pen2DCache(scs.webAssemblyContext2D);\r\n }\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, this.stroke, this.strokeThickness, this.opacity);\r\n if (!this.fillBrushCache) {\r\n this.fillBrushCache = new BrushCache_1.BrushCache(scs.webAssemblyContext2D);\r\n }\r\n (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, this.fill, this.opacity);\r\n };\r\n BoxAnnotation.prototype.onDragStarted = function (args) {\r\n _super.prototype.onDragStarted.call(this, args);\r\n var _a = this.getAnnotationBorders(false, true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var _b = annotationHelpers_1.annotationHelpers.calcNewApex(x1, y1, x2, y2, this.isVerticalChart), x1y1 = _b.x1y1, x2y1 = _b.x2y1, x1y2 = _b.x1y2, x2y2 = _b.x2y2;\r\n var xyMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(args.mousePoint.x, args.mousePoint.y), this.parentSurface.seriesViewRect, true);\r\n if (x1y1 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y1)) {\r\n var dist = (0, pointUtil_1.calcDistance)(x1y1.x, x1y1.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y1;\r\n return true;\r\n }\r\n }\r\n if (x2y1 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y1)) {\r\n var dist = (0, pointUtil_1.calcDistance)(x2y1.x, x2y1.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x2y1;\r\n return true;\r\n }\r\n }\r\n if (x1y2 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y2)) {\r\n var dist = (0, pointUtil_1.calcDistance)(x1y2.x, x1y2.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y2;\r\n return true;\r\n }\r\n }\r\n if (x2y2 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y2)) {\r\n var dist = (0, pointUtil_1.calcDistance)(x2y2.x, x2y2.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x2y2;\r\n return true;\r\n }\r\n }\r\n if (xyMousePoint && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.Body)) {\r\n if (this.clickToSelect(args)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.Body;\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n BoxAnnotation.prototype.calcDragDistance = function (xyValues) {\r\n if (!this.prevValue) {\r\n this.prevValue = xyValues;\r\n return;\r\n }\r\n if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.Body) {\r\n this.x1 = this.x1 - (this.prevValue.x - xyValues.x);\r\n this.x2 = this.x2 - (this.prevValue.x - xyValues.x);\r\n this.y1 = this.y1 - (this.prevValue.y - xyValues.y);\r\n this.y2 = this.y2 - (this.prevValue.y - xyValues.y);\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x1y1) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x2y2) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x2y1) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x1y2) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n this.prevValue = xyValues;\r\n };\r\n BoxAnnotation.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n };\r\n BoxAnnotation.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n fill: this.fill,\r\n stroke: this.stroke,\r\n strokeThickness: this.strokeThickness\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n BoxAnnotation.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n var _a = this.getAnnotationBorders(true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n return (0, pointUtil_1.testIsInBounds)(x, y, x1, y2, x2, y1);\r\n };\r\n BoxAnnotation.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n var strokePenRelatedProperties = [\r\n constants_1.PROPERTY.STROKE,\r\n constants_1.PROPERTY.STROKE_THICKNESS,\r\n constants_1.PROPERTY.STROKE_DASH_ARRAY,\r\n constants_1.PROPERTY.OPACITY\r\n ];\r\n if (this.strokePenCache && strokePenRelatedProperties.includes(propertyName)) {\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, this.stroke, this.strokeThickness, this.opacity);\r\n }\r\n var fillBrushRelatedProperties = [constants_1.PROPERTY.FILL, constants_1.PROPERTY.OPACITY];\r\n if (this.fillBrushCache && fillBrushRelatedProperties.includes(propertyName)) {\r\n (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, this.fill, this.opacity);\r\n }\r\n };\r\n BoxAnnotation.prototype.updateAdornerInner = function () {\r\n this.deleteAdorner();\r\n if (this.isSelected) {\r\n var _a = this.getAdornerAnnotationBorders(true, true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var svgString = this.svgStringAdornerTemplate(x1, y1, x2, y2);\r\n this.svgAdorner = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgAdornerRoot);\r\n }\r\n };\r\n BoxAnnotation.prototype.svgStringAdornerTemplate = function (x1, y1, x2, y2) {\r\n var colorLine = this.selectionBoxStroke;\r\n var width = x2 - x1;\r\n var height = y2 - y1;\r\n var svg = \"\\n \\n \");\r\n var grips = this.getAdornerAnnotationBorders(false, true);\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y1)) {\r\n svg += this.getAnnotationGripSvg(grips.x1, grips.y1);\r\n }\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y2)) {\r\n svg += this.getAnnotationGripSvg(grips.x2, grips.y2);\r\n }\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y1)) {\r\n svg += this.getAnnotationGripSvg(grips.x2, grips.y1);\r\n }\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y2)) {\r\n svg += this.getAnnotationGripSvg(grips.x1, grips.y2);\r\n }\r\n svg += \"\";\r\n return svg;\r\n };\r\n BoxAnnotation.prototype.drawWithProvider = function (renderContext, linesPen, fillBrush, xCalc, yCalc, rect, viewRect) {\r\n var webAssemblyContext = this.parentSurface.webAssemblyContext2D;\r\n var args = new webAssemblyContext.SCRTColumnDrawingParams();\r\n args.forceShaderMethod = true;\r\n args.verticalChart = this.isVerticalChart;\r\n args.zeroLineY = this.isVerticalChart ? yCalc.getDataValue(rect.left) : yCalc.getDataValue(rect.bottom);\r\n args.columnWidth = this.isVerticalChart ? rect.height : rect.width;\r\n // ISSUE: If the strokeThickness property is not provided,\r\n // the fill will be disappeared with large zoom (when the column width will be small or zero)\r\n // if (args.columnWidth === 0 && this.strokeThickness === 0) {\r\n // strokePenCache = this.strokePenFillColoredCache;\r\n // }\r\n if (linesPen) {\r\n args.SetLinesPen(linesPen);\r\n }\r\n if (fillBrush) {\r\n args.SetFillBrush(fillBrush);\r\n }\r\n args.viewportWidth = viewRect.width;\r\n args.viewportHeight = viewRect.height;\r\n var xMid = this.isVerticalChart ? (rect.top + rect.bottom) / 2 : (rect.left + rect.right) / 2;\r\n var xVal = xCalc.getDataValue(xMid);\r\n var xValues = new webAssemblyContext.SCRTDoubleVector();\r\n xValues.push_back(xVal);\r\n var yVal = this.isVerticalChart ? yCalc.getDataValue(rect.right) : yCalc.getDataValue(rect.top);\r\n var yValues = new webAssemblyContext.SCRTDoubleVector();\r\n yValues.push_back(yVal);\r\n args.count = yValues.size();\r\n var nativeContext = renderContext.getNativeContext();\r\n nativeContext.PushMatrix();\r\n nativeContext.PushState();\r\n nativeContext.Translate(viewRect.x, viewRect.y);\r\n nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xValues, yValues, xCalc.nativeCalculator, yCalc.nativeCalculator, args);\r\n nativeContext.PopMatrix();\r\n nativeContext.PopState();\r\n xValues.delete();\r\n yValues.delete();\r\n args.delete();\r\n };\r\n return BoxAnnotation;\r\n}(RenderContextAnnotationBase_1.RenderContextAnnotationBase));\r\nexports.BoxAnnotation = BoxAnnotation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CursorTooltipSvgAnnotation = void 0;\r\nvar MousePosition_1 = require(\"../../../types/MousePosition\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar SvgAnnotationBase_1 = require(\"./SvgAnnotationBase\");\r\n/**\r\n * A Tooltip Annotation which provides an SVG tooltip over the chart. Used by the {@link CursorModifier}\r\n */\r\nvar CursorTooltipSvgAnnotation = /** @class */ (function (_super) {\r\n __extends(CursorTooltipSvgAnnotation, _super);\r\n /**\r\n * Creates an instance of the {@link CursorTooltipSvgAnnotation}\r\n * @param options\r\n */\r\n function CursorTooltipSvgAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.SVG;\r\n _this.seriesInfosProperty = [];\r\n _this.isHidden = true;\r\n _this.titleProperty = (_a = options === null || options === void 0 ? void 0 : options.title) !== null && _a !== void 0 ? _a : _this.titleProperty;\r\n _this.tooltipSvgTemplateProperty = (_b = options === null || options === void 0 ? void 0 : options.tooltipSvgTemplate) !== null && _b !== void 0 ? _b : _this.tooltipSvgTemplateProperty;\r\n _this.tooltipLegendTemplateProperty = (_c = options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) !== null && _c !== void 0 ? _c : _this.tooltipLegendTemplateProperty;\r\n _this.seriesInfosProperty = (_d = options === null || options === void 0 ? void 0 : options.seriesInfos) !== null && _d !== void 0 ? _d : _this.seriesInfosProperty;\r\n _this.containerBackgroundProperty = (_e = options === null || options === void 0 ? void 0 : options.containerBackground) !== null && _e !== void 0 ? _e : _this.containerBackgroundProperty;\r\n _this.textStrokeProperty = (_f = options === null || options === void 0 ? void 0 : options.textStroke) !== null && _f !== void 0 ? _f : _this.textStrokeProperty;\r\n _this.tooltipLegendOffsetXProperty = (_g = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetX) !== null && _g !== void 0 ? _g : _this.tooltipLegendOffsetXProperty;\r\n _this.tooltipLegendOffsetYProperty = (_h = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetY) !== null && _h !== void 0 ? _h : _this.tooltipLegendOffsetYProperty;\r\n _this.cursorModifier = options.cursorModifier;\r\n _this.placementDivId = (_j = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _j !== void 0 ? _j : _this.placementDivId;\r\n if (_this.placementDivId) {\r\n var svgRoot = document.querySelector(\"[id='\".concat(_this.placementDivId, \"']\"));\r\n _this.svgDivRoot = svgRoot;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(CursorTooltipSvgAnnotation.prototype, \"seriesInfos\", {\r\n /**\r\n * Gets or sets seriesInfos {@link SeriesInfo} value on the tooltip\r\n */\r\n get: function () {\r\n return this.seriesInfosProperty;\r\n },\r\n /**\r\n * Gets or sets seriesInfos {@link SeriesInfo} value on the tooltip\r\n */\r\n set: function (newSeriesInfos) {\r\n if (this.seriesInfosProperty && newSeriesInfos) {\r\n this.seriesInfosProperty = newSeriesInfos;\r\n // Compare infos against the ones for the matching series. See if any are different\r\n // This logic is needed to prevent infinite rerendering\r\n if (newSeriesInfos.length !== this.seriesInfosProperty.length ||\r\n this.seriesInfosProperty\r\n .map(function (seriesInfo) {\r\n return seriesInfo.equals(newSeriesInfos.find(function (newSeriesInfo) { return newSeriesInfo.renderableSeries.id === seriesInfo.renderableSeries.id; }));\r\n })\r\n .some(function (sameSeriesInfo) { return sameSeriesInfo === false; })) {\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_INFOS);\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorTooltipSvgAnnotation.prototype, \"title\", {\r\n get: function () {\r\n return this.titleProperty;\r\n },\r\n set: function (value) {\r\n if (this.titleProperty !== value) {\r\n this.titleProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TITLE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorTooltipSvgAnnotation.prototype, \"tooltipSvgTemplate\", {\r\n get: function () {\r\n return this.tooltipSvgTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipSvgTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_SVG_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorTooltipSvgAnnotation.prototype, \"tooltipLegendTemplate\", {\r\n get: function () {\r\n return this.tooltipLegendTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipLegendTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorTooltipSvgAnnotation.prototype, \"containerBackground\", {\r\n get: function () {\r\n return this.containerBackgroundProperty;\r\n },\r\n set: function (value) {\r\n if (this.containerBackgroundProperty !== value) {\r\n this.containerBackgroundProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CONTAINER_BACKGROUND);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorTooltipSvgAnnotation.prototype, \"tooltipLegendOffsetX\", {\r\n get: function () {\r\n return this.tooltipLegendOffsetXProperty;\r\n },\r\n set: function (value) {\r\n if (this.tooltipLegendOffsetXProperty !== value) {\r\n this.tooltipLegendOffsetXProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_OFFSET_X);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorTooltipSvgAnnotation.prototype, \"tooltipLegendOffsetY\", {\r\n get: function () {\r\n return this.tooltipLegendOffsetYProperty;\r\n },\r\n set: function (value) {\r\n if (this.tooltipLegendOffsetYProperty !== value) {\r\n this.tooltipLegendOffsetYProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_OFFSET_Y);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CursorTooltipSvgAnnotation.prototype, \"textStroke\", {\r\n get: function () {\r\n return this.textStrokeProperty;\r\n },\r\n set: function (value) {\r\n if (this.textStrokeProperty !== value) {\r\n this.textStrokeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT_STROKE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorTooltipSvgAnnotation.prototype.update = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n var currentMousePosition = this.cursorModifier.getMousePosition();\r\n if (this.previousMousePosition === currentMousePosition && currentMousePosition !== MousePosition_1.EMousePosition.SeriesArea) {\r\n return;\r\n }\r\n this.previousMousePosition = this.cursorModifier.getMousePosition();\r\n if (this.svg) {\r\n this.clear();\r\n }\r\n this.create(xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans);\r\n if (this.placementDivId) {\r\n this.updateExternalLegendTooltip();\r\n }\r\n else {\r\n this.updateTooltip(xCoordSvgTrans, yCoordSvgTrans);\r\n this.updateLegendTooltip();\r\n }\r\n };\r\n CursorTooltipSvgAnnotation.prototype.clear = function () {\r\n if (!this.parentSurface || this.parentSurface.isDeleted || !this.svg)\r\n return;\r\n if (this.placementDivId) {\r\n this.svgDivRoot.removeChild(this.svg);\r\n }\r\n else {\r\n this.svgRoot.removeChild(this.svg);\r\n }\r\n this.setSvg(undefined);\r\n if (this.svgLegend) {\r\n this.svgRoot.removeChild(this.svgLegend);\r\n this.svgLegend = undefined;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CursorTooltipSvgAnnotation.prototype.create = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n if (!this.tooltipSvgTemplate)\r\n throw Error(\"Please provide a tooltipSvgTemplate for CursorTooltipSvgAnnotation\");\r\n var svgString = this.tooltipSvgTemplate(this.seriesInfos, this);\r\n if (this.placementDivId) {\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgDivRoot);\r\n this.setSvg(svgNode);\r\n }\r\n else {\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n this.setSvg(svgNode);\r\n }\r\n };\r\n CursorTooltipSvgAnnotation.prototype.updateTooltip = function (xCoordSvgTrans, yCoordSvgTrans) {\r\n var _a, _b, _c, _d;\r\n var shiftX = (_a = this.xCoordShift) !== null && _a !== void 0 ? _a : 0;\r\n var shiftY = (_b = this.yCoordShift) !== null && _b !== void 0 ? _b : 0;\r\n this.svg.style.display = this.isHidden ? \"none\" : \"block\";\r\n var mousePointX = (_c = this.x1) !== null && _c !== void 0 ? _c : 0;\r\n var mousePointY = (_d = this.y1) !== null && _d !== void 0 ? _d : 0;\r\n var x1Coord = shiftX + mousePointX + xCoordSvgTrans;\r\n var y1Coord = shiftY + mousePointY + yCoordSvgTrans;\r\n if (isNaN(x1Coord) || isNaN(y1Coord)) {\r\n this.svg.style.display = \"none\";\r\n }\r\n else {\r\n this.setSvgAttribute(\"x\", x1Coord);\r\n this.setSvgAttribute(\"y\", y1Coord);\r\n }\r\n };\r\n CursorTooltipSvgAnnotation.prototype.updateLegendTooltip = function () {\r\n if (this.tooltipLegendTemplate) {\r\n var svgString = this.seriesInfos ? this.tooltipLegendTemplate(this.seriesInfos, this) : \"\";\r\n if (this.svgLegend) {\r\n this.svgRoot.removeChild(this.svgLegend);\r\n }\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot);\r\n this.svgLegend = svgNode;\r\n this.svgLegend.setAttribute(\"x\", this.tooltipLegendOffsetX.toString());\r\n this.svgLegend.setAttribute(\"y\", this.tooltipLegendOffsetY.toString());\r\n }\r\n };\r\n CursorTooltipSvgAnnotation.prototype.updateExternalLegendTooltip = function () {\r\n if (this.tooltipLegendTemplate) {\r\n var svgString = this.seriesInfos\r\n ? this.tooltipLegendTemplate(this.seriesInfos, this)\r\n : \"\";\r\n if (this.svgLegend) {\r\n this.svgLegend.removeChild(this.svgLegend);\r\n }\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot);\r\n this.svgLegend = svgNode;\r\n }\r\n };\r\n return CursorTooltipSvgAnnotation;\r\n}(SvgAnnotationBase_1.SvgAnnotationBase));\r\nexports.CursorTooltipSvgAnnotation = CursorTooltipSvgAnnotation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CustomAnnotation = void 0;\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar SvgAnnotationBase_1 = require(\"./SvgAnnotationBase\");\r\n/**\r\n * A CustomAnnotation presents SVG information over the chart at specific {@link X1}, {@link Y1} coordinates\r\n */\r\nvar CustomAnnotation = /** @class */ (function (_super) {\r\n __extends(CustomAnnotation, _super);\r\n /**\r\n * Creates an instance of the {@link CustomAnnotation}\r\n * @param options The {@link ICustomAnnotationOptions} which contain optional parameters\r\n */\r\n function CustomAnnotation(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.SVGCustomAnnotation;\r\n _this.isDirty = true;\r\n _this.svgStringProperty = (_a = options === null || options === void 0 ? void 0 : options.svgString) !== null && _a !== void 0 ? _a : undefined;\r\n return _this;\r\n }\r\n Object.defineProperty(CustomAnnotation.prototype, \"svgString\", {\r\n /**\r\n * SVG dom element string provided by the user\r\n */\r\n get: function () {\r\n return this.svgStringProperty;\r\n },\r\n /**\r\n * SVG dom element string provided by the user\r\n */\r\n set: function (value) {\r\n if (this.svgStringProperty !== value) {\r\n this.isDirty = true;\r\n this.svgStringProperty = value;\r\n this.notifyPropertyChanged(\"svgString\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** This is called to get the svg string to use. Override this to customise the svg string for each render */\r\n CustomAnnotation.prototype.getSvgString = function (annotation) {\r\n return annotation.svgString;\r\n };\r\n /**\r\n * This is called on the svg element immediately after it is created. Use this to do adjustments or additions to it which require knowlege of its size.\r\n * For instance, this method adds a bounding rectangle to the existing svg\r\n * ```ts\r\n * updateSvg(annotation: CustomAnnotation, svg: SVGSVGElement) {\r\n * const annotationRect = svg.getBoundingClientRect();\r\n * const padding = 5;\r\n * // Offset the existing element by the padding\r\n * (svg.firstChild as SVGElement).setAttribute(\"x\", padding.toString());\r\n * (svg.firstChild as SVGElement).setAttribute(\"y\", padding.toString());\r\n * const rectWidth = annotationRect.width + padding + padding;\r\n * const rectHeight = annotationRect.height + padding + padding;\r\n * const namespace = \"http://www.w3.org/2000/svg\";\r\n * const newRect = document.createElementNS(namespace, \"rect\");\r\n * newRect.setAttribute(\"x\", \"0\");\r\n * newRect.setAttribute(\"y\", \"0\");\r\n * newRect.setAttribute(\"width\", `${rectWidth}`);\r\n * newRect.setAttribute(\"height\", `${rectHeight}`);\r\n * newRect.setAttribute(\"fill\", `red`);\r\n * return svg;\r\n * }\r\n * ```\r\n */\r\n CustomAnnotation.prototype.updateSvg = function (annotation, svg) {\r\n return svg;\r\n };\r\n /** @inheritDoc */\r\n CustomAnnotation.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n svgString: this.svgString\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n CustomAnnotation.prototype.create = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n if (this.svg && !this.isEditable && !this.isDirty) {\r\n this.calcAndSetAnnotationBorders(xCalc, yCalc);\r\n return;\r\n }\r\n if (this.isDirty ||\r\n !this.svg ||\r\n (this.svg &&\r\n (this.isSelected ||\r\n this.prevX1Coordinate !== this.getX1Coordinate(xCalc, yCalc) ||\r\n this.prevY1Coordinate !== this.getY1Coordinate(xCalc, yCalc)))) {\r\n this.prevX1Coordinate = this.getX1Coordinate(xCalc, yCalc);\r\n this.prevY1Coordinate = this.getY1Coordinate(xCalc, yCalc);\r\n if (this.svg) {\r\n this.clear();\r\n }\r\n var svg = annotationHelpers_1.annotationHelpers.createSvg(this.getSvgString(this), this.svgRoot, this.nextSibling);\r\n this.setSvg(this.updateSvg(this, svg));\r\n this.calcAndSetAnnotationBorders(xCalc, yCalc);\r\n this.updateAdornerInner();\r\n this.prevIsSelected = this.isSelected;\r\n this.isDirty = false;\r\n }\r\n else {\r\n this.calcAndSetAnnotationBorders(xCalc, yCalc);\r\n }\r\n if (this.prevIsSelected !== this.isSelected && this.svg && this.isEditable) {\r\n this.updateAdornerInner();\r\n this.prevIsSelected = this.isSelected;\r\n }\r\n };\r\n return CustomAnnotation;\r\n}(SvgAnnotationBase_1.SvgAnnotationBase));\r\nexports.CustomAnnotation = CustomAnnotation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HorizontalLineAnnotation = void 0;\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar Rect_1 = require(\"../../../Core/Rect\");\r\nvar AxisAlignment_1 = require(\"../../../types/AxisAlignment\");\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar translate_1 = require(\"../../../utils/translate\");\r\nvar Pen2DCache_1 = require(\"../../Drawing/Pen2DCache\");\r\nvar drawLabel_1 = require(\"../Helpers/drawLabel\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar LineAnnotation_1 = require(\"./LineAnnotation\");\r\n/**\r\n * @summary The {@link HorizontalLineAnnotation} provides an {@link AnnotationBase | Annotation} which draws a horizontal line at\r\n * specific y1 (or x1 for Vertical Chart) over the {@link SciChartSurface}\r\n * @description\r\n * To add a {@link HorizontalLineAnnotation} to a {@link SciChartSurface}, use the following code:\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const horizontalLineAnnotation = new HorizontalLineAnnotation( { x1: 1, y1: 3, fill: \"#FF000077\", stroke: \"#FF0000\"});\r\n * sciChartSurface.annotations.add(horizontalLineAnnotation);\r\n * ```\r\n * @remarks Uses the fast WebGL/WebAssembly {@link WebGL2RenderingContext} for rendering\r\n */\r\nvar HorizontalLineAnnotation = /** @class */ (function (_super) {\r\n __extends(HorizontalLineAnnotation, _super);\r\n /**\r\n * Create an instance of a HorizontalLineAnnotation\r\n * @param options Optional parameters of type {@link ILineAnnotationOptions} which configure the annotation upon construction\r\n */\r\n function HorizontalLineAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.RenderContextHorizontalLineAnnotation;\r\n _this.dragOnLine = true;\r\n _this.dragOnLabel = true;\r\n if (options === null || options === void 0 ? void 0 : options.x2) {\r\n _this.x2 = options.x2;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.y2) {\r\n _this.y2 = options.y2;\r\n }\r\n _this.dragOnLine = (_a = options === null || options === void 0 ? void 0 : options.dragOnLine) !== null && _a !== void 0 ? _a : _this.dragOnLine;\r\n _this.dragOnLabel = (_b = options === null || options === void 0 ? void 0 : options.dragOnLabel) !== null && _b !== void 0 ? _b : _this.dragOnLabel;\r\n _this.horizontalAlignment = (_c = options === null || options === void 0 ? void 0 : options.horizontalAlignment) !== null && _c !== void 0 ? _c : _this.horizontalAlignment;\r\n return _this;\r\n }\r\n Object.defineProperty(HorizontalLineAnnotation.prototype, \"y2\", {\r\n /**\r\n * y2 property is not supported for HorizontalLineAnnotation\r\n */\r\n get: function () {\r\n throw Error(\"y2 property is not supported for HorizontalLineAnnotation\");\r\n },\r\n /**\r\n * y2 property is not supported for HorizontalLineAnnotation\r\n */\r\n set: function (y2) {\r\n throw Error(\"y2 property is not supported for HorizontalLineAnnotation\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HorizontalLineAnnotation.prototype, \"x2\", {\r\n /**\r\n * x2 property is not supported for HorizontalLineAnnotation\r\n */\r\n get: function () {\r\n throw Error(\"x2 property is not supported for HorizontalLineAnnotation\");\r\n },\r\n /**\r\n * x2 property is not supported for HorizontalLineAnnotation\r\n */\r\n set: function (x2) {\r\n throw Error(\"x2 property is not supported for HorizontalLineAnnotation\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n HorizontalLineAnnotation.prototype.drawWithContext = function (renderContext, xCalc, yCalc, viewRect) {\r\n Guard_1.Guard.notNull(renderContext, \"renderContext\");\r\n Guard_1.Guard.notNull(xCalc, \"xCalc\");\r\n Guard_1.Guard.notNull(yCalc, \"yCalc\");\r\n var strokePen = this.stroke && this.strokeThickness ? (0, Pen2DCache_1.getWebGlPenFromCache)(this.strokePenCache) : undefined;\r\n var _a = this.getDrawConfig(xCalc, yCalc), annotationCoord = _a.annotationCoord, lineAnnotationEdgeCoord = _a.lineAnnotationEdgeCoord, horizontalAxis = _a.horizontalAxis, verticalAxis = _a.verticalAxis, horizontalAxisCoordinateMode = _a.horizontalAxisCoordinateMode, verticalAxisCoordinateMode = _a.verticalAxisCoordinateMode, horizontalCoordinateCalculator = _a.horizontalCoordinateCalculator, verticalCoordinateCalculator = _a.verticalCoordinateCalculator, isAlignmentRight = _a.isAlignmentRight;\r\n if (!horizontalAxis || !verticalAxis)\r\n return;\r\n var borderX1 = 0;\r\n var borderX2 = viewRect.width;\r\n if (isAlignmentRight) {\r\n borderX1 = viewRect.width;\r\n borderX2 = 0;\r\n }\r\n var lineAnnotationEdgeCoordValue = this.getValue(lineAnnotationEdgeCoord, horizontalCoordinateCalculator, horizontalAxisCoordinateMode);\r\n var isPartialLine = lineAnnotationEdgeCoordValue || lineAnnotationEdgeCoordValue === 0;\r\n if (isPartialLine) {\r\n borderX2 = borderX2 = this.getX1Coordinate(xCalc, yCalc);\r\n }\r\n var borderY1 = this.getY1Coordinate(xCalc, yCalc);\r\n var borderY2 = borderY1;\r\n this.setAnnotationBorders(borderX1, borderX2, borderY1, borderY2);\r\n var lineEdgeAbsoluteHorizontalCoord = this.getCoordinate(lineAnnotationEdgeCoord, horizontalCoordinateCalculator, horizontalAxisCoordinateMode);\r\n var absoluteVerticalCoord = this.getCoordinate(annotationCoord, verticalCoordinateCalculator, verticalAxisCoordinateMode);\r\n var isAxisLabelInVerticalVisibleRange = absoluteVerticalCoord >= 0 && absoluteVerticalCoord <= verticalAxis.parentSurface.seriesViewRect.height;\r\n var isLineAnnotationInHorizontalVisibleRange = isAlignmentRight\r\n ? lineEdgeAbsoluteHorizontalCoord <= horizontalAxis.parentSurface.seriesViewRect.width\r\n : lineEdgeAbsoluteHorizontalCoord >= 0;\r\n var isLineAnnotationEdgeVisible = !isPartialLine || isLineAnnotationInHorizontalVisibleRange;\r\n if (isAxisLabelInVerticalVisibleRange && isLineAnnotationEdgeVisible) {\r\n var textStyle = __assign(__assign({}, verticalAxis.labelStyle), { color: this.axisLabelStroke, fontSize: this.axisFontSize * DpiHelper_1.DpiHelper.PIXEL_RATIO, fontFamily: this.axisFontFamily });\r\n var labelRect = (0, drawLabel_1.drawLineAnnotation)(verticalAxis, renderContext, this.labelPlacement, this.labelValue, borderX1, borderX2, borderY1, borderY2, textStyle, this.axisLabelFill, strokePen, viewRect, this.showLabel, this.opacity, this.horizontalAlignment);\r\n if (labelRect) {\r\n var point1 = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(labelRect.left, labelRect.top), viewRect, true);\r\n var point2 = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(labelRect.right, labelRect.bottom), viewRect, true);\r\n this.labelRect = Rect_1.Rect.createWithPoints(point1, point2);\r\n }\r\n }\r\n if (this.dragOnLine) {\r\n this.updateAdornerInner();\r\n }\r\n };\r\n HorizontalLineAnnotation.prototype.onDragStarted = function (args) {\r\n if (this.dragOnLine) {\r\n return _super.prototype.onDragStarted.call(this, args);\r\n }\r\n if (this.dragOnLabel && this.labelRect) {\r\n if (this.clickToSelect(args)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.Body;\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n HorizontalLineAnnotation.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n if (this.dragOnLine) {\r\n if (_super.prototype.checkIsClickedOnAnnotationInternal.call(this, x, y)) {\r\n return true;\r\n }\r\n }\r\n if (this.dragOnLabel && this.labelRect) {\r\n var _a = this.labelRect, left = _a.left, top_1 = _a.top, right = _a.right, bottom = _a.bottom;\r\n // TODO not sure if this is a bug in testIsInBounds or if it's just the reversed nature of y on screen\r\n if ((0, pointUtil_1.testIsInBounds)(x, y, left, bottom, right, top_1)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * returns axis related properties accordingly to chart configuration\r\n */\r\n HorizontalLineAnnotation.prototype.getDrawConfig = function (xCalc, yCalc) {\r\n var xAxisId = this.xAxisId;\r\n var xAxis = this.parentSurface.getXAxisById(xAxisId);\r\n var yAxisId = this.yAxisId;\r\n var yAxis = this.parentSurface.getYAxisById(yAxisId);\r\n var defaultChartCoordinateConfig = {\r\n annotationCoord: this.y1,\r\n lineAnnotationEdgeCoord: this.x1,\r\n horizontalAxis: xAxis,\r\n verticalAxis: yAxis,\r\n horizontalAxisCoordinateMode: this.xCoordinateMode,\r\n verticalAxisCoordinateMode: this.yCoordinateMode,\r\n horizontalCoordinateCalculator: xCalc,\r\n verticalCoordinateCalculator: yCalc,\r\n isAlignmentRight: (yAxis === null || yAxis === void 0 ? void 0 : yAxis.axisAlignment) === AxisAlignment_1.EAxisAlignment.Right\r\n };\r\n var verticalChartCoordinateConfig = {\r\n annotationCoord: this.x1,\r\n lineAnnotationEdgeCoord: this.y1,\r\n horizontalAxis: yAxis,\r\n verticalAxis: xAxis,\r\n horizontalAxisCoordinateMode: this.yCoordinateMode,\r\n verticalAxisCoordinateMode: this.xCoordinateMode,\r\n horizontalCoordinateCalculator: yCalc,\r\n verticalCoordinateCalculator: xCalc,\r\n isAlignmentRight: (xAxis === null || xAxis === void 0 ? void 0 : xAxis.axisAlignment) === AxisAlignment_1.EAxisAlignment.Right\r\n };\r\n return this.isVerticalChart ? verticalChartCoordinateConfig : defaultChartCoordinateConfig;\r\n };\r\n return HorizontalLineAnnotation;\r\n}(LineAnnotation_1.LineAnnotation));\r\nexports.HorizontalLineAnnotation = HorizontalLineAnnotation;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EAnnotationType = exports.EAnnotationLayer = void 0;\r\n/**\r\n * Defines the layer where {@link IAnnotation | Annotations} are drawn\r\n * when added to the {@link SciChartSurface.annotations} collection\r\n */\r\nvar EAnnotationLayer;\r\n(function (EAnnotationLayer) {\r\n /**\r\n * The {@link IAnnotation | Annotation} will be displayed above the chart series and grid\r\n * @remarks\r\n * This is the default value for {@link IAnnotation | Annotations}\r\n */\r\n EAnnotationLayer[\"AboveChart\"] = \"AboveChart\";\r\n /**\r\n * The {@link IAnnotation | Annotation} will be displayed below the chart series and grid.\r\n * @remarks\r\n * Doesn't work with SVG (Custom) annotations.\r\n *\r\n * Use this for watermarks, e.g. showing an image or text behind the chart.\r\n * The Grid lines and Axis Bands will show over the annotation,\r\n * so consider setting {@link AxisCore.axisBandsFill} to a semi-transparent color to avoid this.\r\n */\r\n EAnnotationLayer[\"BelowChart\"] = \"BelowChart\";\r\n /**\r\n * The {@link IAnnotation | Annotation} will be displayed below the chart grid lines, bands, and axes.\r\n * @remarks\r\n * Use this for custom background behind the chart.\r\n */\r\n EAnnotationLayer[\"Background\"] = \"Background\";\r\n})(EAnnotationLayer = exports.EAnnotationLayer || (exports.EAnnotationLayer = {}));\r\n/**\r\n * Defines the type of {@link IAnnotation | Annotation}.\r\n * Annotations are overlays or markers added to the {@link SciChartSurface.annotations} collection\r\n */\r\nvar EAnnotationType;\r\n(function (EAnnotationType) {\r\n /**\r\n * The Annotation is an {@link SvgAnnotationBase | SvgAnnotation}\r\n * @remarks\r\n * {@link SvgAnnotationBase | SvgAnnotations} are drawn using SVG where available.\r\n * This allows for more flexible annotations over the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript Chart},\r\n * such as text or other custom shapes\r\n * This is a base type for various internal annotations. Do not use in Chart Builder\r\n */\r\n EAnnotationType[\"SVG\"] = \"SVG\";\r\n /**\r\n * The Annotation is an {@link BoxAnnotation | BoxAnnotation}\r\n * @remarks\r\n * {@link BoxAnnotation | BoxAnnotation} * are drawn on the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript chart} using WebGL2 where available.\r\n * They differ from {@link SvgAnnotationBase | SvgAnnotations} which use slower,\r\n * but more flexible SVG to draw annotations on the chart\r\n */\r\n EAnnotationType[\"RenderContextBoxAnnotation\"] = \"RenderContextBoxAnnotation\";\r\n /**\r\n * The Annotation is an {@link LineAnnotation | LineAnnotation}\r\n * @remarks\r\n * {@link LineAnnotation | BoxAnnotation} * are drawn on the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript chart} using WebGL2 where available.\r\n * They differ from {@link SvgAnnotationBase | SvgAnnotations} which use slower,\r\n * but more flexible SVG to draw annotations on the chart\r\n */\r\n EAnnotationType[\"RenderContextLineAnnotation\"] = \"RenderContextLineAnnotation\";\r\n /**\r\n * The Annotation is an {@link HorizontalLineAnnotation | HorizontalLineAnnotation}\r\n * @remarks\r\n * {@link HorizontalLineAnnotation | HorizontalLineAnnotation} * are drawn on the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript chart} using WebGL2 where available.\r\n * They differ from {@link SvgAnnotationBase | SvgAnnotations} which use slower,\r\n * but more flexible SVG to draw annotations on the chart\r\n */\r\n EAnnotationType[\"RenderContextHorizontalLineAnnotation\"] = \"RenderContextHorizontalLineAnnotation\";\r\n /**\r\n * The Annotation is an {@link VerticalLineAnnotation | VerticalLineAnnotation}\r\n * @remarks\r\n * {@link VerticalLineAnnotation | VerticalLineAnnotation} * are drawn on the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript chart} using WebGL2 where available.\r\n * They differ from {@link SvgAnnotationBase | SvgAnnotations} which use slower,\r\n * but more flexible SVG to draw annotations on the chart\r\n */\r\n EAnnotationType[\"RenderContextVerticalLineAnnotation\"] = \"RenderContextVerticalLineAnnotation\";\r\n /**\r\n * The Annotation is an {@link AxisMarkerAnnotation | AxisMarkerAnnotation}\r\n * @remarks\r\n * {@link AxisMarkerAnnotation | AxisMarkerAnnotation} * are drawn on the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript chart} using WebGL2 where available.\r\n * They differ from {@link SvgAnnotationBase | SvgAnnotations} which use slower,\r\n * but more flexible SVG to draw annotations on the chart\r\n */\r\n EAnnotationType[\"RenderContextAxisMarkerAnnotation\"] = \"RenderContextAxisMarkerAnnotation\";\r\n /**\r\n * The Annotation is an {@link NativeTextAnnotation | NativeTextAnnotation}\r\n * @remarks\r\n * {@link NativeTextAnnotation | NativeTextAnnotation} * are drawn on the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript chart} using WebGL2 where available.\r\n * They differ from {@link TextAnnotation | TextAnnotation} which use slower,\r\n * but more flexible SVG to draw annotations on the chart\r\n */\r\n EAnnotationType[\"RenderContextNativeTextAnnotation\"] = \"RenderContextNativeTextAnnotation\";\r\n /**\r\n * The Annotation is an {@link TextAnnotation | TextAnnotation}\r\n * @remarks\r\n * {@link SvgAnnotationBase | SvgAnnotations} are drawn using SVG where available.\r\n * This allows for more flexible annotations over the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript Chart},\r\n * such as text or other custom shapes\r\n */\r\n EAnnotationType[\"SVGTextAnnotation\"] = \"SVGTextAnnotation\";\r\n /**\r\n * The Annotation is an {@link SVGCustomAnnotation | SVGCustomAnnotation}\r\n * @remarks\r\n * {@link SvgAnnotationBase | SvgAnnotations} are drawn using SVG where available.\r\n * This allows for more flexible annotations over the\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript Chart},\r\n * such as text or other custom shapes\r\n */\r\n EAnnotationType[\"SVGCustomAnnotation\"] = \"SVGCustomAnnotation\";\r\n})(EAnnotationType = exports.EAnnotationType || (exports.EAnnotationType = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LineAnnotation = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar LabelPlacement_1 = require(\"../../../types/LabelPlacement\");\r\nvar XyDirection_1 = require(\"../../../types/XyDirection\");\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar Pen2DCache_1 = require(\"../../Drawing/Pen2DCache\");\r\nvar drawLabel_1 = require(\"../Helpers/drawLabel\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar RenderContextAnnotationBase_1 = require(\"./RenderContextAnnotationBase\");\r\n/**\r\n * @summary The {@link LineAnnotation} provides an {@link AnnotationBase | Annotation} which draws a line at\r\n * specific x1x2 y1y2 over the {@link SciChartSurface}\r\n * @description\r\n * To add a {@link LineAnnotation} to a {@link SciChartSurface}, use the following code:\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const lineAnnotation = new LineAnnotation( { x1: 1, x2: 2, y1: 3, y2: 4, fill: \"#FF000077\", stroke: \"#FF0000\"});\r\n * sciChartSurface.annotations.add(lineAnnotation);\r\n * ```\r\n * @remarks Uses the fast WebGL/WebAssembly {@link WebGL2RenderingContext} for rendering\r\n */\r\nvar LineAnnotation = /** @class */ (function (_super) {\r\n __extends(LineAnnotation, _super);\r\n /**\r\n * Create an instance of a LineAnnotation\r\n * @param options Optional parameters of type {@link ILineAnnotationOptions} which configure the annotation upon construction\r\n */\r\n function LineAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.RenderContextLineAnnotation;\r\n _this.axisFontSizeProperty = 14;\r\n _this.axisFontFamilyProperty = \"Arial\";\r\n _this.strokeThicknessProperty = 1;\r\n _this.strokeDashArrayProperty = [];\r\n _this.strokeProperty = \"#FFFFFF\";\r\n _this.showLabelProperty = false;\r\n _this.axisLabelStrokeProperty = \"#ffffff\";\r\n _this.axisLabelFillProperty = \"#b36200\";\r\n _this.labelPlacementProperty = LabelPlacement_1.ELabelPlacement.Auto;\r\n _this.labelValueProperty = \"\";\r\n _this.stroke = (_a = options === null || options === void 0 ? void 0 : options.stroke) !== null && _a !== void 0 ? _a : _this.strokeProperty;\r\n _this.strokeThickness = (_b = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _b !== void 0 ? _b : _this.strokeThicknessProperty;\r\n _this.strokeDashArray = (_c = options === null || options === void 0 ? void 0 : options.strokeDashArray) !== null && _c !== void 0 ? _c : _this.strokeDashArrayProperty;\r\n _this.showLabelProperty = (_d = options === null || options === void 0 ? void 0 : options.showLabel) !== null && _d !== void 0 ? _d : _this.showLabelProperty;\r\n _this.axisLabelStrokeProperty = (_e = options === null || options === void 0 ? void 0 : options.axisLabelStroke) !== null && _e !== void 0 ? _e : _this.axisLabelStrokeProperty;\r\n _this.axisLabelFillProperty = (_f = options === null || options === void 0 ? void 0 : options.axisLabelFill) !== null && _f !== void 0 ? _f : _this.axisLabelFillProperty;\r\n _this.axisFontSizeProperty = (_g = options === null || options === void 0 ? void 0 : options.axisFontSize) !== null && _g !== void 0 ? _g : _this.axisFontSizeProperty;\r\n _this.axisFontFamilyProperty = (_h = options === null || options === void 0 ? void 0 : options.axisFontFamily) !== null && _h !== void 0 ? _h : _this.axisFontFamilyProperty;\r\n _this.labelPlacementProperty = (_j = options === null || options === void 0 ? void 0 : options.labelPlacement) !== null && _j !== void 0 ? _j : _this.labelPlacementProperty;\r\n _this.labelValueProperty = (_k = options === null || options === void 0 ? void 0 : options.labelValue) !== null && _k !== void 0 ? _k : _this.labelValueProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(LineAnnotation.prototype, \"stroke\", {\r\n /**\r\n * Gets the stroke for the {@link LineAnnotation}\r\n * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```\r\n */\r\n get: function () {\r\n return this.strokeProperty;\r\n },\r\n /**\r\n * Sets the stroke for the {@link LineAnnotation}\r\n * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```\r\n */\r\n set: function (htmlColorCode) {\r\n this.strokeProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"strokeThickness\", {\r\n /**\r\n * Gets the strokeThickness for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.strokeThicknessProperty;\r\n },\r\n /**\r\n * Sets the strokeThickness for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.strokeThicknessProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"strokeDashArray\", {\r\n /**\r\n * Gets the strokeDashArray for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.strokeDashArrayProperty;\r\n },\r\n /**\r\n * Sets the strokeDashArray for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.strokeDashArrayProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_DASH_ARRAY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"showLabel\", {\r\n /**\r\n * Gets the showLabel for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.showLabelProperty;\r\n },\r\n /**\r\n * Sets the showLabel for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.showLabelProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SHOW_LABEL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"axisLabelStroke\", {\r\n /**\r\n * Gets the axisLabelStroke for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.axisLabelStrokeProperty;\r\n },\r\n /**\r\n * Sets the axisLabelStroke for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.axisLabelStrokeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_LABELS_STROKE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"axisLabelFill\", {\r\n /**\r\n * Gets the axisLabelFill for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.axisLabelFillProperty;\r\n },\r\n /**\r\n * Sets the axisLabelFill for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.axisLabelFillProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_LABELS_FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"axisFontSize\", {\r\n /**\r\n * Gets the axisFontSize for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.axisFontSizeProperty;\r\n },\r\n /**\r\n * Sets the axisFontSize for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.axisFontSizeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_FONT_SIZE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"axisFontFamily\", {\r\n /**\r\n * Gets the axisFontSize for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.axisFontFamilyProperty;\r\n },\r\n /**\r\n * Sets the axisFontSize for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.axisFontFamilyProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_FONT_FAMILY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"labelPlacement\", {\r\n /**\r\n * Gets the labelPlacement for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.labelPlacementProperty;\r\n },\r\n /**\r\n * Sets the labelPlacement for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.labelPlacementProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_PLACEMENT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LineAnnotation.prototype, \"labelValue\", {\r\n /**\r\n * Gets the labelValue for the {@link LineAnnotation}\r\n */\r\n get: function () {\r\n return this.labelValueProperty;\r\n },\r\n /**\r\n * Sets the labelValue for the {@link LineAnnotation}\r\n */\r\n set: function (value) {\r\n this.labelValueProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_VALUE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n LineAnnotation.prototype.delete = function () {\r\n this.strokePenCache = (0, Deleter_1.deleteSafe)(this.strokePenCache);\r\n };\r\n /** @inheritDoc */\r\n LineAnnotation.prototype.onAttach = function (scs) {\r\n _super.prototype.onAttach.call(this, scs);\r\n if (!this.strokePenCache) {\r\n this.strokePenCache = new Pen2DCache_1.Pen2DCache(scs.webAssemblyContext2D);\r\n }\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, this.stroke, this.strokeThickness, this.opacity, this.strokeDashArray);\r\n };\r\n /** @inheritDoc */\r\n LineAnnotation.prototype.drawWithContext = function (renderContext, xCalc, yCalc, viewRect) {\r\n var _this = this;\r\n Guard_1.Guard.notNull(renderContext, \"renderContext\");\r\n Guard_1.Guard.notNull(xCalc, \"xCalc\");\r\n Guard_1.Guard.notNull(yCalc, \"yCalc\");\r\n var strokePen = this.stroke && this.strokeThickness ? (0, Pen2DCache_1.getWebGlPenFromCache)(this.strokePenCache) : undefined;\r\n var borderX1 = this.getX1Coordinate(xCalc, yCalc);\r\n var borderX2 = this.getX2Coordinate(xCalc, yCalc);\r\n var borderY1 = this.getY1Coordinate(xCalc, yCalc);\r\n var borderY2 = this.getY2Coordinate(xCalc, yCalc);\r\n this.setAnnotationBorders(borderX1, borderX2, borderY1, borderY2);\r\n if (strokePen) {\r\n renderContext.drawLine(borderX1, borderY1, borderX2, borderY2, strokePen, viewRect);\r\n }\r\n // This code is a bit silly, but I'm leaving it just in case anyone is currently relying on it.\r\n // It will get sorted in the big annotation refactor\r\n if (this.showLabel) {\r\n var axes = [];\r\n var verticalAxes = [];\r\n var coord_1;\r\n // Axis labels are shown only for lines perpendicular to axis\r\n if (borderX1 === borderX2) {\r\n axes = this.parentSurface.xAxes.asArray().filter(function (el) { return !el.isVerticalChart; });\r\n verticalAxes = this.parentSurface.yAxes.asArray().filter(function (el) { return el.isVerticalChart; });\r\n coord_1 = borderX1;\r\n }\r\n else if (borderY1 === borderY2) {\r\n axes = this.parentSurface.yAxes.asArray().filter(function (el) { return !el.isVerticalChart; });\r\n verticalAxes = this.parentSurface.xAxes.asArray().filter(function (el) { return el.isVerticalChart; });\r\n coord_1 = borderY1;\r\n }\r\n if (axes.length > 0 || verticalAxes.length > 0)\r\n axes.forEach(function (el) {\r\n if (!el.isStackedAxis || (el.offset < coord_1 && el.offset + el.getAxisSize() > coord_1)) {\r\n (0, drawLabel_1.drawModifiersAxisLabel)(el, renderContext, coord_1, _this.axisLabelFill, _this.axisLabelStroke);\r\n }\r\n });\r\n __spreadArray(__spreadArray([], axes, true), verticalAxes, true);\r\n }\r\n this.updateAdornerInner();\r\n };\r\n LineAnnotation.prototype.onDragStarted = function (args) {\r\n _super.prototype.onDragStarted.call(this, args);\r\n var x1 = this.x1;\r\n var x2 = this.type === IAnnotation_1.EAnnotationType.RenderContextHorizontalLineAnnotation ||\r\n this.type === IAnnotation_1.EAnnotationType.RenderContextVerticalLineAnnotation\r\n ? this.x1\r\n : this.x2;\r\n var y1 = this.y1;\r\n var y2 = this.type === IAnnotation_1.EAnnotationType.RenderContextHorizontalLineAnnotation ||\r\n this.type === IAnnotation_1.EAnnotationType.RenderContextVerticalLineAnnotation\r\n ? this.y1\r\n : this.y2;\r\n var xyCoord1 = this.getXYCoordinatesFromValues(new Point_1.Point(x1, y1));\r\n var xyCoord2 = this.getXYCoordinatesFromValues(new Point_1.Point(x2, y2));\r\n var xyCoordBody = new Point_1.Point(args.mousePoint.x, args.mousePoint.y);\r\n if (xyCoord1 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y1)) {\r\n var dist = (0, pointUtil_1.calcDistance)(xyCoord1.x, xyCoord1.y, args.mousePoint.x, args.mousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y1;\r\n return true;\r\n }\r\n }\r\n if (xyCoord2 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y2)) {\r\n var dist = (0, pointUtil_1.calcDistance)(xyCoord2.x, xyCoord2.y, args.mousePoint.x, args.mousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x2y2;\r\n return true;\r\n }\r\n }\r\n if (xyCoordBody && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.Body)) {\r\n if (this.clickToSelect(args)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.Body;\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n LineAnnotation.prototype.calcDragDistance = function (xyValues) {\r\n if (!this.prevValue) {\r\n this.prevValue = xyValues;\r\n return;\r\n }\r\n var isVerticalChart = this.parentSurface.getYAxisById(this.yAxisId).isVerticalChart;\r\n if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.Body) {\r\n if (this.type === IAnnotation_1.EAnnotationType.RenderContextHorizontalLineAnnotation) {\r\n if (isVerticalChart) {\r\n this.x1 = this.x1 - (this.prevValue.x - xyValues.x);\r\n }\r\n else {\r\n this.y1 = this.y1 - (this.prevValue.y - xyValues.y);\r\n }\r\n }\r\n else if (this.type === IAnnotation_1.EAnnotationType.RenderContextVerticalLineAnnotation) {\r\n if (isVerticalChart) {\r\n this.y1 = this.y1 - (this.prevValue.y - xyValues.y);\r\n }\r\n else {\r\n this.x1 = this.x1 - (this.prevValue.x - xyValues.x);\r\n }\r\n }\r\n else if (this.type === IAnnotation_1.EAnnotationType.RenderContextLineAnnotation) {\r\n this.x1 = this.x1 - (this.prevValue.x - xyValues.x);\r\n this.x2 = this.x2 - (this.prevValue.x - xyValues.x);\r\n this.y1 = this.y1 - (this.prevValue.y - xyValues.y);\r\n this.y2 = this.y2 - (this.prevValue.y - xyValues.y);\r\n }\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x1y1) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x2y2) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n this.prevValue = xyValues;\r\n };\r\n /**\r\n * @instance\r\n */\r\n LineAnnotation.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n };\r\n LineAnnotation.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n axisFontFamily: this.axisFontFamily,\r\n axisFontSize: this.axisFontSize,\r\n axisLabelFill: this.axisLabelFill,\r\n axisLabelStroke: this.axisLabelStroke,\r\n labelPlacement: this.labelPlacement,\r\n labelValue: this.labelValue,\r\n showLabel: this.showLabel,\r\n stroke: this.stroke,\r\n strokeDashArray: this.strokeDashArray,\r\n strokeThickness: this.strokeThickness\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n LineAnnotation.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n var _a = this.getAnnotationBorders(), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var distanceFromLine = (0, pointUtil_1.calcDistanceFromLineSegment)(x, y, x1, y1, x2, y2);\r\n return distanceFromLine <= constants_1.DISTANCE_TO_LINE * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n };\r\n LineAnnotation.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n var strokePenRelatedProperties = [\r\n constants_1.PROPERTY.STROKE,\r\n constants_1.PROPERTY.STROKE_THICKNESS,\r\n constants_1.PROPERTY.STROKE_DASH_ARRAY,\r\n constants_1.PROPERTY.OPACITY\r\n ];\r\n if (strokePenRelatedProperties.includes(propertyName) && this.strokePenCache) {\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, this.stroke, this.strokeThickness, this.opacity, this.strokeDashArray);\r\n }\r\n };\r\n LineAnnotation.prototype.updateAdornerInner = function () {\r\n this.deleteAdorner();\r\n if (this.isSelected) {\r\n var _a = this.getAdornerAnnotationBorders(), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var svgString = this.svgStringAdornerTemplate(x1, y1, x2, y2);\r\n this.svgAdorner = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgAdornerRoot);\r\n }\r\n };\r\n LineAnnotation.prototype.svgStringAdornerTemplate = function (x1, y1, x2, y2) {\r\n var colorLine = this.selectionBoxStroke;\r\n return \"\\n \\n \").concat(this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y1) ? this.getAnnotationGripSvg(x1, y1) : \"\", \"\\n \").concat(this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y2) ? this.getAnnotationGripSvg(x2, y2) : \"\", \"\\n \");\r\n };\r\n return LineAnnotation;\r\n}(RenderContextAnnotationBase_1.RenderContextAnnotationBase));\r\nexports.LineAnnotation = LineAnnotation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NativeTextAnnotation = exports.EWrapTo = void 0;\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar AnchorPoint_1 = require(\"../../../types/AnchorPoint\");\r\nvar TextPosition_1 = require(\"../../../types/TextPosition\");\r\nvar XyDirection_1 = require(\"../../../types/XyDirection\");\r\nvar colorUtil_1 = require(\"../../../utils/colorUtil\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar text_1 = require(\"../../../utils/text\");\r\nvar translate_1 = require(\"../../../utils/translate\");\r\nvar NativeObject_1 = require(\"../Helpers/NativeObject\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar RenderContextAnnotationBase_1 = require(\"./RenderContextAnnotationBase\");\r\nvar EWrapTo;\r\n(function (EWrapTo) {\r\n EWrapTo[\"ViewRect\"] = \"ViewRect\";\r\n EWrapTo[\"Annotation\"] = \"Annotation\";\r\n})(EWrapTo = exports.EWrapTo || (exports.EWrapTo = {}));\r\n/**\r\n * @summary The {@link NativeTextAnnotation} provides an {@link AnnotationBase | Annotation} which draws a text at\r\n * specific x1 y1 over the {@link SciChartSurface}\r\n * @description\r\n * To add a {@link NativeTextAnnotation} to a {@link SciChartSurface}, use the following code:\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const textAnnotation = new NativeTextAnnotation( { x1: 1, y1: 3, color: \"#FF000077\", text: \"Hello SciChart\"});\r\n * sciChartSurface.annotations.add(textAnnotation);\r\n * ```\r\n * @remarks Uses the fast WebGL/WebAssembly {@link WebGL2RenderingContext} for rendering\r\n */\r\nvar NativeTextAnnotation = /** @class */ (function (_super) {\r\n __extends(NativeTextAnnotation, _super);\r\n /**\r\n * Create an instance of a NativeTextAnnotation\r\n * @param options Optional parameters of type {@link INativeTextAnnotationOptions} which configure the annotation upon construction\r\n */\r\n function NativeTextAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.RenderContextNativeTextAnnotation;\r\n /** Set true to make the font scale when the annotation is resized. Must set x2 as well. Cannot be used with wrapTo */\r\n _this.scaleOnResize = false;\r\n _this.fontSizeProperty = 14;\r\n _this.fontFamilyProperty = \"Arial\";\r\n _this.textColorProperty = \"#ffffff\";\r\n _this.rotationProperty = 0;\r\n _this.textProperty = \"\";\r\n _this.verticalAnchorPointProperty = AnchorPoint_1.EVerticalAnchorPoint.Top;\r\n _this.horizontalAnchorPointProperty = AnchorPoint_1.EHorizontalAnchorPoint.Left;\r\n _this.multiLineAlignmentProperty = TextPosition_1.EMultiLineAlignment.Center;\r\n _this.lineSpacingProperty = 3;\r\n _this.scaleProperty = 1;\r\n _this.textColorProperty = (_a = options === null || options === void 0 ? void 0 : options.textColor) !== null && _a !== void 0 ? _a : _this.textColorProperty;\r\n _this.fontSizeProperty = (_b = options === null || options === void 0 ? void 0 : options.fontSize) !== null && _b !== void 0 ? _b : _this.fontSizeProperty;\r\n _this.fontFamilyProperty = (_c = options === null || options === void 0 ? void 0 : options.fontFamily) !== null && _c !== void 0 ? _c : _this.fontFamilyProperty;\r\n _this.rotationProperty = (_d = options === null || options === void 0 ? void 0 : options.rotation) !== null && _d !== void 0 ? _d : _this.rotationProperty;\r\n _this.textProperty = (_e = options === null || options === void 0 ? void 0 : options.text) !== null && _e !== void 0 ? _e : _this.textProperty;\r\n _this.verticalAnchorPointProperty = (_f = options === null || options === void 0 ? void 0 : options.verticalAnchorPoint) !== null && _f !== void 0 ? _f : _this.verticalAnchorPointProperty;\r\n _this.horizontalAnchorPointProperty = (_g = options === null || options === void 0 ? void 0 : options.horizontalAnchorPoint) !== null && _g !== void 0 ? _g : _this.horizontalAnchorPointProperty;\r\n _this.multiLineAlignmentProperty = (_h = options === null || options === void 0 ? void 0 : options.multiLineAlignment) !== null && _h !== void 0 ? _h : _this.multiLineAlignmentProperty;\r\n _this.wrapToProperty = (_j = options === null || options === void 0 ? void 0 : options.wrapTo) !== null && _j !== void 0 ? _j : _this.wrapToProperty;\r\n _this.lineSpacingProperty = (_k = options === null || options === void 0 ? void 0 : options.lineSpacing) !== null && _k !== void 0 ? _k : _this.lineSpacingProperty;\r\n _this.scaleProperty = (_l = options === null || options === void 0 ? void 0 : options.scale) !== null && _l !== void 0 ? _l : _this.scaleProperty;\r\n _this.initialWidth = Math.abs(_this.x2 - _this.x1);\r\n _this.scaleOnResize = (_m = options === null || options === void 0 ? void 0 : options.scaleOnResize) !== null && _m !== void 0 ? _m : _this.scaleOnResize;\r\n return _this;\r\n // this.fill = options?.fill ?? this.fillProperty;\r\n }\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"textColor\", {\r\n /**\r\n * Gets the color for the {@link NativeTextAnnotation}\r\n */\r\n get: function () {\r\n return this.textColorProperty;\r\n },\r\n /**\r\n * Sets the color for the {@link NativeTextAnnotation}\r\n */\r\n set: function (value) {\r\n this.textColorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"fontSize\", {\r\n // /**\r\n // * Gets the fill for the {@link NativeTextAnnotation}\r\n // * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```\r\n // */\r\n // public get fill(): string {\r\n // return this.fillProperty;\r\n // }\r\n // /**\r\n // * Sets the fill for the {@link NativeTextAnnotation}\r\n // * @remarks Acceptable values include RGB format e.g. ```#FF0000```, RGBA format e.g. ```#FF000077`` and RGBA format e.g. ```rgba(255,0,0,0.5)```\r\n // */\r\n // public set fill(htmlColorCode: string) {\r\n // this.fillProperty = htmlColorCode;\r\n // this.notifyPropertyChanged(PROPERTY.FILL);\r\n // }\r\n /**\r\n * Gets the fontSize for the {@link NativeTextAnnotation}\r\n */\r\n get: function () {\r\n return this.fontSizeProperty;\r\n },\r\n /**\r\n * Sets the fontSize for the {@link NativeTextAnnotation}\r\n */\r\n set: function (value) {\r\n this.fontSizeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_FONT_SIZE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"fontFamily\", {\r\n /**\r\n * Gets the fontSize for the {@link NativeTextAnnotation}\r\n */\r\n get: function () {\r\n return this.fontFamilyProperty;\r\n },\r\n /**\r\n * Sets the fontSize for the {@link NativeTextAnnotation}\r\n */\r\n set: function (value) {\r\n this.fontFamilyProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_FONT_FAMILY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"rotation\", {\r\n /**\r\n * Gets the rotation for the {@link NativeTextAnnotation}\r\n */\r\n get: function () {\r\n return this.rotationProperty;\r\n },\r\n /**\r\n * Sets the labelPlacement for the {@link NativeTextAnnotation}\r\n */\r\n set: function (value) {\r\n this.rotationProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ROTATION);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"text\", {\r\n /**\r\n * Gets the text for the {@link NativeTextAnnotation}\r\n */\r\n get: function () {\r\n return this.textProperty;\r\n },\r\n /**\r\n * Sets the text for the {@link NativeTextAnnotation}\r\n */\r\n set: function (value) {\r\n this.textProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"verticalAnchorPoint\", {\r\n /**\r\n * Gets or sets vertical anchor point\r\n */\r\n get: function () {\r\n return this.verticalAnchorPointProperty;\r\n },\r\n /**\r\n * Gets or sets vertical anchor point\r\n */\r\n set: function (value) {\r\n if (this.verticalAnchorPointProperty !== value) {\r\n this.verticalAnchorPointProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VERTICAL_ANCHOR_POINT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"horizontalAnchorPoint\", {\r\n /**\r\n * Gets or sets horizontal anchor point\r\n */\r\n get: function () {\r\n return this.horizontalAnchorPointProperty;\r\n },\r\n /**\r\n * Gets or sets horizontal anchor point\r\n */\r\n set: function (value) {\r\n if (this.horizontalAnchorPointProperty !== value) {\r\n this.horizontalAnchorPointProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.HORIZONTAL_ANCHOR_POINT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"multiLineAlignment\", {\r\n /**\r\n * Gets or sets the horizontal alignment mode for multiline text\r\n */\r\n get: function () {\r\n return this.multiLineAlignmentProperty;\r\n },\r\n /**\r\n * Gets or sets the horizontal alignment mode for multiline text\r\n */\r\n set: function (value) {\r\n if (this.multiLineAlignmentProperty !== value) {\r\n this.multiLineAlignmentProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MULTILINE_ALIGNMENT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"wrapTo\", {\r\n /**\r\n * Gets or sets the text wrapping mode. A pure number will be treated as a pixel width. Default is undefined meaning no wrap\r\n */\r\n get: function () {\r\n return this.wrapToProperty;\r\n },\r\n /**\r\n * Gets or sets the text wrapping mode. A pure number will be treated as a pixel width. Default is undefined meaning no wrap\r\n */\r\n set: function (value) {\r\n if (this.wrapToProperty !== value) {\r\n this.wrapToProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.WRAP_TO);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"lineSpacing\", {\r\n /**\r\n * The spacing between lines. Default 3\r\n * If a whole number then treated as pixels. If between 0 and 1 then treated as a fraction of line height\r\n */\r\n get: function () {\r\n return this.lineSpacingProperty;\r\n },\r\n /**\r\n * The spacing between lines. Default 3\r\n * If a whole number then treated as pixels. If between 0 and 1 then treated as a fraction of line height\r\n */\r\n set: function (value) {\r\n this.lineSpacingProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LINE_SPACING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NativeTextAnnotation.prototype, \"scale\", {\r\n /**\r\n * The scale factor for the font. Default 1\r\n * This changes the size of the text without needing to create a new font with a different size\r\n */\r\n get: function () {\r\n return this.scaleProperty;\r\n },\r\n /**\r\n * The scale factor for the font. Default 1\r\n * This changes the size of the text without needing to create a new font with a different size\r\n */\r\n set: function (value) {\r\n if (value !== this.scaleProperty) {\r\n this.scaleProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SCALE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n NativeTextAnnotation.prototype.delete = function () {\r\n // this.fillBrushCache = deleteSafe(this.fillBrushCache);\r\n };\r\n /** @inheritDoc */\r\n NativeTextAnnotation.prototype.onAttach = function (scs) {\r\n _super.prototype.onAttach.call(this, scs);\r\n // if (!this.fillBrushCache) {\r\n // this.fillBrushCache = new BrushCache(scs.webAssemblyContext2D);\r\n // }\r\n // createBrushInCache(this.fillBrushCache, this.fill, this.opacity);\r\n };\r\n /** Calculate the center point for a rotation */\r\n NativeTextAnnotation.prototype.getRotationCenter = function (x, y, bounds) {\r\n return new Point_1.Point(x, y);\r\n };\r\n /** @inheritDoc */\r\n NativeTextAnnotation.prototype.drawWithContext = function (renderContext, xCalc, yCalc, viewRect) {\r\n Guard_1.Guard.notNull(renderContext, \"renderContext\");\r\n Guard_1.Guard.notNull(xCalc, \"xCalc\");\r\n Guard_1.Guard.notNull(yCalc, \"yCalc\");\r\n var x1 = this.getX1Coordinate(xCalc, yCalc);\r\n var y1 = this.getY1Coordinate(xCalc, yCalc);\r\n var style = {\r\n fontFamily: this.fontFamily,\r\n fontSize: Math.round(this.fontSize * DpiHelper_1.DpiHelper.PIXEL_RATIO)\r\n };\r\n var colorNum = (0, parseColor_1.parseColorToUIntArgb)(this.textColor);\r\n colorNum = (0, colorUtil_1.uintArgbColorOverrideOpacity)(colorNum, this.opacity);\r\n var font;\r\n var rotationVector;\r\n var rotationRads = -(this.rotation * Math.PI) / 180;\r\n var isAdvanced = this.rotation !== 0 || this.scale !== 1;\r\n font = renderContext.getFont(style, isAdvanced, false);\r\n var textBounds = (0, NativeObject_1.getTextBounds)(this.parentSurface.webAssemblyContext2D);\r\n var text = this.text;\r\n if (this.wrapTo) {\r\n var wrapWidth = Infinity;\r\n if (typeof this.wrapTo === \"number\") {\r\n wrapWidth = this.wrapTo;\r\n }\r\n else if (this.wrapTo === EWrapTo.ViewRect) {\r\n if (this.horizontalAnchorPoint === AnchorPoint_1.EHorizontalAnchorPoint.Left) {\r\n wrapWidth = this.parentSurface.seriesViewRect.width - x1;\r\n }\r\n else if (this.horizontalAnchorPoint === AnchorPoint_1.EHorizontalAnchorPoint.Center) {\r\n wrapWidth = 2 * Math.min(x1, this.parentSurface.seriesViewRect.width - x1);\r\n }\r\n else if (this.horizontalAnchorPoint === AnchorPoint_1.EHorizontalAnchorPoint.Right) {\r\n wrapWidth = x1;\r\n }\r\n }\r\n else if (this.wrapTo === EWrapTo.Annotation) {\r\n var x2 = this.getX2Coordinate(xCalc, yCalc);\r\n if (x2 > x1) {\r\n wrapWidth = x2 - x1;\r\n }\r\n }\r\n text = (0, text_1.wrapNativeText)(this.text, wrapWidth, font, textBounds);\r\n }\r\n var spacing = this.lineSpacing;\r\n font.CalculateStringBounds(text !== null && text !== void 0 ? text : \"\", textBounds, spacing);\r\n if (spacing < 1) {\r\n spacing =\r\n this.lineSpacing * (textBounds.GetLineBounds(0).m_fHeight - textBounds.GetLineBounds(0).m_fOffsetY);\r\n font.CalculateStringBounds(text !== null && text !== void 0 ? text : \"\", textBounds, spacing);\r\n }\r\n var rotationCenter = this.getRotationCenter(x1 + viewRect.x, y1 + viewRect.y, textBounds);\r\n rotationVector = (0, NativeObject_1.getVector4)(this.parentSurface.webAssemblyContext2D, rotationCenter.x, rotationCenter.y, rotationRads, 0);\r\n if (this.horizontalAnchorPointProperty === AnchorPoint_1.EHorizontalAnchorPoint.Center) {\r\n x1 -= textBounds.m_fWidth / 2;\r\n }\r\n else if (this.horizontalAnchorPointProperty === AnchorPoint_1.EHorizontalAnchorPoint.Right) {\r\n x1 -= textBounds.m_fWidth;\r\n }\r\n if (this.verticalAnchorPointProperty === AnchorPoint_1.EVerticalAnchorPoint.Center) {\r\n y1 -= textBounds.m_fHeight / 2 - textBounds.GetLineBounds(0).m_fHeight;\r\n }\r\n else if (this.verticalAnchorPointProperty === AnchorPoint_1.EVerticalAnchorPoint.Top) {\r\n y1 += textBounds.GetLineBounds(0).m_fHeight;\r\n }\r\n else if (textBounds.GetLinesCount() > 1) {\r\n y1 += textBounds.GetLineBounds(0).m_fOffsetY;\r\n y1 -=\r\n (textBounds.GetLineBounds(0).m_fHeight - textBounds.GetLineBounds(0).m_fOffsetY) *\r\n (textBounds.GetLinesCount() - 1);\r\n }\r\n // TODO use for text background when rect rotation is implemented\r\n // const padding = Thickness.fromNumber(0);\r\n // const x = x1 + viewRect.x + padding.left;\r\n // const y = y1 + viewRect.y + padding.top;\r\n // let borderX1 = x1;\r\n // let borderY1 = y1 - textBounds.GetLineBounds(0).m_fHeight - padding.top - padding.bottom;\r\n // let borderX2 = x1 + textBounds.m_fWidth + padding.left + padding.right;\r\n // let borderY2 = borderY1 + textBounds.m_fHeight + padding.top;\r\n var x = x1 + viewRect.x;\r\n var y = y1 + viewRect.y;\r\n var borderX1 = x1;\r\n var borderY1 = y1 - textBounds.GetLineBounds(0).m_fHeight;\r\n var borderX2 = x1 + textBounds.m_fWidth;\r\n var borderY2 = borderY1 + textBounds.m_fHeight;\r\n if (this.rotation !== 0) {\r\n var sin_1 = Math.sin(rotationRads);\r\n var cos_1 = Math.cos(rotationRads);\r\n var rc_1 = this.getRotationCenter(x1, y1, textBounds);\r\n var transform = function (a, b) {\r\n var ta = (a - rc_1.x) * cos_1 + (b - rc_1.y) * sin_1;\r\n var tb = (b - rc_1.y) * cos_1 - (a - rc_1.x) * sin_1;\r\n return { x: ta, y: tb };\r\n };\r\n var x1y1 = transform(borderX1, borderY1);\r\n var x2y1 = transform(borderX2, borderY1);\r\n var x1y2 = transform(borderX1, borderY2);\r\n var x2y2 = transform(borderX2, borderY2);\r\n borderX1 = Math.min(x1y1.x, x2y1.x, x1y2.x, x2y2.x) + rc_1.x;\r\n borderX2 = Math.max(x1y1.x, x2y1.x, x1y2.x, x2y2.x) + rc_1.x;\r\n borderY1 = Math.min(x1y1.y, x2y1.y, x1y2.y, x2y2.y) + rc_1.y;\r\n borderY2 = Math.max(x1y1.y, x2y1.y, x1y2.y, x2y2.y) + rc_1.y;\r\n }\r\n var alignMode = (0, TextPosition_1.convertMultiLineAlignment)(this.multiLineAlignment, this.parentSurface.webAssemblyContext2D);\r\n var oldScale = font.GetScale();\r\n var scaleChanged = false;\r\n if (oldScale !== this.scale) {\r\n font.SetScale(this.scale);\r\n scaleChanged = true;\r\n }\r\n this.setAnnotationBorders(borderX1, borderX1 + (borderX2 - borderX1) * this.scale, borderY1, borderY1 + (borderY2 - borderY1) * this.scale);\r\n // const strokePen: WebGlPen = undefined;\r\n // const fillBrush = this.fill ? getWebGlBrushFromCache(this.fillBrushCache) : undefined;\r\n // fillBrush?.setOpacity(this.opacity);\r\n // const rect = Rect.createWithPoints(new Point(borderX1, borderY1), new Point(borderX2, borderY2));\r\n // // Temporary HAX! drawRect is rubbish with large strokeThickness, whereas the columnDrawingProvider does a nice\r\n // // outlined rectangle, but the code is ugly. In 2.3 we will improve the native drawRect to do the outline properly.\r\n // if (!IS_TEST_ENV) {\r\n // renderContext.drawRect(rect, viewRect, strokePen, fillBrush);\r\n // }\r\n font.DrawStringAdvanced(text, colorNum, Math.round(x), Math.round(y), rotationVector, alignMode, spacing);\r\n if (scaleChanged) {\r\n font.SetScale(oldScale);\r\n }\r\n if (this.annotationLayer !== IAnnotation_1.EAnnotationLayer.AboveChart) {\r\n // If the annotation needs to be drawn below anything, draw it now, as by default fonts are all ended at the end of the render cycle\r\n font.End();\r\n }\r\n this.updateAdornerInner();\r\n };\r\n NativeTextAnnotation.prototype.onDragStarted = function (args) {\r\n _super.prototype.onDragStarted.call(this, args);\r\n var _a = this.getAnnotationBorders(false, true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var _b = annotationHelpers_1.annotationHelpers.calcNewApex(x1, y1, x2, y2, this.isVerticalChart), x1y1 = _b.x1y1, x2y1 = _b.x2y1, x1y2 = _b.x1y2, x2y2 = _b.x2y2;\r\n var xyMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(args.mousePoint.x, args.mousePoint.y), this.parentSurface.seriesViewRect, true);\r\n if (x1y1 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y1)) {\r\n var dist = (0, pointUtil_1.calcDistance)(x1y1.x, x1y1.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y1;\r\n return true;\r\n }\r\n }\r\n if (x2y1 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y1)) {\r\n var dist = (0, pointUtil_1.calcDistance)(x2y1.x, x2y1.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x2y1;\r\n return true;\r\n }\r\n }\r\n if (x1y2 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y2)) {\r\n var dist = (0, pointUtil_1.calcDistance)(x1y2.x, x1y2.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y2;\r\n return true;\r\n }\r\n }\r\n if (x2y2 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y2)) {\r\n var dist = (0, pointUtil_1.calcDistance)(x2y2.x, x2y2.y, xyMousePoint.x, xyMousePoint.y);\r\n if (dist < this.annotationsGripsRadius * DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x2y2;\r\n return true;\r\n }\r\n }\r\n if (xyMousePoint && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.Body)) {\r\n if (this.clickToSelect(args)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.Body;\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n NativeTextAnnotation.prototype.calcDragDistance = function (xyValues) {\r\n if (!this.prevValue) {\r\n this.prevValue = xyValues;\r\n return;\r\n }\r\n if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.Body) {\r\n this.x1 = this.x1 - (this.prevValue.x - xyValues.x);\r\n this.x2 = this.x2 - (this.prevValue.x - xyValues.x);\r\n this.y1 = this.y1 - (this.prevValue.y - xyValues.y);\r\n this.y2 = this.y2 - (this.prevValue.y - xyValues.y);\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x1y1) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x2y2) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x2y1) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x2 -= this.prevValue.x - xyValues.x;\r\n this.y1 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n else if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x1y2) {\r\n if (this.resizeDirections === XyDirection_1.EXyDirection.XDirection) {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n }\r\n else if (this.resizeDirections === XyDirection_1.EXyDirection.YDirection) {\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n else {\r\n this.x1 -= this.prevValue.x - xyValues.x;\r\n this.y2 -= this.prevValue.y - xyValues.y;\r\n }\r\n }\r\n var newScale = Math.abs(this.x2 - this.x1) / this.initialWidth;\r\n if (this.scaleOnResize && newScale) {\r\n this.scale = newScale;\r\n }\r\n this.prevValue = xyValues;\r\n };\r\n /**\r\n * @instance\r\n */\r\n NativeTextAnnotation.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n };\r\n NativeTextAnnotation.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n fontFamily: this.fontFamily,\r\n fontSize: this.fontSize,\r\n textColor: this.textColor,\r\n // fill: this.fill,\r\n rotation: this.rotation,\r\n text: this.text\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n NativeTextAnnotation.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n var _a = this.getAnnotationBorders(true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n return (0, pointUtil_1.testIsInBounds)(x, y, x1, y2, x2, y1);\r\n };\r\n // protected notifyPropertyChanged(propertyName: string): void {\r\n // super.notifyPropertyChanged(propertyName);\r\n // const fillBrushRelatedProperties = [PROPERTY.FILL, PROPERTY.OPACITY];\r\n // if (this.fillBrushCache && fillBrushRelatedProperties.includes(propertyName as PROPERTY)) {\r\n // createBrushInCache(this.fillBrushCache, this.fill, this.opacity);\r\n // }\r\n // }\r\n NativeTextAnnotation.prototype.updateAdornerInner = function () {\r\n this.deleteAdorner();\r\n if (this.isSelected) {\r\n var _a = this.getAdornerAnnotationBorders(), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var svgString = this.svgStringAdornerTemplate(x1, y1, x2, y2);\r\n this.svgAdorner = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgAdornerRoot);\r\n }\r\n };\r\n NativeTextAnnotation.prototype.svgStringAdornerTemplate = function (x1, y1, x2, y2) {\r\n var colorLine = this.selectionBoxStroke;\r\n var width = x2 - x1;\r\n var height = y2 - y1;\r\n var svg = \"\\n \\n \");\r\n var grips = this.getAdornerAnnotationBorders(false, true);\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y1)) {\r\n svg += this.getAnnotationGripSvg(grips.x1, grips.y1);\r\n }\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y2)) {\r\n svg += this.getAnnotationGripSvg(grips.x2, grips.y2);\r\n }\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x2y1)) {\r\n svg += this.getAnnotationGripSvg(grips.x2, grips.y1);\r\n }\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y2)) {\r\n svg += this.getAnnotationGripSvg(grips.x1, grips.y2);\r\n }\r\n svg += \"\";\r\n return svg;\r\n };\r\n return NativeTextAnnotation;\r\n}(RenderContextAnnotationBase_1.RenderContextAnnotationBase));\r\nexports.NativeTextAnnotation = NativeTextAnnotation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OverviewCustomResizableAnnotation = void 0;\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar XyDirection_1 = require(\"../../../types/XyDirection\");\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar translate_1 = require(\"../../../utils/translate\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar CustomAnnotation_1 = require(\"./CustomAnnotation\");\r\n/**\r\n * A OverviewCustomResizableAnnotation presents SVG information over the chart at specific {@link X1}, {@link Y1}, {@link X2}, {@link Y2} coordinates.\r\n * @remarks The annotation can be moved or resized up to the limits set by minWidth/minHeight properties and axis visible range\r\n */\r\nvar OverviewCustomResizableAnnotation = /** @class */ (function (_super) {\r\n __extends(OverviewCustomResizableAnnotation, _super);\r\n function OverviewCustomResizableAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.minWidthProperty = 10;\r\n _this.minHeightProperty = 10;\r\n _this.adornerSvgStringTemplateProperty =\r\n (_a = options === null || options === void 0 ? void 0 : options.adornerSvgStringTemplate) !== null && _a !== void 0 ? _a : _this.adornerSvgStringTemplateProperty;\r\n _this.minWidthProperty = (_b = options === null || options === void 0 ? void 0 : options.minWidth) !== null && _b !== void 0 ? _b : _this.minWidthProperty;\r\n _this.minHeightProperty = (_c = options === null || options === void 0 ? void 0 : options.minHeight) !== null && _c !== void 0 ? _c : _this.minHeightProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(OverviewCustomResizableAnnotation.prototype, \"minWidth\", {\r\n /**\r\n * Gets or sets the minimum width of the annotation\r\n */\r\n get: function () {\r\n return this.minWidthProperty;\r\n },\r\n /**\r\n * Gets or sets the minimum width of the annotation\r\n */\r\n set: function (value) {\r\n this.minWidthProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MINIMUM_WIDTH);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OverviewCustomResizableAnnotation.prototype, \"minHeight\", {\r\n /**\r\n * Gets or sets the minimum width of the annotation\r\n */\r\n get: function () {\r\n return this.minHeightProperty;\r\n },\r\n /**\r\n * Gets or sets the minimum width of the annotation\r\n */\r\n set: function (value) {\r\n this.minHeightProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MINIMUM_HEIGHT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OverviewCustomResizableAnnotation.prototype, \"adornerSvgStringTemplate\", {\r\n /**\r\n * Gets or sets the SVG template of the annotation adorner\r\n */\r\n get: function () {\r\n return this.adornerSvgStringTemplateProperty;\r\n },\r\n /**\r\n * Gets or sets the SVG template of the annotation adorner\r\n */\r\n set: function (value) {\r\n this.adornerSvgStringTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ADORNER_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Updates the annotation position and size while maintaining limits set by minWidth and minHeight\r\n * @param coordinates an object with the coordinates - {x1, x2, y1, y2}\r\n */\r\n OverviewCustomResizableAnnotation.prototype.setCoordinates = function (coordinates) {\r\n // Overview Annotation should be resized only if attached\r\n // since the new coordinates are validated accordingly to the size limits\r\n if (!this.parentSurface) {\r\n return;\r\n }\r\n var _a = coordinates.x1, expectedX1 = _a === void 0 ? this.x1 : _a, _b = coordinates.x2, expectedX2 = _b === void 0 ? this.x2 : _b, _c = coordinates.y1, expectedY1 = _c === void 0 ? this.y1 : _c, _d = coordinates.y2, expectedY2 = _d === void 0 ? this.y2 : _d;\r\n var expectedAbsoluteX1Y1Point = this.getAbsoluteCoordinates(new Point_1.Point(expectedX1, expectedY1));\r\n var expectedAbsoluteX2Y2Point = this.getAbsoluteCoordinates(new Point_1.Point(expectedX2, expectedY2));\r\n var xAxis = this.parentSurface.getXAxisById(this.xAxisId);\r\n var xCalc = xAxis.getCurrentCoordinateCalculator();\r\n var yAxis = this.parentSurface.getYAxisById(this.yAxisId);\r\n var yCalc = yAxis.getCurrentCoordinateCalculator();\r\n var horizontalCalc = xAxis.isHorizontalAxis ? xCalc : yCalc;\r\n var verticalCalc = yAxis.isHorizontalAxis ? xCalc : yCalc;\r\n var rightEdgeCoordValue = horizontalCalc.hasFlippedCoordinates ? expectedX1 : expectedX2;\r\n var leftEdgeCoordValue = horizontalCalc.hasFlippedCoordinates ? expectedX2 : expectedX1;\r\n var topEdgeCoordValue = verticalCalc.hasFlippedCoordinates ? expectedX1 : expectedX2;\r\n var bottomEdgeCoordValue = verticalCalc.hasFlippedCoordinates ? expectedX2 : expectedX1;\r\n var topRightPoint = this.isVerticalChart\r\n ? new Point_1.Point(topEdgeCoordValue, rightEdgeCoordValue)\r\n : new Point_1.Point(rightEdgeCoordValue, topEdgeCoordValue);\r\n var bottomLeftPoint = this.isVerticalChart\r\n ? new Point_1.Point(bottomEdgeCoordValue, leftEdgeCoordValue)\r\n : new Point_1.Point(leftEdgeCoordValue, bottomEdgeCoordValue);\r\n // adjust coordinates if they don't fit size limits\r\n if (xAxis.isHorizontalAxis) {\r\n if (expectedX1 - this.x1 >= this.x2 - expectedX2) {\r\n // the annotation is being moved to the right\r\n this.x2 = expectedX2 !== null && expectedX2 !== void 0 ? expectedX2 : this.x2;\r\n if (xCalc.hasFlippedCoordinates) {\r\n this.adjustLeftSideToLimits(expectedAbsoluteX2Y2Point.x, topRightPoint, xCalc);\r\n }\r\n else {\r\n this.adjustRightSideToLimits(expectedAbsoluteX2Y2Point.x, bottomLeftPoint, xCalc);\r\n }\r\n }\r\n else {\r\n // the annotation is being moved to the left\r\n this.x1 = expectedX1 !== null && expectedX1 !== void 0 ? expectedX1 : this.x1;\r\n if (xCalc.hasFlippedCoordinates) {\r\n this.adjustRightSideToLimits(expectedAbsoluteX1Y1Point.x, bottomLeftPoint, xCalc);\r\n }\r\n else {\r\n this.adjustLeftSideToLimits(expectedAbsoluteX1Y1Point.x, topRightPoint, xCalc);\r\n }\r\n }\r\n }\r\n else {\r\n if (expectedX1 - this.x1 >= this.x2 - expectedX2) {\r\n // the annotation is being moved to the top\r\n this.x2 = expectedX2 !== null && expectedX2 !== void 0 ? expectedX2 : this.x2;\r\n if (xCalc.hasFlippedCoordinates) {\r\n this.adjustTopSideToLimits(expectedAbsoluteX2Y2Point.y, topRightPoint, xCalc);\r\n }\r\n else {\r\n this.adjustBottomSideToLimits(expectedAbsoluteX2Y2Point.y, bottomLeftPoint, xCalc);\r\n }\r\n }\r\n else {\r\n // the annotation is being moved to the bottom\r\n this.x1 = expectedX1 !== null && expectedX1 !== void 0 ? expectedX1 : this.x1;\r\n if (xCalc.hasFlippedCoordinates) {\r\n this.adjustBottomSideToLimits(expectedAbsoluteX1Y1Point.y, bottomLeftPoint, xCalc);\r\n }\r\n else {\r\n this.adjustTopSideToLimits(expectedAbsoluteX1Y1Point.y, topRightPoint, xCalc);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Calculates current dragging point. Defines logic of grip points placement\r\n * @param args {@link ModifierMouseArgs}\r\n */\r\n OverviewCustomResizableAnnotation.prototype.onDragStarted = function (args) {\r\n var _a;\r\n // handles default browser dragging behavior when canvas was selected with Ctrl + A\r\n args.nativeEvent.preventDefault();\r\n (_a = this.dragStarted) === null || _a === void 0 ? void 0 : _a.raiseEvent();\r\n var _b = this.getAnnotationBorders(true), x1 = _b.x1, x2 = _b.x2, y1 = _b.y1, y2 = _b.y2;\r\n var xyMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(args.mousePoint.x, args.mousePoint.y), this.parentSurface.seriesViewRect, true);\r\n if (!xyMousePoint) {\r\n return false;\r\n }\r\n var xMousePoint = (0, translate_1.translateToNotScaled)(xyMousePoint.x);\r\n var yMousePoint = (0, translate_1.translateToNotScaled)(xyMousePoint.y);\r\n var isResizableHorizontally = this.isVerticalChart\r\n ? this.resizeDirections !== XyDirection_1.EXyDirection.XDirection\r\n : this.resizeDirections !== XyDirection_1.EXyDirection.YDirection;\r\n var isResizableVertically = this.isVerticalChart\r\n ? this.resizeDirections !== XyDirection_1.EXyDirection.YDirection\r\n : this.resizeDirections !== XyDirection_1.EXyDirection.XDirection;\r\n if (isResizableHorizontally) {\r\n // Left\r\n if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x1 - constants_1.ADORNER_GRIP_RADIUS, y2, x1 + constants_1.ADORNER_GRIP_RADIUS, y1)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y1;\r\n return true;\r\n }\r\n else if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x2 - constants_1.ADORNER_GRIP_RADIUS, y2, x2 + constants_1.ADORNER_GRIP_RADIUS, y1)) {\r\n // Right\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x2y2;\r\n return true;\r\n }\r\n }\r\n // Top\r\n if (isResizableVertically) {\r\n if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x1, y1 + constants_1.ADORNER_GRIP_RADIUS, x2, y1 - constants_1.ADORNER_GRIP_RADIUS)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x2y1;\r\n return true;\r\n }\r\n else if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x1, y2 + constants_1.ADORNER_GRIP_RADIUS, x2, y2 - constants_1.ADORNER_GRIP_RADIUS)) {\r\n // Bottom\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y2;\r\n return true;\r\n }\r\n }\r\n if (this.clickToSelect(args)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.Body;\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Updates the annotation position, with the {@link CoordinateCalculatorBase | Coordinate Calculators} passed in\r\n * @param xCalc The XAxis {@link CoordinateCalculatorBase | CoordinateCalculator} applied to this annotation\r\n * @param yCalc The YAxis {@link CoordinateCalculatorBase | CoordinateCalculator} applied to this annotation\r\n * @param xCoordSvgTrans X-coordinate translation which is needed to use SVG canvas having the whole chart size\r\n * @param yCoordSvgTrans Y-coordinate translation which is needed to use SVG canvas having the whole chart size\r\n */\r\n OverviewCustomResizableAnnotation.prototype.update = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n // create svg if there is none\r\n this.create(xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans);\r\n this.svg.style.display = this.isHidden ? \"none\" : \"block\";\r\n this.svg.style.opacity = this.opacity.toString();\r\n var x1Coord = this.getX1Coordinate(xCalc, yCalc);\r\n var y1Coord = this.getY1Coordinate(xCalc, yCalc);\r\n var x2Coord = this.getX2Coordinate(xCalc, yCalc);\r\n var y2Coord = this.getY2Coordinate(xCalc, yCalc);\r\n this.setAnnotationBorders(x1Coord, x2Coord, y1Coord, y2Coord);\r\n if (isNaN(x1Coord) ||\r\n isNaN(y1Coord) ||\r\n !isFinite(x1Coord) ||\r\n !isFinite(y1Coord) ||\r\n isNaN(x2Coord) ||\r\n isNaN(y2Coord) ||\r\n !isFinite(x2Coord) ||\r\n !isFinite(y2Coord)) {\r\n this.svg.style.display = \"none\";\r\n }\r\n else {\r\n // calculate and adjust size accordingly to coordinates\r\n var width = Math.abs(x2Coord - x1Coord);\r\n var height = Math.abs(y2Coord - y1Coord);\r\n var svgXCoord = (x1Coord < x2Coord ? x1Coord : x2Coord) + xCoordSvgTrans;\r\n var svgYCoord = (y1Coord < y2Coord ? y1Coord : y2Coord) + yCoordSvgTrans;\r\n this.setSvgAttribute(\"x\", svgXCoord);\r\n this.setSvgAttribute(\"y\", svgYCoord);\r\n this.setSvgAttribute(\"width\", width);\r\n this.setSvgAttribute(\"height\", height);\r\n this.svgDOMRect = this.svg.getBoundingClientRect();\r\n }\r\n this.updateAdornerInner();\r\n };\r\n /**\r\n * Handles the dragging event. Updates the coordinates after dragging or resizing\r\n * @param xyValues {@link Point}\r\n */\r\n OverviewCustomResizableAnnotation.prototype.calcDragDistance = function (xyValues) {\r\n var xAxis = this.parentSurface.getXAxisById(this.xAxisId);\r\n var xCalc = xAxis.getCurrentCoordinateCalculator();\r\n var yAxis = this.parentSurface.getYAxisById(this.yAxisId);\r\n var yCalc = yAxis.getCurrentCoordinateCalculator();\r\n var horizontalCalc = xAxis.isHorizontalAxis ? xCalc : yCalc;\r\n var verticalCalc = yAxis.isHorizontalAxis ? xCalc : yCalc;\r\n var x1Coord = this.getX1Coordinate(xCalc, yCalc);\r\n var y1Coord = this.getY1Coordinate(xCalc, yCalc);\r\n var x2Coord = this.getX2Coordinate(xCalc, yCalc);\r\n var y2Coord = this.getY2Coordinate(xCalc, yCalc);\r\n var isResizableHorizontally = this.isVerticalChart\r\n ? this.resizeDirections !== XyDirection_1.EXyDirection.XDirection\r\n : this.resizeDirections !== XyDirection_1.EXyDirection.YDirection;\r\n var isResizableVertically = this.isVerticalChart\r\n ? this.resizeDirections !== XyDirection_1.EXyDirection.YDirection\r\n : this.resizeDirections !== XyDirection_1.EXyDirection.XDirection;\r\n switch (this.adornerDraggingPoint) {\r\n case AnnotationBase_1.EDraggingGripPoint.Body: {\r\n if (!this.prevValue) {\r\n this.prevValue = xyValues;\r\n return;\r\n }\r\n // expected coordinates\r\n var x1 = this.x1 - (this.prevValue.x - xyValues.x);\r\n var x2 = this.x2 - (this.prevValue.x - xyValues.x);\r\n var y1 = this.y1 - (this.prevValue.y - xyValues.y);\r\n var y2 = this.y2 - (this.prevValue.y - xyValues.y);\r\n // make sure annotation doesn't overflow the visible range\r\n if (this.resizeDirections !== XyDirection_1.EXyDirection.YDirection) {\r\n if (x1 < xAxis.visibleRange.min) {\r\n var diff = this.x1 - xAxis.visibleRange.min;\r\n this.x1 = xAxis.visibleRange.min;\r\n this.x2 = this.x2 - diff;\r\n }\r\n else if (x2 > xAxis.visibleRange.max) {\r\n var diff = xAxis.visibleRange.max - this.x2;\r\n this.x1 = this.x1 + diff;\r\n this.x2 = xAxis.visibleRange.max;\r\n }\r\n else {\r\n this.x1 = x1;\r\n this.x2 = x2;\r\n }\r\n }\r\n if (this.resizeDirections !== XyDirection_1.EXyDirection.XDirection) {\r\n if (y2 > yAxis.visibleRange.max) {\r\n var diff = this.y2 - yAxis.visibleRange.max;\r\n this.y2 = yAxis.visibleRange.max;\r\n this.y1 = this.y1 + diff;\r\n }\r\n else if (y1 < yAxis.visibleRange.min) {\r\n var diff = this.y1 - yAxis.visibleRange.min;\r\n this.y2 = this.y2 - diff;\r\n this.y1 = yAxis.visibleRange.min;\r\n }\r\n else {\r\n this.y1 = y1;\r\n this.y2 = y2;\r\n }\r\n }\r\n this.prevValue = xyValues;\r\n break;\r\n }\r\n // left grab point\r\n case AnnotationBase_1.EDraggingGripPoint.x1y1: {\r\n if (isResizableHorizontally) {\r\n if (horizontalCalc.hasFlippedCoordinates) {\r\n this.adjustLeftSideToLimits(x2Coord, xyValues, horizontalCalc);\r\n }\r\n else {\r\n this.adjustLeftSideToLimits(x1Coord, xyValues, horizontalCalc);\r\n }\r\n }\r\n break;\r\n }\r\n // Right grab point\r\n case AnnotationBase_1.EDraggingGripPoint.x2y2: {\r\n if (isResizableHorizontally) {\r\n if (horizontalCalc.hasFlippedCoordinates) {\r\n this.adjustRightSideToLimits(x1Coord, xyValues, horizontalCalc);\r\n }\r\n else {\r\n this.adjustRightSideToLimits(x2Coord, xyValues, horizontalCalc);\r\n }\r\n }\r\n break;\r\n }\r\n // Top grab point\r\n case AnnotationBase_1.EDraggingGripPoint.x2y1: {\r\n if (isResizableVertically) {\r\n if (verticalCalc.hasFlippedCoordinates) {\r\n this.adjustTopSideToLimits(y2Coord, xyValues, verticalCalc);\r\n }\r\n else {\r\n this.adjustTopSideToLimits(y1Coord, xyValues, verticalCalc);\r\n }\r\n }\r\n break;\r\n }\r\n // Bottom grab point\r\n case AnnotationBase_1.EDraggingGripPoint.x1y2: {\r\n if (isResizableVertically) {\r\n if (verticalCalc.hasFlippedCoordinates) {\r\n this.adjustBottomSideToLimits(y1Coord, xyValues, verticalCalc);\r\n }\r\n else {\r\n this.adjustBottomSideToLimits(y2Coord, xyValues, verticalCalc);\r\n }\r\n }\r\n break;\r\n }\r\n default:\r\n throw new Error(\"Unexpected adornerDraggingPoint value \".concat(this.adornerDraggingPoint));\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OverviewCustomResizableAnnotation.prototype.create = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n if (this.svg) {\r\n return;\r\n }\r\n this.setSvg(annotationHelpers_1.annotationHelpers.createSvg(this.svgString, this.svgRoot, this.nextSibling));\r\n // @ts-ignore\r\n var svgRect = this.svg.getBBox();\r\n var x1Coord = this.getX1Coordinate(xCalc, yCalc);\r\n var y1Coord = this.getY1Coordinate(xCalc, yCalc);\r\n // set default x2 and y2 values defined by the SVG size if custom ones are not set\r\n if (this.isVerticalChart) {\r\n if (this.x2 === undefined) {\r\n this.x2 = this.getValue(x1Coord + svgRect.width, xCalc, AnnotationBase_1.ECoordinateMode.Pixel);\r\n }\r\n if (this.y2 === undefined) {\r\n this.y2 = this.getValue(y1Coord + svgRect.height, yCalc, AnnotationBase_1.ECoordinateMode.Pixel);\r\n }\r\n }\r\n else {\r\n if (this.x2 === undefined) {\r\n this.x2 = this.getValue(y1Coord + svgRect.height, xCalc, AnnotationBase_1.ECoordinateMode.Pixel);\r\n }\r\n if (this.y2 === undefined) {\r\n this.y2 = this.getValue(x1Coord + svgRect.width, yCalc, AnnotationBase_1.ECoordinateMode.Pixel);\r\n }\r\n }\r\n var x2Coord = this.getX2Coordinate(xCalc, yCalc);\r\n var y2Coord = this.getY2Coordinate(xCalc, yCalc);\r\n // adjust svg to size limits\r\n var actualWidth = Math.abs(x2Coord - x1Coord);\r\n var actualHeight = Math.abs(y2Coord - y1Coord);\r\n if (this.isVerticalChart) {\r\n if (actualWidth < this.minWidth) {\r\n var horizontalCoordinateCalc = this.isVerticalChart ? yCalc : xCalc;\r\n this.y2 = this.getValue(x1Coord + this.minWidth, horizontalCoordinateCalc, AnnotationBase_1.ECoordinateMode.Pixel);\r\n }\r\n if (actualHeight < this.minHeight) {\r\n var verticalCoordinateCalc = this.isVerticalChart ? xCalc : yCalc;\r\n this.x2 = this.getValue(y1Coord + this.minHeight, verticalCoordinateCalc, AnnotationBase_1.ECoordinateMode.Pixel);\r\n }\r\n }\r\n else {\r\n if (actualWidth < this.minWidth) {\r\n var horizontalCoordinateCalc = this.isVerticalChart ? yCalc : xCalc;\r\n this.x2 = this.getValue(x1Coord + this.minWidth, horizontalCoordinateCalc, AnnotationBase_1.ECoordinateMode.Pixel);\r\n }\r\n if (actualHeight < this.minHeight) {\r\n var verticalCoordinateCalc = this.isVerticalChart ? xCalc : yCalc;\r\n this.y2 = this.getValue(y1Coord + this.minHeight, verticalCoordinateCalc, AnnotationBase_1.ECoordinateMode.Pixel);\r\n }\r\n }\r\n };\r\n /**\r\n * Creates or updates an adorner for the annotation\r\n */\r\n OverviewCustomResizableAnnotation.prototype.updateAdornerInner = function () {\r\n this.deleteAdorner();\r\n if (this.adornerSvgStringTemplate) {\r\n var _a = this.getAdornerAnnotationBorders(true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var svgString = this.adornerSvgStringTemplate(x1, y1, x2, y2);\r\n this.svgAdorner = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgAdornerRoot);\r\n }\r\n };\r\n OverviewCustomResizableAnnotation.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n var _a = this.getAnnotationBorders(true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var xMousePoint = (0, translate_1.translateToNotScaled)(x);\r\n var yMousePoint = (0, translate_1.translateToNotScaled)(y);\r\n if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x1, y2, x2, y1)) {\r\n return true;\r\n }\r\n var isResizableHorizontally = this.isVerticalChart\r\n ? this.resizeDirections !== XyDirection_1.EXyDirection.XDirection\r\n : this.resizeDirections !== XyDirection_1.EXyDirection.YDirection;\r\n var isResizableVertically = this.isVerticalChart\r\n ? this.resizeDirections !== XyDirection_1.EXyDirection.YDirection\r\n : this.resizeDirections !== XyDirection_1.EXyDirection.XDirection;\r\n if (isResizableHorizontally) {\r\n // Left\r\n if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x1 - constants_1.ADORNER_GRIP_RADIUS, y2, x1 + constants_1.ADORNER_GRIP_RADIUS, y1)) {\r\n return true;\r\n }\r\n else if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x2 - constants_1.ADORNER_GRIP_RADIUS, y2, x2 + constants_1.ADORNER_GRIP_RADIUS, y1)) {\r\n // Right\r\n return true;\r\n }\r\n }\r\n // Top\r\n if (isResizableVertically) {\r\n if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x1, y1 + constants_1.ADORNER_GRIP_RADIUS, x2, y1 - constants_1.ADORNER_GRIP_RADIUS)) {\r\n return true;\r\n }\r\n else if ((0, pointUtil_1.testIsInBounds)(xMousePoint, yMousePoint, x1, y2 + constants_1.ADORNER_GRIP_RADIUS, x2, y2 - constants_1.ADORNER_GRIP_RADIUS)) {\r\n // Bottom\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n OverviewCustomResizableAnnotation.prototype.adjustLeftSideToLimits = function (x2Coord, expectedLeftPoint, horizontalCalc) {\r\n var expectedLeftCoord = this.getAbsoluteHorizontalCoordinate(this.isVerticalChart ? expectedLeftPoint.y : expectedLeftPoint.x);\r\n var expectedAbsoluteX1Coord = adjustToViewport(expectedLeftCoord, horizontalCalc);\r\n var satisfiesMinWidth = x2Coord - expectedAbsoluteX1Coord >= this.minWidth;\r\n var adjustedCoordinate = satisfiesMinWidth ? expectedAbsoluteX1Coord : x2Coord - this.minWidth;\r\n var adjustedCoordinateValue = this.convertFromCoordinate(adjustedCoordinate * DpiHelper_1.DpiHelper.PIXEL_RATIO, horizontalCalc, this.isVerticalChart ? this.yCoordinateMode : this.xCoordinateMode);\r\n if (this.isVerticalChart) {\r\n if (horizontalCalc.hasFlippedCoordinates) {\r\n this.y1 = adjustedCoordinateValue;\r\n }\r\n else {\r\n this.y2 = adjustedCoordinateValue;\r\n }\r\n }\r\n else {\r\n if (horizontalCalc.hasFlippedCoordinates) {\r\n this.x1 = adjustedCoordinateValue;\r\n }\r\n else {\r\n this.x2 = adjustedCoordinateValue;\r\n }\r\n }\r\n };\r\n OverviewCustomResizableAnnotation.prototype.adjustRightSideToLimits = function (x1Coord, expectedRightPoint, horizontalCalc) {\r\n var expectedRightCoord = this.getAbsoluteHorizontalCoordinate(this.isVerticalChart ? expectedRightPoint.y : expectedRightPoint.x);\r\n var expectedAbsoluteX2Coord = adjustToViewport(expectedRightCoord, horizontalCalc);\r\n var satisfiesMinWidth = expectedAbsoluteX2Coord - x1Coord >= this.minWidth;\r\n var adjustedCoordinate = satisfiesMinWidth ? expectedAbsoluteX2Coord : x1Coord + this.minWidth;\r\n var adjustedCoordinateValue = this.convertFromCoordinate(adjustedCoordinate * DpiHelper_1.DpiHelper.PIXEL_RATIO, horizontalCalc, this.isVerticalChart ? this.yCoordinateMode : this.xCoordinateMode);\r\n if (this.isVerticalChart) {\r\n if (horizontalCalc.hasFlippedCoordinates) {\r\n this.y2 = adjustedCoordinateValue;\r\n }\r\n else {\r\n this.y1 = adjustedCoordinateValue;\r\n }\r\n }\r\n else {\r\n if (horizontalCalc.hasFlippedCoordinates) {\r\n this.x2 = adjustedCoordinateValue;\r\n }\r\n else {\r\n this.x1 = adjustedCoordinateValue;\r\n }\r\n }\r\n };\r\n OverviewCustomResizableAnnotation.prototype.adjustTopSideToLimits = function (y2Coord, expectedTopPoint, verticalCalc) {\r\n var expectedTopCoord = this.getAbsoluteVerticalCoordinate(this.isVerticalChart ? expectedTopPoint.x : expectedTopPoint.y);\r\n var expectedY1AbsoluteCoord = adjustToViewport(expectedTopCoord, verticalCalc);\r\n var satisfiesMinHeight = y2Coord - expectedY1AbsoluteCoord >= this.minHeight;\r\n var adjustedCoordinate = satisfiesMinHeight ? expectedY1AbsoluteCoord : y2Coord - this.minHeight;\r\n var adjustedCoordinateValue = this.convertFromCoordinate(adjustedCoordinate * DpiHelper_1.DpiHelper.PIXEL_RATIO, verticalCalc, this.isVerticalChart ? this.xCoordinateMode : this.yCoordinateMode);\r\n if (this.isVerticalChart) {\r\n if (verticalCalc.hasFlippedCoordinates) {\r\n this.x1 = adjustedCoordinateValue;\r\n }\r\n else {\r\n this.x2 = adjustedCoordinateValue;\r\n }\r\n }\r\n else {\r\n if (verticalCalc.hasFlippedCoordinates) {\r\n this.y1 = adjustedCoordinateValue;\r\n }\r\n else {\r\n this.y2 = adjustedCoordinateValue;\r\n }\r\n }\r\n };\r\n OverviewCustomResizableAnnotation.prototype.adjustBottomSideToLimits = function (y1Coord, expectedBottomPoint, verticalCalc) {\r\n var expectedBottomCoord = this.getAbsoluteVerticalCoordinate(this.isVerticalChart ? expectedBottomPoint.x : expectedBottomPoint.y);\r\n var expectedY2AbsoluteCoord = adjustToViewport(expectedBottomCoord, verticalCalc);\r\n var satisfiesMinHeight = expectedY2AbsoluteCoord - y1Coord >= this.minHeight;\r\n var adjustedCoordinate = satisfiesMinHeight ? expectedY2AbsoluteCoord : y1Coord + this.minHeight;\r\n var adjustedCoordinateValue = this.convertFromCoordinate(adjustedCoordinate * DpiHelper_1.DpiHelper.PIXEL_RATIO, verticalCalc, this.isVerticalChart ? this.xCoordinateMode : this.yCoordinateMode);\r\n if (this.isVerticalChart) {\r\n if (verticalCalc.hasFlippedCoordinates) {\r\n this.x2 = adjustedCoordinateValue;\r\n }\r\n else {\r\n this.x1 = adjustedCoordinateValue;\r\n }\r\n }\r\n else {\r\n if (verticalCalc.hasFlippedCoordinates) {\r\n this.y2 = adjustedCoordinateValue;\r\n }\r\n else {\r\n this.y1 = adjustedCoordinateValue;\r\n }\r\n }\r\n };\r\n return OverviewCustomResizableAnnotation;\r\n}(CustomAnnotation_1.CustomAnnotation));\r\nexports.OverviewCustomResizableAnnotation = OverviewCustomResizableAnnotation;\r\n/** @ignore */\r\nvar adjustToViewport = function (coordinate, calc) {\r\n if (coordinate <= 0) {\r\n return 0;\r\n }\r\n if (coordinate >= calc.viewportDimension / DpiHelper_1.DpiHelper.PIXEL_RATIO) {\r\n return calc.viewportDimension / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n }\r\n return coordinate;\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderContextAnnotationBase = void 0;\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * The Base class for an {@link AnnotationBase | Annotation} which draws using SciChart's built-in WebGL2\r\n * WebAssembly {@link WebGL2RenderingContext | RenderContext}, enabling fast drawing at expense of\r\n * having lots of customisation like the {@link SvgAnnotationBase} provides.\r\n */\r\nvar RenderContextAnnotationBase = /** @class */ (function (_super) {\r\n __extends(RenderContextAnnotationBase, _super);\r\n /**\r\n * Creates an instance of the RenderContextAnnotationBase\r\n * @param options optional parameters of type {@link IAnnotationBaseOptions} which configure the annotation at construction time\r\n */\r\n function RenderContextAnnotationBase(options) {\r\n var _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.isSvgAnnotation = false;\r\n return _this;\r\n }\r\n Object.defineProperty(RenderContextAnnotationBase.prototype, \"parentSurface\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.parentSurfaceProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (parentSurface) {\r\n if (this.parentSurfaceProperty !== parentSurface) {\r\n this.parentSurfaceProperty = parentSurface;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PARENT_SURFACE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return RenderContextAnnotationBase;\r\n}(AnnotationBase_1.AnnotationBase));\r\nexports.RenderContextAnnotationBase = RenderContextAnnotationBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RolloverLegendSvgAnnotation = void 0;\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar SvgAnnotationBase_1 = require(\"./SvgAnnotationBase\");\r\n/**\r\n * A Rollover Legend Annotation which provides an SVG tooltip over the chart. Used by the {@link RolloverModifier}\r\n */\r\nvar RolloverLegendSvgAnnotation = /** @class */ (function (_super) {\r\n __extends(RolloverLegendSvgAnnotation, _super);\r\n /**\r\n * Creates an instance of the {@link RolloverLegendSvgAnnotation}\r\n * @param options\r\n */\r\n function RolloverLegendSvgAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.SVG;\r\n _this.seriesInfosProperty = [];\r\n _this.isHidden = true;\r\n _this.tooltipLegendTemplateProperty = (_a = options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) !== null && _a !== void 0 ? _a : _this.tooltipLegendTemplateProperty;\r\n _this.tooltipLegendOffsetXProperty = (_b = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetX) !== null && _b !== void 0 ? _b : _this.tooltipLegendOffsetXProperty;\r\n _this.tooltipLegendOffsetYProperty = (_c = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetY) !== null && _c !== void 0 ? _c : _this.tooltipLegendOffsetYProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(RolloverLegendSvgAnnotation.prototype, \"seriesInfos\", {\r\n /**\r\n * Gets or sets seriesInfos {@link SeriesInfo} value on the tooltip\r\n */\r\n get: function () {\r\n return this.seriesInfosProperty;\r\n },\r\n /**\r\n * Gets or sets seriesInfos {@link SeriesInfo} value on the tooltip\r\n */\r\n set: function (newSeriesInfos) {\r\n if (this.seriesInfosProperty && newSeriesInfos) {\r\n // Compare infos against the ones for the matching series. See if any are different\r\n if (newSeriesInfos.length !== this.seriesInfosProperty.length ||\r\n this.seriesInfosProperty\r\n .map(function (seriesInfo) {\r\n return seriesInfo.equals(newSeriesInfos.find(function (newSeriesInfo) { return newSeriesInfo.renderableSeries.id === seriesInfo.renderableSeries.id; }));\r\n })\r\n .some(function (sameSeriesInfo) { return sameSeriesInfo === false; })) {\r\n this.seriesInfosProperty = newSeriesInfos;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_INFOS);\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverLegendSvgAnnotation.prototype, \"tooltipLegendTemplate\", {\r\n get: function () {\r\n return this.tooltipLegendTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipLegendTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverLegendSvgAnnotation.prototype, \"tooltipLegendOffsetX\", {\r\n get: function () {\r\n return this.tooltipLegendOffsetXProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipLegendOffsetXProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_OFFSET_X);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverLegendSvgAnnotation.prototype, \"tooltipLegendOffsetY\", {\r\n get: function () {\r\n return this.tooltipLegendOffsetYProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipLegendOffsetYProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_OFFSET_Y);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverLegendSvgAnnotation.prototype.update = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n if (!this.tooltipLegendTemplate) {\r\n return;\r\n }\r\n if (this.svg) {\r\n this.delete();\r\n }\r\n this.create(xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RolloverLegendSvgAnnotation.prototype.create = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n var svgString = this.tooltipLegendTemplate(this.seriesInfos, this);\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n this.setSvg(svgNode);\r\n this.setSvgAttribute(\"x\", this.tooltipLegendOffsetX + xCoordSvgTrans);\r\n this.setSvgAttribute(\"y\", this.tooltipLegendOffsetY + yCoordSvgTrans);\r\n };\r\n return RolloverLegendSvgAnnotation;\r\n}(SvgAnnotationBase_1.SvgAnnotationBase));\r\nexports.RolloverLegendSvgAnnotation = RolloverLegendSvgAnnotation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RolloverMarkerSvgAnnotation = void 0;\r\nvar MousePosition_1 = require(\"../../../types/MousePosition\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar SvgAnnotationBase_1 = require(\"./SvgAnnotationBase\");\r\nvar RolloverMarkerSvgAnnotation = /** @class */ (function (_super) {\r\n __extends(RolloverMarkerSvgAnnotation, _super);\r\n function RolloverMarkerSvgAnnotation(renderableSeriesProps) {\r\n var _this = _super.call(this) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.SVG;\r\n _this.tooltipProps = renderableSeriesProps;\r\n _this.isHiddenProperty = true;\r\n _this.x1 = 0;\r\n _this.y1 = 0;\r\n _this.xCoordShift = -4;\r\n _this.yCoordShift = -4;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n RolloverMarkerSvgAnnotation.prototype.update = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n var currentMousePosition = this.tooltipProps.rolloverModifier.getMousePosition();\r\n if (this.previousMousePosition === currentMousePosition && currentMousePosition !== MousePosition_1.EMousePosition.SeriesArea) {\r\n return;\r\n }\r\n this.previousMousePosition = this.tooltipProps.rolloverModifier.getMousePosition();\r\n _super.prototype.update.call(this, xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans);\r\n };\r\n /** @inheritDoc */\r\n RolloverMarkerSvgAnnotation.prototype.create = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n var _a = this.tooltipProps, tooltipColor = _a.tooltipColor, markerColor = _a.markerColor;\r\n var color = markerColor !== null && markerColor !== void 0 ? markerColor : tooltipColor;\r\n if (this.svg && this.currentColor !== color) {\r\n this.clear();\r\n }\r\n if (!this.svg) {\r\n this.currentColor === color;\r\n var svgString = tooltipSvgTemplate(color);\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n this.setSvg(svgNode);\r\n }\r\n };\r\n return RolloverMarkerSvgAnnotation;\r\n}(SvgAnnotationBase_1.SvgAnnotationBase));\r\nexports.RolloverMarkerSvgAnnotation = RolloverMarkerSvgAnnotation;\r\n/**\r\n * @ignore\r\n */\r\nvar tooltipSvgTemplate = function (fillColor) {\r\n return \"\");\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RolloverTooltipSvgAnnotation = void 0;\r\nvar MousePosition_1 = require(\"../../../types/MousePosition\");\r\nvar IDataSeries_1 = require(\"../../Model/IDataSeries\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar SvgAnnotationBase_1 = require(\"./SvgAnnotationBase\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\n// TODO: Rename to RolloverTooltipSvgAnnotation\r\n/**\r\n * A Tooltip Annotation which provides an SVG tooltip over the chart. Used by the {@link RolloverModifier}\r\n */\r\nvar RolloverTooltipSvgAnnotation = /** @class */ (function (_super) {\r\n __extends(RolloverTooltipSvgAnnotation, _super);\r\n /**\r\n * Creates an instance of the {@link RolloverTooltipSvgAnnotation}\r\n * @param renderableSeriesProps The {@link RolloverModifierRenderableSeriesProps | props} pass\r\n * @param options\r\n */\r\n function RolloverTooltipSvgAnnotation(renderableSeriesProps, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.SVG;\r\n _this.width = 0;\r\n _this.height = 0;\r\n _this.tooltipProps = renderableSeriesProps;\r\n _this.height = (_a = options === null || options === void 0 ? void 0 : options.height) !== null && _a !== void 0 ? _a : _this.height;\r\n _this.xCoordinateMode = AnnotationBase_1.ECoordinateMode.DataValue;\r\n _this.yCoordinateMode = AnnotationBase_1.ECoordinateMode.DataValue;\r\n _this.isHidden = true;\r\n _this.updateSize = _this.updateSize.bind(_this);\r\n _this.placementDivIdProperty = (_b = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _b !== void 0 ? _b : _this.placementDivIdProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(RolloverTooltipSvgAnnotation.prototype, \"seriesInfo\", {\r\n /**\r\n * Gets or sets seriesInfo {@link SeriesInfo} value on the tooltip\r\n */\r\n get: function () {\r\n return this.seriesInfoProperty;\r\n },\r\n /**\r\n * Gets or sets seriesInfo {@link SeriesInfo} value on the tooltip\r\n */\r\n set: function (value) {\r\n if ((value && !this.seriesInfoProperty) || !this.seriesInfoProperty.equals(value)) {\r\n this.seriesInfoProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_INFO);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n RolloverTooltipSvgAnnotation.prototype.update = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n var currentMousePosition = this.tooltipProps.rolloverModifier.getMousePosition();\r\n if (this.previousMousePosition === currentMousePosition && currentMousePosition !== MousePosition_1.EMousePosition.SeriesArea) {\r\n return;\r\n }\r\n this.previousMousePosition = this.tooltipProps.rolloverModifier.getMousePosition();\r\n if (this.svg) {\r\n this.clear();\r\n }\r\n if (this.placementDivId) {\r\n this.updateExternalLegendTooltip();\r\n }\r\n else {\r\n _super.prototype.update.call(this, xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans);\r\n this.updateLegendTooltip(xCoordSvgTrans, yCoordSvgTrans);\r\n }\r\n };\r\n /**\r\n * Updates size of the tooltip\r\n */\r\n RolloverTooltipSvgAnnotation.prototype.updateSize = function (width, height) {\r\n this.width = width;\r\n this.height = height;\r\n };\r\n RolloverTooltipSvgAnnotation.prototype.clear = function () {\r\n var _a, _b, _c, _d;\r\n if (!this.parentSurface || this.parentSurface.isDeleted)\r\n return;\r\n if (this.svg) {\r\n if (this.placementDivId) {\r\n (_b = (_a = this.svg) === null || _a === void 0 ? void 0 : _a.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(this.svg);\r\n return;\r\n }\r\n (_c = this.svgRoot) === null || _c === void 0 ? void 0 : _c.removeChild(this.svg);\r\n }\r\n if (this.svgLegend) {\r\n (_d = this.svgLegend.parentNode) === null || _d === void 0 ? void 0 : _d.removeChild(this.svgLegend);\r\n }\r\n };\r\n /** @inheritDoc */\r\n RolloverTooltipSvgAnnotation.prototype.create = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n var svgString;\r\n if (!this.seriesInfo) {\r\n svgString = \"\";\r\n }\r\n else {\r\n svgString = this.generateSvgString();\r\n }\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n this.setSvg(svgNode);\r\n };\r\n RolloverTooltipSvgAnnotation.prototype.generateSvgString = function () {\r\n var _a;\r\n var tooltipTitle = this.tooltipProps.tooltipTitle;\r\n var idTitle = (\"\" + tooltipTitle).replace(/\\s/g, \"\");\r\n var id = \"id\".concat(Math.floor(this.y1), \"_\").concat(idTitle, \"_\").concat(Date.now());\r\n var tooltipTemplate = (_a = this.tooltipProps.tooltipTemplate) !== null && _a !== void 0 ? _a : defaultTooltipTemplate;\r\n return tooltipTemplate(id, this.seriesInfo, this);\r\n };\r\n RolloverTooltipSvgAnnotation.prototype.updateLegendTooltip = function (xCoordSvgTrans, yCoordSvgTrans) {\r\n if (this.tooltipProps.tooltipLegendTemplate) {\r\n var svgString = this.seriesInfo\r\n ? this.tooltipProps.tooltipLegendTemplate(this.tooltipProps, this.seriesInfo)\r\n : \"\";\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n this.svgLegend = svgNode;\r\n this.svgLegend.setAttribute(\"x\", this.tooltipProps.tooltipLegendOffsetX.toString() + xCoordSvgTrans);\r\n this.svgLegend.setAttribute(\"y\", this.tooltipProps.tooltipLegendOffsetY.toString() + yCoordSvgTrans);\r\n }\r\n };\r\n RolloverTooltipSvgAnnotation.prototype.updateExternalLegendTooltip = function () {\r\n var svgString;\r\n if (!this.seriesInfo) {\r\n svgString = \"\";\r\n }\r\n else {\r\n svgString = this.generateSvgString();\r\n }\r\n this.svgDivRoot = document.querySelector(\"[id='\".concat(this.placementDivId, \"']\"));\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgDivRoot, this.nextSibling);\r\n this.setSvg(svgNode);\r\n };\r\n Object.defineProperty(RolloverTooltipSvgAnnotation.prototype, \"placementDivId\", {\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n get: function () {\r\n return this.placementDivIdProperty;\r\n },\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n set: function (value) {\r\n if (this.placementDivIdProperty !== value) {\r\n this.placementDivIdProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PLACEMENT_DIV_ID);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return RolloverTooltipSvgAnnotation;\r\n}(SvgAnnotationBase_1.SvgAnnotationBase));\r\nexports.RolloverTooltipSvgAnnotation = RolloverTooltipSvgAnnotation;\r\n/** @ignore */\r\nvar defaultTooltipDataTemplate = function (seriesInfo, tooltipTitle, tooltipLabelX, tooltipLabelY) {\r\n var valuesWithLabels = [];\r\n if (tooltipTitle) {\r\n valuesWithLabels.push(tooltipTitle);\r\n }\r\n if (seriesInfo.dataSeriesType === IDataSeries_1.EDataSeriesType.Ohlc) {\r\n var ohlcSeriesInfo = seriesInfo;\r\n if (tooltipLabelX) {\r\n valuesWithLabels.push(\"\".concat(tooltipLabelX, \": \").concat(ohlcSeriesInfo.formattedXValue));\r\n }\r\n valuesWithLabels.push(\"Open: \".concat(ohlcSeriesInfo.formattedOpenValue));\r\n valuesWithLabels.push(\"Highest: \".concat(ohlcSeriesInfo.formattedHighValue));\r\n valuesWithLabels.push(\"Lowest: \".concat(ohlcSeriesInfo.formattedLowValue));\r\n valuesWithLabels.push(\"Close: \".concat(ohlcSeriesInfo.formattedCloseValue));\r\n }\r\n else if (seriesInfo.dataSeriesType === IDataSeries_1.EDataSeriesType.Hlc) {\r\n var hlcSeriesInfo = seriesInfo;\r\n if (tooltipLabelX) {\r\n valuesWithLabels.push(\"\".concat(tooltipLabelX, \": \").concat(hlcSeriesInfo.formattedXValue));\r\n }\r\n valuesWithLabels.push(\"High: \".concat(hlcSeriesInfo.formattedHighValue));\r\n valuesWithLabels.push(\"Low: \".concat(hlcSeriesInfo.formattedLowValue));\r\n }\r\n else if (seriesInfo.dataSeriesType === IDataSeries_1.EDataSeriesType.Xyy) {\r\n // Band Series\r\n var xyySeriesInfo = seriesInfo;\r\n if (xyySeriesInfo.isFirstSeries) {\r\n addValueWithLabel(valuesWithLabels, xyySeriesInfo.formattedXValue, xyySeriesInfo.formattedYValue, tooltipLabelX, tooltipLabelY);\r\n }\r\n else {\r\n addValueWithLabel(valuesWithLabels, xyySeriesInfo.formattedXValue, xyySeriesInfo.formattedY1Value, tooltipLabelX, tooltipLabelY);\r\n }\r\n }\r\n else if (seriesInfo.dataSeriesType === IDataSeries_1.EDataSeriesType.HeatmapUniform) {\r\n // Band Series\r\n var heatmapSeriesInfo = seriesInfo;\r\n if (tooltipLabelX) {\r\n valuesWithLabels.push(\"\".concat(tooltipLabelX, \": \").concat(heatmapSeriesInfo.formattedXValue));\r\n }\r\n if (tooltipLabelY) {\r\n valuesWithLabels.push(\"\".concat(tooltipLabelY, \": \").concat(heatmapSeriesInfo.formattedYValue));\r\n }\r\n valuesWithLabels.push(\"Z: \".concat(heatmapSeriesInfo.formattedZValue));\r\n }\r\n else if (seriesInfo.dataSeriesType === IDataSeries_1.EDataSeriesType.Xyz) {\r\n // Bubble Series\r\n var xyzSeriesInfo = seriesInfo;\r\n addValueWithLabel(valuesWithLabels, xyzSeriesInfo.formattedXValue, xyzSeriesInfo.formattedYValue, tooltipLabelX, tooltipLabelY);\r\n valuesWithLabels.push(\"Z: \".concat(xyzSeriesInfo.formattedZValue));\r\n }\r\n else {\r\n // Line Series\r\n var xySeriesInfo = seriesInfo;\r\n addValueWithLabel(valuesWithLabels, xySeriesInfo.formattedXValue, xySeriesInfo.formattedYValue, tooltipLabelX, tooltipLabelY);\r\n }\r\n return valuesWithLabels;\r\n};\r\n/** @ignore */\r\nvar defaultTooltipTemplate = function (id, seriesInfo, rolloverTooltip) {\r\n var _a, _b, _c, _d, _e;\r\n var valuesBlock = \"\";\r\n var tooltipProps = rolloverTooltip.tooltipProps;\r\n var tooltipTitle = tooltipProps.tooltipTitle, tooltipColor = tooltipProps.tooltipColor, tooltipTextColor = tooltipProps.tooltipTextColor, tooltipLabelX = tooltipProps.tooltipLabelX, tooltipLabelY = tooltipProps.tooltipLabelY, shadowColor = tooltipProps.shadowColor;\r\n var tooltipDataTemplate = (_c = (_a = rolloverTooltip.tooltipProps.tooltipDataTemplate) !== null && _a !== void 0 ? _a : (_b = rolloverTooltip.tooltipProps.rolloverModifier) === null || _b === void 0 ? void 0 : _b.tooltipDataTemplate) !== null && _c !== void 0 ? _c : defaultTooltipDataTemplate;\r\n var valuesWithLabels = tooltipDataTemplate(seriesInfo, tooltipTitle, tooltipLabelX, tooltipLabelY);\r\n // tooltip width\r\n var width = (_d = tooltipProps.width) !== null && _d !== void 0 ? _d : calcTooltipWidth(valuesWithLabels.reduce(function (prev, cur) { return (cur.length > prev ? cur.length : prev); }, 0));\r\n // tooltip height\r\n var height = (_e = tooltipProps.height) !== null && _e !== void 0 ? _e : calcTooltipHeight(valuesWithLabels.length);\r\n rolloverTooltip.updateSize(width, height);\r\n valuesWithLabels.forEach(function (val, index) {\r\n valuesBlock += \"\".concat(val, \"\");\r\n });\r\n var blur = \"\";\r\n if (shadowColor !== undefined) {\r\n var shadowRGBA = (0, parseColor_1.parseColorToTArgb)(shadowColor);\r\n blur = \"\\n \");\r\n }\r\n return \"\\n \\n \\n \\n \").concat(blur, \"\\n \\n \\n \\n \\n \\n \").concat(valuesBlock, \"\\n \\n \");\r\n};\r\n/** @ignore */\r\nvar calcTooltipWidth = function (textLength, fontSize) {\r\n if (textLength === void 0) { textLength = 20; }\r\n if (fontSize === void 0) { fontSize = 13; }\r\n return textLength * 8 + 20;\r\n};\r\n/** @ignore */\r\nvar calcTooltipHeight = function (lines, fontSize) {\r\n if (lines === void 0) { lines = 2; }\r\n if (fontSize === void 0) { fontSize = 13; }\r\n return 17 * lines + 16;\r\n};\r\n/** @ignore */\r\nvar addValueWithLabel = function (valuesWithLabels, xValue, yValue, xLabel, yLabel) {\r\n if (xLabel) {\r\n var yLabel2 = yLabel !== null && yLabel !== void 0 ? yLabel : \"Y\";\r\n valuesWithLabels.push(\"\".concat(xLabel, \": \").concat(xValue, \" \").concat(yLabel2, \": \").concat(yValue));\r\n }\r\n else {\r\n var yLabel2 = yLabel ? \"\".concat(yLabel, \": \") : \"\";\r\n valuesWithLabels.push(\"\".concat(yLabel2).concat(yValue));\r\n }\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SvgAnnotationBase = void 0;\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar AnchorPoint_1 = require(\"../../../types/AnchorPoint\");\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar translate_1 = require(\"../../../utils/translate\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * The Base class for an {@link AnnotationBase | Annotation} which draws using an HTML5 SVG canvas\r\n */\r\nvar SvgAnnotationBase = /** @class */ (function (_super) {\r\n __extends(SvgAnnotationBase, _super);\r\n /**\r\n * Creates an instance of an SvgAnnotationbase\r\n * @param options Optional parameters of type {@link ISvgAnnotationBaseOptions} used to configure the annotation on construction\r\n */\r\n function SvgAnnotationBase(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.isSvgAnnotation = true;\r\n _this.isDeleted = false;\r\n /**\r\n * The {@link SVGElement} which will be added to the chart\r\n */\r\n _this.xCoordShiftProperty = 0;\r\n _this.yCoordShiftProperty = 0;\r\n _this.verticalAnchorPointProperty = AnchorPoint_1.EVerticalAnchorPoint.Top;\r\n _this.horizontalAnchorPointProperty = AnchorPoint_1.EHorizontalAnchorPoint.Left;\r\n _this.prevX1Coordinate = 0;\r\n _this.prevY1Coordinate = 0;\r\n _this.xCoordShiftProperty = (_a = options === null || options === void 0 ? void 0 : options.xCoordShift) !== null && _a !== void 0 ? _a : _this.xCoordShiftProperty;\r\n _this.yCoordShiftProperty = (_b = options === null || options === void 0 ? void 0 : options.yCoordShift) !== null && _b !== void 0 ? _b : _this.yCoordShiftProperty;\r\n _this.verticalAnchorPointProperty = (_c = options === null || options === void 0 ? void 0 : options.verticalAnchorPoint) !== null && _c !== void 0 ? _c : _this.verticalAnchorPointProperty;\r\n _this.horizontalAnchorPointProperty = (_d = options === null || options === void 0 ? void 0 : options.horizontalAnchorPoint) !== null && _d !== void 0 ? _d : _this.horizontalAnchorPointProperty;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n SvgAnnotationBase.prototype.onAttach = function (scs) {\r\n _super.prototype.onAttach.call(this, scs);\r\n this.selectSvgRoot();\r\n // Override in derived classes to be notified of attached\r\n };\r\n /** @inheritDoc */\r\n SvgAnnotationBase.prototype.onDetach = function () {\r\n _super.prototype.onDetach.call(this);\r\n this.delete();\r\n };\r\n Object.defineProperty(SvgAnnotationBase.prototype, \"xCoordShift\", {\r\n /**\r\n * Gets or sets an offset to shift X-coordinates\r\n */\r\n get: function () {\r\n return this.xCoordShiftProperty;\r\n },\r\n /**\r\n * Gets or sets an offset to shift X-coordinates\r\n */\r\n set: function (value) {\r\n if (this.xCoordShiftProperty !== value) {\r\n this.xCoordShiftProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X_COORD_SHIFT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SvgAnnotationBase.prototype, \"yCoordShift\", {\r\n /**\r\n * Gets or sets an offset to shift Y-coordinates\r\n */\r\n get: function () {\r\n return this.yCoordShiftProperty;\r\n },\r\n /**\r\n * Gets or sets an offset to shift Y-coordinates\r\n */\r\n set: function (value) {\r\n if (this.yCoordShiftProperty !== value) {\r\n this.yCoordShiftProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Y_COORD_SHIFT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SvgAnnotationBase.prototype, \"verticalAnchorPoint\", {\r\n /**\r\n * Gets or sets vertical anchor point\r\n */\r\n get: function () {\r\n return this.verticalAnchorPointProperty;\r\n },\r\n /**\r\n * Gets or sets vertical anchor point\r\n */\r\n set: function (value) {\r\n if (this.verticalAnchorPointProperty !== value) {\r\n this.verticalAnchorPointProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VERTICAL_ANCHOR_POINT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SvgAnnotationBase.prototype, \"horizontalAnchorPoint\", {\r\n /**\r\n * Gets or sets horizontal anchor point\r\n */\r\n get: function () {\r\n return this.horizontalAnchorPointProperty;\r\n },\r\n /**\r\n * Gets or sets horizontal anchor point\r\n */\r\n set: function (value) {\r\n if (this.horizontalAnchorPointProperty !== value) {\r\n this.horizontalAnchorPointProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.HORIZONTAL_ANCHOR_POINT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SvgAnnotationBase.prototype.suspendInvalidate = function () {\r\n _super.prototype.suspendInvalidate.call(this);\r\n //@ts-ignore\r\n this.invalidateState.xCoordShift = this.xCoordShift;\r\n //@ts-ignore\r\n this.invalidateState.yCoordShift = this.yCoordShift;\r\n };\r\n SvgAnnotationBase.prototype.resumeInvalidate = function () {\r\n if (!this.invalidateState)\r\n return;\r\n if (\r\n //@ts-ignore\r\n this.xCoordShift !== this.invalidateState.xCoordShift ||\r\n //@ts-ignore\r\n this.yCoordShift !== this.invalidateState.yCoordShift) {\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n }\r\n _super.prototype.resumeInvalidate.call(this);\r\n };\r\n /**\r\n * Updates the annotation position, with the {@link CoordinateCalculatorBase | Coordinate Calculators} passed in\r\n * @param xCalc The XAxis {@link CoordinateCalculatorBase | CoordinateCalculator} applied to this annotation\r\n * @param yCalc The YAxis {@link CoordinateCalculatorBase | CoordinateCalculator} applied to this annotation\r\n * @param xCoordSvgTrans X-coordinate translation which is needed to use SVG canvas having the whole chart size\r\n * @param yCoordSvgTrans Y-coordinate translation which is needed to use SVG canvas having the whole chart size\r\n */\r\n SvgAnnotationBase.prototype.update = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n var _a, _b;\r\n this.create(xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans);\r\n var shiftX = (_a = this.xCoordShift) !== null && _a !== void 0 ? _a : 0;\r\n var shiftY = (_b = this.yCoordShift) !== null && _b !== void 0 ? _b : 0;\r\n // @ts-ignore\r\n var svgRect = this.svg.getBBox();\r\n var svgWidth = svgRect.width;\r\n var svgHeight = svgRect.height;\r\n if (this.horizontalAnchorPointProperty === AnchorPoint_1.EHorizontalAnchorPoint.Center) {\r\n shiftX -= svgWidth / 2;\r\n }\r\n else if (this.horizontalAnchorPointProperty === AnchorPoint_1.EHorizontalAnchorPoint.Right) {\r\n shiftX -= svgWidth;\r\n }\r\n if (this.verticalAnchorPointProperty === AnchorPoint_1.EVerticalAnchorPoint.Center) {\r\n shiftY -= svgHeight / 2;\r\n }\r\n else if (this.verticalAnchorPointProperty === AnchorPoint_1.EVerticalAnchorPoint.Bottom) {\r\n shiftY -= svgHeight;\r\n }\r\n this.svg.style.visibility = this.isHidden ? \"hidden\" : \"visible\";\r\n this.svg.style.opacity = this.opacity.toString();\r\n var x1Coord = shiftX + this.getX1Coordinate(xCalc, yCalc) + xCoordSvgTrans;\r\n var y1Coord = shiftY + this.getY1Coordinate(xCalc, yCalc) + yCoordSvgTrans;\r\n if (isNaN(x1Coord) || isNaN(y1Coord) || !isFinite(x1Coord) || !isFinite(y1Coord)) {\r\n this.svg.style.display = \"none\";\r\n }\r\n else {\r\n this.setSvgAttribute(\"x\", x1Coord);\r\n this.setSvgAttribute(\"y\", y1Coord);\r\n }\r\n };\r\n SvgAnnotationBase.prototype.calcDragDistance = function (xyValues) {\r\n if (!this.prevValue) {\r\n this.prevValue = xyValues;\r\n return;\r\n }\r\n var _a = this.getAnnotationBorders(), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n if (this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.Body ||\r\n this.adornerDraggingPoint === AnnotationBase_1.EDraggingGripPoint.x1y1) {\r\n x1 = this.x1 - (this.prevValue.x - xyValues.x);\r\n y1 = this.y1 - (this.prevValue.y - xyValues.y);\r\n this.x1 = x1;\r\n this.y1 = y1;\r\n x2 = x2 - (this.prevValue.x - xyValues.x);\r\n y2 = y2 - (this.prevValue.y - xyValues.y);\r\n }\r\n this.prevValue = xyValues;\r\n this.setAnnotationBorders(x1, x2, y1, y2);\r\n };\r\n SvgAnnotationBase.prototype.onDragStarted = function (args) {\r\n _super.prototype.onDragStarted.call(this, args);\r\n var _a = this.getAnnotationBorders(), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var xyCoord1 = new Point_1.Point(x1, y1);\r\n var circleCenterX = x1;\r\n var circleCenterY = y1;\r\n var height = Math.abs((y1 - y2) / 2);\r\n var width = Math.abs((x1 - x2) / 2);\r\n if (this.verticalAnchorPoint === AnchorPoint_1.EVerticalAnchorPoint.Center) {\r\n circleCenterY = circleCenterY + height;\r\n }\r\n if (this.horizontalAnchorPoint === AnchorPoint_1.EHorizontalAnchorPoint.Center) {\r\n circleCenterX = circleCenterX + width;\r\n }\r\n var xyMousePoint = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(args.mousePoint.x, args.mousePoint.y), this.parentSurface.seriesViewRect);\r\n if (!xyMousePoint) {\r\n return false;\r\n }\r\n if (xyCoord1 && this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y1)) {\r\n var dist = (0, pointUtil_1.calcDistance)(circleCenterX, circleCenterY, (0, translate_1.translateToNotScaled)(xyMousePoint.x), (0, translate_1.translateToNotScaled)(xyMousePoint.y));\r\n if (dist < this.annotationsGripsRadius) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.x1y1;\r\n return true;\r\n }\r\n }\r\n if (this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.Body) && this.clickToSelect(args)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.Body;\r\n return true;\r\n }\r\n return false;\r\n };\r\n /** @inheritDoc */\r\n SvgAnnotationBase.prototype.delete = function () {\r\n this.clear();\r\n this.isDeleted = true;\r\n };\r\n SvgAnnotationBase.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n xCoordShift: this.xCoordShift,\r\n yCoordShift: this.yCoordShift,\r\n verticalAnchorPoint: this.verticalAnchorPoint,\r\n horizontalAnchorPoint: this.horizontalAnchorPoint\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n Object.defineProperty(SvgAnnotationBase.prototype, \"svg\", {\r\n get: function () {\r\n return this.svgProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SvgAnnotationBase.prototype.clear = function () {\r\n if (!this.parentSurface || this.parentSurface.isDeleted || !this.svg)\r\n return;\r\n this.nextSibling = this.svg.nextElementSibling;\r\n this.svg.parentNode.removeChild(this.svg);\r\n this.setSvg(undefined);\r\n };\r\n SvgAnnotationBase.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n var _a = this.getAnnotationBorders(true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n // For SVG annotations we need to use not scaled coordinates\r\n var notScaledX = x / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var notScaledY = y / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n return (0, pointUtil_1.testIsInBounds)(notScaledX, notScaledY, x1, y2, x2, y1);\r\n };\r\n SvgAnnotationBase.prototype.updateAdornerInner = function () {\r\n this.deleteAdorner();\r\n if (this.isSelected) {\r\n var _a = this.getAdornerAnnotationBorders(true, true), x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;\r\n var svgString = this.svgStringAdornerTemplate(x1, y1, x2, y2);\r\n this.svgAdorner = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgAdornerRoot);\r\n }\r\n };\r\n Object.defineProperty(SvgAnnotationBase.prototype, \"svgRoot\", {\r\n /**\r\n * Gets the {@link SVGSVGElement | SVG Element} at the root of this annotation\r\n */\r\n get: function () {\r\n return this.svgRootProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SvgAnnotationBase.prototype.selectSvgRoot = function () {\r\n if (this.annotationLayer === IAnnotation_1.EAnnotationLayer.AboveChart) {\r\n this.svgRootProperty = this.parentSurface.domSvgContainer;\r\n }\r\n else if (this.annotationLayer === IAnnotation_1.EAnnotationLayer.BelowChart) {\r\n // default to foreground for back compatability\r\n this.svgRootProperty = this.parentSurface.domSvgContainer;\r\n }\r\n else if (this.annotationLayer === IAnnotation_1.EAnnotationLayer.Background) {\r\n this.svgRootProperty = this.parentSurface.domBackgroundSvgContainer;\r\n }\r\n else {\r\n throw new Error(\"Unexpected annotationLayer value: \\\"\".concat(this.annotationLayer, \"!\\\"\"));\r\n }\r\n };\r\n SvgAnnotationBase.prototype.setSvgAttribute = function (attributeName, value) {\r\n var strValue = value.toString(10);\r\n this.svg.setAttribute(attributeName, strValue);\r\n };\r\n SvgAnnotationBase.prototype.setSvg = function (svg) {\r\n this.svgProperty = svg;\r\n };\r\n SvgAnnotationBase.prototype.notifyPropertyChanged = function (propertyName) {\r\n if (propertyName === constants_1.PROPERTY.ANNOTATION_CANVAS) {\r\n this.clear();\r\n this.nextSibling = undefined;\r\n this.selectSvgRoot();\r\n }\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n };\r\n /**\r\n * Calculates and sets annotationBorders\r\n * @protected\r\n */\r\n SvgAnnotationBase.prototype.calcAndSetAnnotationBorders = function (xCalc, yCalc) {\r\n if (!this.svg)\r\n return;\r\n var borderX1 = this.getX1Coordinate(xCalc, yCalc) + this.xCoordShift;\r\n var borderY1 = this.getY1Coordinate(xCalc, yCalc) + this.yCoordShift;\r\n // @ts-ignore\r\n this.svgDOMRect = this.svg.getBBox();\r\n var borderX2 = borderX1 + this.svgDOMRect.width;\r\n var borderY2 = borderY1 + this.svgDOMRect.height;\r\n if (this.verticalAnchorPoint === AnchorPoint_1.EVerticalAnchorPoint.Bottom) {\r\n borderY2 = borderY1 - this.svgDOMRect.height;\r\n }\r\n if (this.verticalAnchorPoint === AnchorPoint_1.EVerticalAnchorPoint.Center) {\r\n borderY2 = borderY1 + this.svgDOMRect.height / 2;\r\n borderY1 = borderY1 - this.svgDOMRect.height / 2;\r\n }\r\n if (this.horizontalAnchorPoint === AnchorPoint_1.EHorizontalAnchorPoint.Right) {\r\n borderX2 = borderX1 - this.svgDOMRect.width;\r\n }\r\n if (this.horizontalAnchorPoint === AnchorPoint_1.EHorizontalAnchorPoint.Center) {\r\n borderX2 = borderX1 + this.svgDOMRect.width / 2;\r\n borderX1 = borderX1 - this.svgDOMRect.width / 2;\r\n }\r\n this.setAnnotationBorders(borderX1, borderX2, borderY1, borderY2);\r\n };\r\n SvgAnnotationBase.prototype.svgStringAdornerTemplate = function (x1, y1, x2, y2) {\r\n var circleCenterX = x1;\r\n var circleCenterY = y1;\r\n var height = Math.abs((y1 - y2) / 2);\r\n var width = Math.abs((x1 - x2) / 2);\r\n if (this.verticalAnchorPoint === AnchorPoint_1.EVerticalAnchorPoint.Center) {\r\n circleCenterY = circleCenterY + height;\r\n }\r\n if (this.horizontalAnchorPoint === AnchorPoint_1.EHorizontalAnchorPoint.Center) {\r\n circleCenterX = circleCenterX + width;\r\n }\r\n return \"\\n \\n \").concat(this.canDragPoint(AnnotationBase_1.EDraggingGripPoint.x1y1) ? this.getAnnotationGripSvg(circleCenterX, circleCenterY) : \"\", \"\\n \");\r\n };\r\n return SvgAnnotationBase;\r\n}(AnnotationBase_1.AnnotationBase));\r\nexports.SvgAnnotationBase = SvgAnnotationBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextAnnotation = void 0;\r\nvar Thickness_1 = require(\"../../../Core/Thickness\");\r\nvar annotationHelpers_1 = require(\"./annotationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar SvgAnnotationBase_1 = require(\"./SvgAnnotationBase\");\r\n/**\r\n * A TextAnnotation presents text information over the chart at specific {@link X1}, {@link Y1} coordinates\r\n */\r\nvar TextAnnotation = /** @class */ (function (_super) {\r\n __extends(TextAnnotation, _super);\r\n /**\r\n * Creates an instance of the {@link TextAnnotation}\r\n * @param options The {@link ITextAnnotationOptions} which contain optional parameters\r\n */\r\n function TextAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.SVGTextAnnotation;\r\n _this.textProperty = \"DEFAULT TEXT\";\r\n _this.textColorProperty = \"#ffffff\";\r\n _this.fontSizeProperty = 14;\r\n _this.fontFamilyProperty = \"Arial\";\r\n _this.fontWeightProperty = \"Normal\";\r\n _this.paddingProperty = Thickness_1.Thickness.fromNumber(0);\r\n _this.classNameProperty = \"scichart__text-annotation\";\r\n _this.isDirty = true;\r\n _this.textProperty = (_a = options === null || options === void 0 ? void 0 : options.text) !== null && _a !== void 0 ? _a : _this.textProperty;\r\n _this.textColorProperty = (_b = options === null || options === void 0 ? void 0 : options.textColor) !== null && _b !== void 0 ? _b : _this.textColorProperty;\r\n _this.fontSizeProperty = (_c = options === null || options === void 0 ? void 0 : options.fontSize) !== null && _c !== void 0 ? _c : _this.fontSizeProperty;\r\n _this.fontFamilyProperty = (_d = options === null || options === void 0 ? void 0 : options.fontFamily) !== null && _d !== void 0 ? _d : _this.fontFamilyProperty;\r\n _this.backgroundProperty = (_e = options === null || options === void 0 ? void 0 : options.background) !== null && _e !== void 0 ? _e : _this.backgroundProperty;\r\n _this.paddingProperty = (_f = options === null || options === void 0 ? void 0 : options.padding) !== null && _f !== void 0 ? _f : _this.paddingProperty;\r\n _this.classNameProperty = (_g = options === null || options === void 0 ? void 0 : options.className) !== null && _g !== void 0 ? _g : _this.classNameProperty;\r\n _this.fontWeight = (_h = options === null || options === void 0 ? void 0 : options.fontWeight) !== null && _h !== void 0 ? _h : _this.fontWeight;\r\n return _this;\r\n }\r\n Object.defineProperty(TextAnnotation.prototype, \"text\", {\r\n /**\r\n * text provided by the user\r\n */\r\n get: function () {\r\n return this.textProperty;\r\n },\r\n set: function (text) {\r\n if (this.textProperty !== text) {\r\n this.textProperty = text;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextAnnotation.prototype, \"background\", {\r\n /**\r\n * Gets or sets the background of {@link TextAnnotation}\r\n */\r\n get: function () {\r\n return this.backgroundProperty;\r\n },\r\n /**\r\n * Gets or sets the background of {@link TextAnnotation}\r\n */\r\n set: function (value) {\r\n if (this.backgroundProperty !== value) {\r\n this.backgroundProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.BACKGROUND_COLOR);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextAnnotation.prototype, \"padding\", {\r\n /**\r\n * Gets or sets the padding of {@link TextAnnotation}\r\n */\r\n get: function () {\r\n return this.paddingProperty;\r\n },\r\n /**\r\n * Gets or sets the padding of {@link TextAnnotation}\r\n */\r\n set: function (value) {\r\n if (this.paddingProperty !== value) {\r\n this.paddingProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PADDING);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextAnnotation.prototype, \"className\", {\r\n /**\r\n * Gets or sets the class on underlying SVG element of {@link TextAnnotation}\r\n */\r\n get: function () {\r\n return this.classNameProperty;\r\n },\r\n /**\r\n * Gets or sets the class on underlying SVG element of {@link TextAnnotation}\r\n */\r\n set: function (value) {\r\n if (this.classNameProperty !== value) {\r\n this.classNameProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CLASS_NAME);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextAnnotation.prototype, \"textColor\", {\r\n /**\r\n * text color provided by the user\r\n */\r\n get: function () {\r\n return this.textColorProperty;\r\n },\r\n set: function (textColor) {\r\n if (this.textColorProperty !== textColor) {\r\n this.textColorProperty = textColor;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT_STROKE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextAnnotation.prototype, \"fontSize\", {\r\n /**\r\n * font size provided by the user\r\n */\r\n get: function () {\r\n return this.fontSizeProperty;\r\n },\r\n set: function (fontSize) {\r\n if (this.fontSizeProperty !== fontSize) {\r\n this.fontSizeProperty = fontSize;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FONT_SIZE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextAnnotation.prototype, \"fontFamily\", {\r\n /**\r\n * font family provided by the user\r\n */\r\n get: function () {\r\n return this.fontFamilyProperty;\r\n },\r\n set: function (fontFamily) {\r\n if (this.fontFamilyProperty !== fontFamily) {\r\n this.fontFamilyProperty = fontFamily;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FONT_FAMILY);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextAnnotation.prototype, \"fontWeight\", {\r\n /**\r\n * font weight provided by the user\r\n */\r\n get: function () {\r\n return this.fontWeightProperty;\r\n },\r\n set: function (fontWeight) {\r\n if (this.fontWeightProperty !== fontWeight) {\r\n this.fontWeightProperty = fontWeight;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FONT_WEIGHT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextAnnotation.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n fontFamily: this.fontFamily,\r\n fontSize: this.fontSize,\r\n fontWeight: this.fontWeight,\r\n text: this.text,\r\n textColor: this.textColor\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /**\r\n * Notifies listeners of {@link invalidateParentCallback} that a property has changed\r\n */\r\n TextAnnotation.prototype.notifyPropertyChanged = function (p) {\r\n if (p !== constants_1.PROPERTY.IS_HIDDEN &&\r\n p !== constants_1.PROPERTY.X_COORD_SHIFT &&\r\n p !== constants_1.PROPERTY.Y_COORD_SHIFT &&\r\n p !== constants_1.PROPERTY.HORIZONTAL_ANCHOR_POINT &&\r\n p !== constants_1.PROPERTY.VERTICAL_ANCHOR_POINT &&\r\n p !== constants_1.PROPERTY.X1 &&\r\n p !== constants_1.PROPERTY.X2 &&\r\n p !== constants_1.PROPERTY.Y1 &&\r\n p !== constants_1.PROPERTY.Y2) {\r\n this.isDirty = true;\r\n }\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n TextAnnotation.prototype.create = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n if (!this.isDirty && !this.isSelected) {\r\n this.calcAndSetAnnotationBorders(xCalc, yCalc);\r\n return;\r\n }\r\n if (this.svg) {\r\n this.clear();\r\n }\r\n this.setSvg(this.createSvg());\r\n this.calcAndSetAnnotationBorders(xCalc, yCalc);\r\n this.updateAdornerInner();\r\n this.isDirty = false;\r\n };\r\n TextAnnotation.prototype.createSvg = function () {\r\n var x = this.padding.left;\r\n var y = this.fontSize + this.padding.top;\r\n //dominant-baseline=\"text-after-edge\"\r\n var svgString = \"\\n \").concat(this.text, \"\\n \");\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n if (this.background) {\r\n this.attachSvgBackgroundRect(svgNode, this.background, this.padding);\r\n }\r\n return svgNode;\r\n };\r\n TextAnnotation.prototype.attachSvgBackgroundRect = function (svgRoot, background, padding) {\r\n var textAnnotationRect = svgRoot.getBoundingClientRect();\r\n var rectWidth = textAnnotationRect.width + padding.left + padding.right;\r\n var rectHeight = textAnnotationRect.height + padding.top + padding.bottom;\r\n var namespace = \"http://www.w3.org/2000/svg\";\r\n var newRect = document.createElementNS(namespace, \"rect\");\r\n newRect.setAttribute(\"x\", \"0\");\r\n newRect.setAttribute(\"y\", \"0\");\r\n newRect.setAttribute(\"width\", \"\".concat(rectWidth));\r\n newRect.setAttribute(\"height\", \"\".concat(rectHeight));\r\n newRect.setAttribute(\"fill\", \"\".concat(background));\r\n svgRoot.insertBefore(newRect, svgRoot.firstChild);\r\n };\r\n return TextAnnotation;\r\n}(SvgAnnotationBase_1.SvgAnnotationBase));\r\nexports.TextAnnotation = TextAnnotation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VerticalLineAnnotation = void 0;\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar Rect_1 = require(\"../../../Core/Rect\");\r\nvar AxisAlignment_1 = require(\"../../../types/AxisAlignment\");\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar translate_1 = require(\"../../../utils/translate\");\r\nvar Pen2DCache_1 = require(\"../../Drawing/Pen2DCache\");\r\nvar drawLabel_1 = require(\"../Helpers/drawLabel\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AnnotationBase_1 = require(\"./AnnotationBase\");\r\nvar IAnnotation_1 = require(\"./IAnnotation\");\r\nvar LineAnnotation_1 = require(\"./LineAnnotation\");\r\n/**\r\n * @summary The {@link VerticalLineAnnotation} provides an {@link AnnotationBase | Annotation} which draws a vertical line at\r\n * specific x1 (or y1 for Vertical Chart) over the {@link SciChartSurface}\r\n * @description\r\n * To add a {@link VerticalLineAnnotation} to a {@link SciChartSurface}, use the following code:\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const verticalLineAnnotation = new VerticalLineAnnotation( { x1: 1, y1: 3 fill: \"#FF000077\", stroke: \"#FF0000\"});\r\n * sciChartSurface.annotations.add(verticalLineAnnotation);\r\n * ```\r\n * @remarks Uses the fast WebGL/WebAssembly {@link WebGL2RenderingContext} for rendering\r\n */\r\nvar VerticalLineAnnotation = /** @class */ (function (_super) {\r\n __extends(VerticalLineAnnotation, _super);\r\n /**\r\n * Create an instance of a LineAnnotation\r\n * @param options Optional parameters of type {@link ILineAnnotationOptions} which configure the annotation upon construction\r\n */\r\n function VerticalLineAnnotation(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.RenderContextVerticalLineAnnotation;\r\n _this.dragOnLine = true;\r\n _this.dragOnLabel = true;\r\n if (options === null || options === void 0 ? void 0 : options.x2) {\r\n _this.x2 = options.x2;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.y2) {\r\n _this.y2 = options.y2;\r\n }\r\n _this.dragOnLine = (_a = options === null || options === void 0 ? void 0 : options.dragOnLine) !== null && _a !== void 0 ? _a : _this.dragOnLine;\r\n _this.dragOnLabel = (_b = options === null || options === void 0 ? void 0 : options.dragOnLabel) !== null && _b !== void 0 ? _b : _this.dragOnLabel;\r\n _this.verticalAlignment = (_c = options === null || options === void 0 ? void 0 : options.verticalAlignment) !== null && _c !== void 0 ? _c : _this.verticalAlignment;\r\n return _this;\r\n }\r\n Object.defineProperty(VerticalLineAnnotation.prototype, \"y2\", {\r\n /**\r\n * y2 property is not supported for VerticalLineAnnotation\r\n */\r\n get: function () {\r\n throw Error(\"y2 property is not supported for VerticalLineAnnotation\");\r\n },\r\n /**\r\n * y2 property is not supported for VerticalLineAnnotation\r\n */\r\n set: function (y2) {\r\n throw Error(\"y2 property is not supported for VerticalLineAnnotation\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(VerticalLineAnnotation.prototype, \"x2\", {\r\n /**\r\n * x2 property is not supported for VerticalLineAnnotation\r\n */\r\n get: function () {\r\n throw Error(\"x2 property is not supported for VerticalLineAnnotation\");\r\n },\r\n /**\r\n * x2 property is not supported for VerticalLineAnnotation\r\n */\r\n set: function (x2) {\r\n throw Error(\"x2 property is not supported for VerticalLineAnnotation\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n VerticalLineAnnotation.prototype.drawWithContext = function (renderContext, xCalc, yCalc, viewRect) {\r\n Guard_1.Guard.notNull(renderContext, \"renderContext\");\r\n Guard_1.Guard.notNull(xCalc, \"xCalc\");\r\n Guard_1.Guard.notNull(yCalc, \"yCalc\");\r\n var strokePen = (0, Pen2DCache_1.getWebGlPenFromCache)(this.strokePenCache);\r\n var _a = this.getDrawConfig(xCalc, yCalc), annotationCoord = _a.annotationCoord, lineAnnotationEdgeCoord = _a.lineAnnotationEdgeCoord, horizontalAxis = _a.horizontalAxis, verticalAxis = _a.verticalAxis, horizontalAxisCoordinateMode = _a.horizontalAxisCoordinateMode, verticalAxisCoordinateMode = _a.verticalAxisCoordinateMode, horizontalCoordinateCalculator = _a.horizontalCoordinateCalculator, verticalCoordinateCalculator = _a.verticalCoordinateCalculator, isAlignmentTop = _a.isAlignmentTop;\r\n if (!horizontalAxis || !verticalAxis)\r\n return;\r\n var borderY1 = viewRect.height;\r\n var borderY2 = 0;\r\n if (isAlignmentTop) {\r\n borderY1 = borderY1 = 0;\r\n borderY2 = borderY2 = viewRect.height;\r\n }\r\n var lineAnnotationEdgeCoordValue = this.getValue(lineAnnotationEdgeCoord, verticalCoordinateCalculator, verticalAxisCoordinateMode);\r\n var isPartialLine = lineAnnotationEdgeCoordValue || lineAnnotationEdgeCoordValue === 0;\r\n if (isPartialLine) {\r\n borderY2 = borderY2 = this.getY1Coordinate(xCalc, yCalc);\r\n }\r\n var borderX1 = this.getX1Coordinate(xCalc, yCalc);\r\n var borderX2 = borderX1;\r\n // console.log(\"borderX1, borderX2, borderY1, borderY2\", borderX1, borderX2, borderY1, borderY2);\r\n this.setAnnotationBorders(borderX1, borderX2, borderY1, borderY2);\r\n var lineEdgeAbsoluteVerticalCoord = this.getCoordinate(lineAnnotationEdgeCoord, verticalCoordinateCalculator, verticalAxisCoordinateMode);\r\n var absoluteHorizontalCoord = this.getCoordinate(annotationCoord, horizontalCoordinateCalculator, horizontalAxisCoordinateMode);\r\n var isAxisLabelInHorizontalVisibleRange = absoluteHorizontalCoord >= 0 &&\r\n absoluteHorizontalCoord <= horizontalAxis.parentSurface.seriesViewRect.width;\r\n var isLineAnnotationInVerticalVisibleRange = isAlignmentTop\r\n ? lineEdgeAbsoluteVerticalCoord >= 0\r\n : lineEdgeAbsoluteVerticalCoord <= verticalAxis.parentSurface.seriesViewRect.height;\r\n var isLineAnnotationEdgeVisible = !isPartialLine || isLineAnnotationInVerticalVisibleRange;\r\n if (isAxisLabelInHorizontalVisibleRange && isLineAnnotationEdgeVisible) {\r\n var textStyle = __assign(__assign({}, verticalAxis.labelStyle), { color: this.axisLabelStroke, fontSize: this.axisFontSize * DpiHelper_1.DpiHelper.PIXEL_RATIO, fontFamily: this.axisFontFamily });\r\n var labelRect = (0, drawLabel_1.drawLineAnnotation)(horizontalAxis, renderContext, this.labelPlacement, this.labelValue, borderX1, borderX2, borderY1, borderY2, textStyle, this.axisLabelFill, strokePen, viewRect, this.showLabel, this.opacity, null, this.verticalAlignment);\r\n if (labelRect) {\r\n var point1 = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(labelRect.left, labelRect.top), viewRect, true);\r\n var point2 = (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(labelRect.right, labelRect.bottom), viewRect, true);\r\n this.labelRect = Rect_1.Rect.createWithPoints(point1, point2);\r\n }\r\n }\r\n if (this.dragOnLine) {\r\n this.updateAdornerInner();\r\n }\r\n };\r\n VerticalLineAnnotation.prototype.onDragStarted = function (args) {\r\n if (this.dragOnLine) {\r\n return _super.prototype.onDragStarted.call(this, args);\r\n }\r\n if (this.dragOnLabel && this.labelRect) {\r\n if (this.clickToSelect(args)) {\r\n this.adornerDraggingPoint = AnnotationBase_1.EDraggingGripPoint.Body;\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n VerticalLineAnnotation.prototype.checkIsClickedOnAnnotationInternal = function (x, y) {\r\n if (this.dragOnLine) {\r\n if (_super.prototype.checkIsClickedOnAnnotationInternal.call(this, x, y)) {\r\n return true;\r\n }\r\n }\r\n if (this.dragOnLabel && this.labelRect) {\r\n var _a = this.labelRect, left = _a.left, top_1 = _a.top, right = _a.right, bottom = _a.bottom;\r\n // TODO not sure if this is a bug in testIsInBounds or if it's just the reversed nature of y on screen\r\n if ((0, pointUtil_1.testIsInBounds)(x, y, left, bottom, right, top_1)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * returns axis related properties accordingly to chart configuration\r\n */\r\n VerticalLineAnnotation.prototype.getDrawConfig = function (xCalc, yCalc) {\r\n var xAxisId = this.xAxisId;\r\n var xAxis = this.parentSurface.getXAxisById(xAxisId);\r\n var yAxisId = this.yAxisId;\r\n var yAxis = this.parentSurface.getYAxisById(yAxisId);\r\n var defaultChartCoordinateConfig = {\r\n annotationCoord: this.x1,\r\n lineAnnotationEdgeCoord: this.y1,\r\n horizontalAxis: xAxis,\r\n verticalAxis: yAxis,\r\n horizontalAxisCoordinateMode: this.xCoordinateMode,\r\n verticalAxisCoordinateMode: this.yCoordinateMode,\r\n horizontalCoordinateCalculator: xCalc,\r\n verticalCoordinateCalculator: yCalc,\r\n isAlignmentTop: (xAxis === null || xAxis === void 0 ? void 0 : xAxis.axisAlignment) === AxisAlignment_1.EAxisAlignment.Top\r\n };\r\n var verticalChartCoordinateConfig = {\r\n annotationCoord: this.y1,\r\n lineAnnotationEdgeCoord: this.x1,\r\n horizontalAxis: yAxis,\r\n verticalAxis: xAxis,\r\n horizontalAxisCoordinateMode: this.yCoordinateMode,\r\n verticalAxisCoordinateMode: this.xCoordinateMode,\r\n horizontalCoordinateCalculator: yCalc,\r\n verticalCoordinateCalculator: xCalc,\r\n isAlignmentTop: (yAxis === null || yAxis === void 0 ? void 0 : yAxis.axisAlignment) === AxisAlignment_1.EAxisAlignment.Top\r\n };\r\n return this.isVerticalChart ? verticalChartCoordinateConfig : defaultChartCoordinateConfig;\r\n };\r\n return VerticalLineAnnotation;\r\n}(LineAnnotation_1.LineAnnotation));\r\nexports.VerticalLineAnnotation = VerticalLineAnnotation;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.annotationHelpers = void 0;\r\n/** All svg creation is run through this funciton so it can be mocked for tests */\r\nvar createSvg = function (svgString, svgRoot, nextElement) {\r\n var svgNode = document.createRange().createContextualFragment(svgString);\r\n if (nextElement) {\r\n svgRoot.insertBefore(svgNode, nextElement);\r\n return nextElement.previousElementSibling;\r\n }\r\n svgRoot.appendChild(svgNode);\r\n return svgRoot.lastChild;\r\n};\r\nvar calcNewApex = function (x1, y1, x2, y2, isVertical) {\r\n var x1y1 = { x: x1, y: y1 };\r\n var x2y1 = isVertical ? { x: x1, y: y2 } : { x: x2, y: y1 };\r\n var x1y2 = isVertical ? { x: x2, y: y1 } : { x: x1, y: y2 };\r\n var x2y2 = { x: x2, y: y2 };\r\n return { x1y1: x1y1, x2y1: x2y1, x1y2: x1y2, x2y2: x2y2 };\r\n};\r\nexports.annotationHelpers = {\r\n createSvg: createSvg,\r\n calcNewApex: calcNewApex\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DISTANCE_TO_LINE = exports.ADORNER_GRIP_RADIUS = exports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"ADORNER_TEMPLATE\"] = \"ADORNER_TEMPLATE\";\r\n PROPERTY[\"ANNOTATION_CANVAS\"] = \"ANNOTATION_CANVAS\";\r\n PROPERTY[\"RESIZE_DIRECTIONS\"] = \"RESIZE_DIRECTIONS\";\r\n PROPERTY[\"AXIS_LABELS_FILL\"] = \"AXIS_LABELS_FILL\";\r\n PROPERTY[\"AXIS_LABELS_STROKE\"] = \"AXIS_LABELS_STROKE\";\r\n PROPERTY[\"AXIS_FONT_FAMILY\"] = \"AXIS_FONT_FAMILY\";\r\n PROPERTY[\"AXIS_FONT_SIZE\"] = \"AXIS_FONT_SIZE\";\r\n PROPERTY[\"BACKGROUND_COLOR\"] = \"BACKGROUND_COLOR\";\r\n PROPERTY[\"CLASS_NAME\"] = \"CLASS_NAME\";\r\n PROPERTY[\"COLOR\"] = \"COLOR\";\r\n PROPERTY[\"CONTAINER_BACKGROUND\"] = \"CONTAINER_BACKGROUND\";\r\n PROPERTY[\"FILL\"] = \"FILL\";\r\n PROPERTY[\"FONT_FAMILY\"] = \"FONT_FAMILY\";\r\n PROPERTY[\"FONT_SIZE\"] = \"FONT_SIZE\";\r\n PROPERTY[\"FONT_STYLE\"] = \"FONT_STYLE\";\r\n PROPERTY[\"FONT_WEIGHT\"] = \"FONT_WEIGHT\";\r\n PROPERTY[\"FORMATTED_VALUE\"] = \"FORMATTED_VALUE\";\r\n PROPERTY[\"HORIZONTAL_ANCHOR_POINT\"] = \"HORIZONTAL_ANCHOR_POINT\";\r\n PROPERTY[\"IMAGE\"] = \"IMAGE\";\r\n PROPERTY[\"IMAGE_HEIGHT\"] = \"IMAGE_HEIGHT\";\r\n PROPERTY[\"IMAGE_WIDTH\"] = \"IMAGE_WIDTH\";\r\n PROPERTY[\"IS_EDITABLE\"] = \"IS_EDITABLE\";\r\n PROPERTY[\"IS_HIDDEN\"] = \"IS_HIDDEN\";\r\n PROPERTY[\"IS_SELECTED\"] = \"IS_SELECTED\";\r\n PROPERTY[\"IS_HOVERED\"] = \"IS_HOVERED\";\r\n PROPERTY[\"LABEL_PLACEMENT\"] = \"LABEL_PLACEMENT\";\r\n PROPERTY[\"LABEL_VALUE\"] = \"LABEL_VALUE\";\r\n PROPERTY[\"MINIMUM_WIDTH\"] = \"MINIMUM_WIDTH\";\r\n PROPERTY[\"MINIMUM_HEIGHT\"] = \"MINIMUM_HEIGHT\";\r\n PROPERTY[\"OPACITY\"] = \"OPACITY\";\r\n PROPERTY[\"PADDING\"] = \"PADDING\";\r\n PROPERTY[\"PARENT_SURFACE\"] = \"PARENT_SURFACE\";\r\n PROPERTY[\"SERIES_INFO\"] = \"SERIES_INFO\";\r\n PROPERTY[\"SERIES_INFOS\"] = \"SERIES_INFOS\";\r\n PROPERTY[\"STROKE\"] = \"STROKE\";\r\n PROPERTY[\"STROKE_THICKNESS\"] = \"STROKE_THICKNESS\";\r\n PROPERTY[\"STROKE_DASH_ARRAY\"] = \"STROKE_DASH_ARRAY\";\r\n PROPERTY[\"SHOW_LABEL\"] = \"SHOW_LABEL\";\r\n PROPERTY[\"TEXT\"] = \"TEXT\";\r\n PROPERTY[\"TEXT_STROKE\"] = \"TEXT_STROKE\";\r\n PROPERTY[\"TITLE\"] = \"TITLE\";\r\n PROPERTY[\"TOOLTIP_LEGEND_OFFSET_X\"] = \"TOOLTIP_LEGEND_OFFSET_X\";\r\n PROPERTY[\"TOOLTIP_LEGEND_OFFSET_Y\"] = \"TOOLTIP_LEGEND_OFFSET_Y\";\r\n PROPERTY[\"TOOLTIP_LEGEND_TEMPLATE\"] = \"TOOLTIP_LEGEND_TEMPLATE\";\r\n PROPERTY[\"TOOLTIP_DATA_TEMPLATE\"] = \"TOOLTIP_DATA_TEMPLATE\";\r\n PROPERTY[\"TOOLTIP_SVG_TEMPLATE\"] = \"TOOLTIP_SVG_TEMPLATE\";\r\n PROPERTY[\"VERTICAL_ANCHOR_POINT\"] = \"VERTICAL_ANCHOR_POINT\";\r\n PROPERTY[\"X1\"] = \"X1\";\r\n PROPERTY[\"X2\"] = \"X2\";\r\n PROPERTY[\"XAXIS_ID\"] = \"XAXIS_ID\";\r\n PROPERTY[\"X_COORDINATE_MODE\"] = \"X_COORDINATE_MODE\";\r\n PROPERTY[\"X_COORD_SHIFT\"] = \"X_COORD_SHIFT\";\r\n PROPERTY[\"Y1\"] = \"Y1\";\r\n PROPERTY[\"Y2\"] = \"Y2\";\r\n PROPERTY[\"YAXIS_ID\"] = \"YAXIS_ID\";\r\n PROPERTY[\"Y_COORDINATE_MODE\"] = \"Y_COORDINATE_MODE\";\r\n PROPERTY[\"Y_COORD_SHIFT\"] = \"Y_COORD_SHIFT\";\r\n PROPERTY[\"PLACEMENT_DIV_ID\"] = \"PLACEMENT_DIV_ID\";\r\n PROPERTY[\"ROTATION\"] = \"ROTATION\";\r\n PROPERTY[\"ADORNER_STROKE\"] = \"ADORNER_STROKE\";\r\n PROPERTY[\"ADORNER_FILL\"] = \"ADORNER_FILL\";\r\n PROPERTY[\"ADORNER_RADIUS\"] = \"ADORNER_RADIUS\";\r\n PROPERTY[\"SELECTION_STROKE\"] = \"SELECTION_STROKE\";\r\n PROPERTY[\"SELECTION_DELTA\"] = \"SELECTION_DELTA\";\r\n PROPERTY[\"SELECTION_THICKNESS\"] = \"SELECTION_THICKNESS\";\r\n PROPERTY[\"DRAGPOINTS\"] = \"DRAGPOINTS\";\r\n PROPERTY[\"MULTILINE_ALIGNMENT\"] = \"MULTILINE_ALIGNMENT\";\r\n PROPERTY[\"WRAP_TO\"] = \"WRAP_TO\";\r\n PROPERTY[\"LINE_SPACING\"] = \"LINE_SPACING\";\r\n PROPERTY[\"SCALE\"] = \"SCALE\";\r\n PROPERTY[\"OUTLINE\"] = \"OUTLINE\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\nexports.ADORNER_GRIP_RADIUS = 10;\r\nexports.DISTANCE_TO_LINE = 10;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxisBase2D = exports.EClipMode = void 0;\r\nvar classFactory_1 = require(\"../../../Builder/classFactory\");\r\nvar EasingFunctions_1 = require(\"../../../Core/Animations/EasingFunctions\");\r\nvar NumberRangeAnimator_1 = require(\"../../../Core/Animations/NumberRangeAnimator\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar Thickness_1 = require(\"../../../Core/Thickness\");\r\nvar AxisAlignment_1 = require(\"../../../types/AxisAlignment\");\r\nvar BaseType_1 = require(\"../../../types/BaseType\");\r\nvar DefaultRenderLayer_1 = require(\"../../../types/DefaultRenderLayer\");\r\nvar LabelAlignment_1 = require(\"../../../types/LabelAlignment\");\r\nvar XyDirection_1 = require(\"../../../types/XyDirection\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar Pen2DCache_1 = require(\"../../Drawing/Pen2DCache\");\r\nvar SolidBrushCache_1 = require(\"../../Drawing/SolidBrushCache\");\r\nvar WebGlRenderContext2D_1 = require(\"../../Drawing/WebGlRenderContext2D\");\r\nvar DefaultTickCoordinatesProvider_1 = require(\"../../Numerics/TickCoordinateProviders/DefaultTickCoordinatesProvider\");\r\nvar StaticTickCoordinatesProvider_1 = require(\"../../Numerics/TickCoordinateProviders/StaticTickCoordinatesProvider\");\r\nvar createNativeRect_1 = require(\"../Helpers/createNativeRect\");\r\nvar drawBorder_1 = require(\"../Helpers/drawBorder\");\r\nvar NativeObject_1 = require(\"../Helpers/NativeObject\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar AxisCore_1 = require(\"./AxisCore\");\r\nvar AxisLayoutState_1 = require(\"./AxisLayoutState\");\r\nvar AxisRenderer_1 = require(\"./AxisRenderer\");\r\nvar AxisTitleRenderer_1 = require(\"./AxisTitleRenderer\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * Defines the clipping mode for scrolling operations found on {@link AxisBase2D.scroll}\r\n */\r\nvar EClipMode;\r\n(function (EClipMode) {\r\n /**\r\n * Do not clip when scrolling the Axis\r\n * @remarks\r\n * Use this to resolve issues such as scaling or stretching\r\n * when the user pans or scrolls outside of the range of the data.\r\n */\r\n EClipMode[EClipMode[\"None\"] = 0] = \"None\";\r\n /**\r\n * Stretch the {@link AxisBase2D.visibleRange} when scrolling past the extents of the data.\r\n */\r\n EClipMode[EClipMode[\"StretchAtExtents\"] = 1] = \"StretchAtExtents\";\r\n /**\r\n * Clips the {@link AxisBase2D.visibleRange} to not allow scrolling past the minimum of the Axis range\r\n */\r\n EClipMode[EClipMode[\"ClipAtMin\"] = 2] = \"ClipAtMin\";\r\n /**\r\n * Clips the {@link AxisBase2D.visibleRange} to not allow scrolling past the maximum of the Axis range\r\n */\r\n EClipMode[EClipMode[\"ClipAtMax\"] = 3] = \"ClipAtMax\";\r\n /**\r\n * Clips the {@link AxisBase2D.visibleRange} to not allow scrolling past the minimum or maximum of the Axis range\r\n */\r\n EClipMode[EClipMode[\"ClipAtExtents\"] = 4] = \"ClipAtExtents\";\r\n})(EClipMode = exports.EClipMode || (exports.EClipMode = {}));\r\n/**\r\n * The base class for 2D Chart Axis within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}.\r\n * @description\r\n * AxisBase2D is a base class for both 2D Axis types in SciChart. Concrete types include:\r\n *\r\n * - {@link NumericAxis}: a Numeric 2D value-axis\r\n * - {@link CategoryAxis}: A category 2D axis used for stock chart applications\r\n *\r\n * Set axis on the {@link SciChartSurface.xAxes} or {@link SciChartSurface.yAxes} collections in 2D Charts.\r\n */\r\nvar AxisBase2D = /** @class */ (function (_super) {\r\n __extends(AxisBase2D, _super);\r\n /**\r\n * Creates an instance of the {@link AxisBase2D}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IAxisBase2dOptions} used to configure the axis at instantiation time\r\n */\r\n function AxisBase2D(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n _this = _super.call(this, options) || this;\r\n /**\r\n * Gets the {@link AxisLayoutState} class which manages layout\r\n */\r\n _this.axisLayoutState = new AxisLayoutState_1.AxisLayoutState();\r\n _this.getlabelStyleProxy = function (newStyle) {\r\n return new Proxy(newStyle, {\r\n set: function (target, key, value) {\r\n //@ts-ignore\r\n target[key] = value;\r\n _this.notifyPropertyChanged(constants_1.PROPERTY.TEXT_STYLE);\r\n _this.dpiAdjustedLabelStyleCache = undefined;\r\n return true;\r\n }\r\n });\r\n };\r\n _this.labelStyleProperty = _this.getlabelStyleProxy({\r\n fontSize: 14,\r\n fontFamily: \"Arial\",\r\n color: SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.tickTextBrush,\r\n fontWeight: \"normal\",\r\n fontStyle: \"normal\",\r\n padding: Thickness_1.Thickness.fromString(\"2 4 2 4\"),\r\n alignment: LabelAlignment_1.ELabelAlignment.Auto\r\n });\r\n _this.isInnerAxisProperty = false;\r\n _this.isPrimaryAxisProperty = false;\r\n _this.axisBorderProperty = {\r\n borderBottom: 0,\r\n borderLeft: 0,\r\n borderRight: 0,\r\n borderTop: 0,\r\n color: SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.axisBorder,\r\n border: 0\r\n };\r\n _this.offsetProperty = 0;\r\n _this.offsetOverrideProperty = undefined;\r\n _this.tickCache = undefined;\r\n _this.clipToXRangeProperty = true;\r\n _this.isStaticAxisProperty = false;\r\n _this.webAssemblyContext2D = webAssemblyContext;\r\n _this.penCacheForMajorGridLines = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.penCacheForMinorGridLines = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.penCacheForMajorTickLines = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.penCacheForMinorTickLines = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.solidBrushCacheAxisBands = new SolidBrushCache_1.SolidBrushCache(webAssemblyContext);\r\n _this.solidBrushCacheAxisBackground = new SolidBrushCache_1.SolidBrushCache(webAssemblyContext);\r\n _this.axisRenderer = new AxisRenderer_1.AxisRenderer(webAssemblyContext);\r\n _this.axisRenderer.keepLabelsWithinAxis =\r\n (_a = options === null || options === void 0 ? void 0 : options.keepLabelsWithinAxis) !== null && _a !== void 0 ? _a : _this.axisRenderer.keepLabelsWithinAxis;\r\n _this.axisRenderer.hideOverlappingLabels =\r\n (_b = options === null || options === void 0 ? void 0 : options.hideOverlappingLabels) !== null && _b !== void 0 ? _b : _this.axisRenderer.hideOverlappingLabels;\r\n _this.axisRenderer.axisThickness = (_c = options === null || options === void 0 ? void 0 : options.axisThickness) !== null && _c !== void 0 ? _c : _this.axisRenderer.axisThickness;\r\n _this.axisTitleRenderer = new AxisTitleRenderer_1.AxisTitleRenderer(webAssemblyContext);\r\n _this.isStaticAxis = (_d = options === null || options === void 0 ? void 0 : options.isStaticAxis) !== null && _d !== void 0 ? _d : _this.isStaticAxisProperty;\r\n // setting isStaticAxis sets the tickCoordinatesProvider\r\n //this.tickCoordinatesProvider = new DefaultTickCoordinatesProvider();\r\n _this.visibleRangeLimit = (_e = options === null || options === void 0 ? void 0 : options.visibleRangeLimit) !== null && _e !== void 0 ? _e : _this.visibleRangeLimit;\r\n _this.visibleRangeSizeLimit = (_f = options === null || options === void 0 ? void 0 : options.visibleRangeSizeLimit) !== null && _f !== void 0 ? _f : _this.visibleRangeSizeLimit;\r\n _this.zoomExtentsRange = (options === null || options === void 0 ? void 0 : options.zoomExtentsToInitialRange) ? _this.visibleRange : options === null || options === void 0 ? void 0 : options.zoomExtentsRange;\r\n _this.axisAlignment = (_g = options === null || options === void 0 ? void 0 : options.axisAlignment) !== null && _g !== void 0 ? _g : _this.axisAlignment;\r\n _this.axisTitle = (_h = options === null || options === void 0 ? void 0 : options.axisTitle) !== null && _h !== void 0 ? _h : _this.axisTitle;\r\n _this.labelStyle = _this.getlabelStyleProxy(__assign(__assign({}, _this.labelStyle), options === null || options === void 0 ? void 0 : options.labelStyle));\r\n _this.axisBorder = __assign(__assign({}, _this.axisBorder), options === null || options === void 0 ? void 0 : options.axisBorder);\r\n _this.isInnerAxis = (_j = options === null || options === void 0 ? void 0 : options.isInnerAxis) !== null && _j !== void 0 ? _j : _this.isInnerAxis;\r\n _this.stackedAxisLength = (_k = options === null || options === void 0 ? void 0 : options.stackedAxisLength) !== null && _k !== void 0 ? _k : _this.stackedAxisLength;\r\n _this.solidBrushCacheBorder = new SolidBrushCache_1.SolidBrushCache(webAssemblyContext);\r\n if (options === null || options === void 0 ? void 0 : options.labelProvider) {\r\n if (!(\"getLabels\" in (options === null || options === void 0 ? void 0 : options.labelProvider))) {\r\n options.labelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.LabelProvider, options.labelProvider.type, webAssemblyContext, options.labelProvider.options);\r\n }\r\n }\r\n _this.autoRangeAnimationProperty = options === null || options === void 0 ? void 0 : options.autoRangeAnimation;\r\n _this.backgroundColor = (_l = options === null || options === void 0 ? void 0 : options.backgroundColor) !== null && _l !== void 0 ? _l : _this.backgroundColor;\r\n _this.offsetOverrideProperty = options === null || options === void 0 ? void 0 : options.overrideOffset; // undefined if not set\r\n _this.clipToXRangeProperty = (_m = options === null || options === void 0 ? void 0 : options.clipToXRange) !== null && _m !== void 0 ? _m : _this.clipToXRange;\r\n return _this;\r\n }\r\n Object.defineProperty(AxisBase2D.prototype, \"labelProvider\", {\r\n /**\r\n * Gets or sets a {@link LabelProviderBase2D} - a class which is responsible for formatting axis labels and cursor labels from numeric values\r\n */\r\n get: function () {\r\n return this.labelProviderProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link LabelProviderBase2D} - a class which is responsible for formatting axis labels and cursor labels from numeric values\r\n */\r\n set: function (labelProvider) {\r\n var _a;\r\n // TODO This duplicates logic in AxisCore.\r\n // Probably we could consider proper generics used for the inheritance to omit the duplication\r\n (_a = this.labelProviderProperty) === null || _a === void 0 ? void 0 : _a.detachedFromAxis();\r\n this.labelProviderProperty = labelProvider;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"axisRenderer\", {\r\n /**\r\n * Gets the {@link AxisRenderer} instance responsible for drawing the axis\r\n */\r\n get: function () {\r\n return this.axisRendererProperty;\r\n },\r\n /**\r\n * Sets the {@link AxisRenderer} instance responsible for drawing the axis\r\n */\r\n set: function (axisRenderer) {\r\n this.axisRendererProperty = axisRenderer;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_RENDERER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"isHorizontalAxis\", {\r\n /**\r\n * Gets whether the axis is currently horizontal or not\r\n */\r\n get: function () {\r\n return (0, AxisAlignment_1.getIsHorizontal)(this.axisAlignment);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"isAxisFlipped\", {\r\n /**\r\n * Gets whether the axis is flipped or not\r\n */\r\n get: function () {\r\n if (this.isXAxis) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"axisAlignment\", {\r\n /**\r\n * Gets or sets the Axis Alignment. See {@link EAxisAlignment} for a list of values\r\n * @remarks use this property to set whether the axis is on the Left, Right, Bottom Top of the chart.\r\n * SciChart also supports XAxis on the left and YAxis on the top to rotate / create vertical charts.\r\n */\r\n get: function () {\r\n return this.axisAlignmentProperty;\r\n },\r\n /**\r\n * Gets or sets the Axis Alignment. See {@link EAxisAlignment} for a list of values\r\n * @remarks use this property to set whether the axis is on the Left, Right, Bottom Top of the chart.\r\n * SciChart also supports XAxis on the left and YAxis on the top to rotate / create vertical charts.\r\n */\r\n set: function (axisAlignment) {\r\n if (this.axisAlignmentProperty !== axisAlignment) {\r\n this.axisAlignmentProperty = axisAlignment;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_ALIGNMENT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"visibleRangeLimit\", {\r\n /**\r\n * Gets or sets a property which limits {@link AxisCore.visibleRange}, meaning the chart cannot autorange outside that range\r\n */\r\n get: function () {\r\n return this.visibleRangeLimitProperty;\r\n },\r\n set: function (visibleRangeLimit) {\r\n if (!NumberRange_1.NumberRange.areEqual(this.visibleRangeLimitProperty, visibleRangeLimit)) {\r\n this.visibleRangeLimitProperty = visibleRangeLimit;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VISIBLE_RANGE_LIMIT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"visibleRangeSizeLimit\", {\r\n /**\r\n * Gets or sets a property which limits the size of {@link AxisCore.visibleRange}, meaning that the inequality must hold\r\n * visibleRangeSizeLimit.min <= visibleRange.max - visiblerRange.min <= visibleRangeSizeLimit.max\r\n */\r\n get: function () {\r\n return this.visibleRangeSizeLimitProperty;\r\n },\r\n set: function (value) {\r\n if (!NumberRange_1.NumberRange.areEqual(this.visibleRangeSizeLimitProperty, value)) {\r\n if (value.min < 0)\r\n throw Error(\"visibleRangeSizeLimit min value must be more or equal 0\");\r\n if (value.min >= value.max)\r\n throw Error(\"visibleRangeSizeLimit min value must be less than max value\");\r\n this.visibleRangeSizeLimitProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VISIBLE_RANGE_SIZE_LIMIT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"zoomExtentsRange\", {\r\n /**\r\n * Gets or sets a property which, if it is set, will be used as the range when zooming extents, rather than the data max range\r\n */\r\n get: function () {\r\n return this.zoomExtentsRangeProperty;\r\n },\r\n /**\r\n * Gets or sets a property which, if it is set, will be used as the range when zooming extents, rather than the data max range\r\n */\r\n set: function (zoomExtentsRange) {\r\n if (!NumberRange_1.NumberRange.areEqual(this.zoomExtentsRangeProperty, zoomExtentsRange)) {\r\n this.zoomExtentsRangeProperty = zoomExtentsRange;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ZOOMEXTENTS_RANGE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"isInnerAxis\", {\r\n /**\r\n * Gets or sets whether this axis is placed inside the chart viewport\r\n * @remarks Center axis uses inner layout strategy\r\n */\r\n get: function () {\r\n return this.isInnerAxisProperty;\r\n },\r\n /**\r\n * Gets or sets whether this axis is placed inside the chart viewport\r\n * @remarks Center axis uses inner layout strategy\r\n */\r\n set: function (value) {\r\n if (this.isInnerAxisProperty !== value) {\r\n this.isInnerAxisProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_INNER_AXIS);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"isPrimaryAxis\", {\r\n /**\r\n * Gets or sets whether this axis is the Primary axis on the chart\r\n * @remarks In SciChart 2D Charts, multiple X,Y Axis are supported.\r\n * The primary axis is the one which draws the gridlines. By default, this is the first axis in the collection\r\n */\r\n get: function () {\r\n return this.isPrimaryAxisProperty;\r\n },\r\n /**\r\n * Gets or sets whether this axis is the Primary axis on the chart\r\n * @remarks In SciChart 2D Charts, multiple X,Y Axis are supported.\r\n * The primary axis is the one which draws the gridlines. By default, this is the first axis in the collection\r\n */\r\n set: function (value) {\r\n var _this = this;\r\n if (this.isPrimaryAxisProperty !== value) {\r\n this.isPrimaryAxisProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_PRIMARY_AXIS);\r\n }\r\n if (value && !this.isStackedAxis) {\r\n var axes = this.isXAxis ? this.parentSurface.xAxes : this.parentSurface.yAxes;\r\n axes.asArray().forEach(function (a) {\r\n if (a !== _this && !a.isStackedAxis) {\r\n a.isPrimaryAxis = false;\r\n }\r\n });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"isStackedAxis\", {\r\n /** Internal Use. Gets or Sets if this axis is stacked\r\n * This is only used to allow multiple primary axes, so that all stacked axes can draw gridlines\r\n */\r\n get: function () {\r\n var layoutStrategy = this.parentSurface.layoutManager.getAxisLayoutStrategy(this.axisAlignment, this.isInnerAxis);\r\n return layoutStrategy.isStacked;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"backgroundColor\", {\r\n /**\r\n * Gets the background color of separate Axis\r\n */\r\n get: function () {\r\n return this.backgroundColorProperty;\r\n },\r\n /**\r\n * Sets the background color of separate Axis\r\n */\r\n set: function (value) {\r\n this.backgroundColorProperty = value;\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"stackedAxisLength\", {\r\n /** Gets or sets the length of a stacked axis as an absolute number or percentage, e.g. 100, or \"30%\".\r\n * A plain number will be interpreted as a number of pixels.\r\n * A number with % will take that percentage of the total length.\r\n * Stacked axes without a defined length will have the remaining unreserved spaced split between them.\r\n * @remarks The axis length doesn't include border sizes\r\n */\r\n get: function () {\r\n return this.stackedAxisLengthProperty;\r\n },\r\n /** Gets or sets the length of a stacked axis as an absolute number or percentage, e.g. 100, or \"30%\".\r\n * A plain number will be interpreted as a number of pixels.\r\n * A number with % will take that percentage of the total length.\r\n * Stacked axes without a defined length will have the remaining unreserved spaced split between them.\r\n * @remarks The axis length doesn't include border sizes\r\n */\r\n set: function (value) {\r\n if (this.stackedAxisLengthProperty !== value) {\r\n this.stackedAxisLengthProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_LENGTH);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"axisLength\", {\r\n /**\r\n * Called internally - Gets or sets the length the current Axis. E.g. width of horizontal axis or height of vertical axis.\r\n */\r\n get: function () {\r\n var _a, _b;\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n if (!seriesViewRect) {\r\n return (_a = this.axisLengthProperty) !== null && _a !== void 0 ? _a : 0;\r\n }\r\n var defaultAxisLength = this.isHorizontalAxis ? seriesViewRect.width : seriesViewRect.height;\r\n return (_b = this.axisLengthProperty) !== null && _b !== void 0 ? _b : defaultAxisLength;\r\n },\r\n set: function (value) {\r\n if (this.axisLengthProperty !== value) {\r\n this.axisLengthProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_LENGTH);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"offset\", {\r\n /**\r\n * Gets or sets the offset of the axis position.\r\n * Defines a position of the axis along the layout flow.\r\n */\r\n get: function () {\r\n var _a;\r\n return (_a = this.offsetOverrideProperty) !== null && _a !== void 0 ? _a : this.offsetProperty;\r\n },\r\n /**\r\n * Called internally by layout strategies when switching between stacked and non-stacked axes.\r\n * If you want to set a manual offset, call {@link overrideOffset}\r\n */\r\n set: function (value) {\r\n if (this.offsetProperty !== value) {\r\n this.offsetProperty = value;\r\n if (this.offsetOverrideProperty === undefined) {\r\n this.clearCoordCalcCache();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.OFFSET);\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * set an offset value that overrides the one used by layout calculation\r\n */\r\n AxisBase2D.prototype.overrideOffset = function (value) {\r\n if (this.offsetOverrideProperty !== value) {\r\n this.offsetOverrideProperty = value;\r\n this.clearCoordCalcCache();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.OFFSET);\r\n }\r\n };\r\n Object.defineProperty(AxisBase2D.prototype, \"isVerticalChart\", {\r\n /**\r\n * Gets whether the parent {@link SciChartSurface} is a vertical chart, when the XAxis is on the Left or Right,\r\n * and YAxis is on the Top or Bottom\r\n */\r\n get: function () {\r\n if (this.isXAxis) {\r\n return !![AxisAlignment_1.EAxisAlignment.Left, AxisAlignment_1.EAxisAlignment.Right].includes(this.axisAlignment);\r\n }\r\n else {\r\n return !![AxisAlignment_1.EAxisAlignment.Top, AxisAlignment_1.EAxisAlignment.Bottom].includes(this.axisAlignment);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"dpiAdjustedLabelStyle\", {\r\n /**\r\n * Gets the {@link labelStyle} adjusted for current DPI / Browser zoom level\r\n */\r\n get: function () {\r\n if (!this.dpiAdjustedLabelStyleCache) {\r\n this.dpiAdjustedLabelStyleCache = DpiHelper_1.DpiHelper.adjustTextStyle(this.labelStyleProperty);\r\n }\r\n return this.dpiAdjustedLabelStyleCache;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"labelStyle\", {\r\n /**\r\n * Gets or sets a {@link TTextStyle} object for styling axis labels\r\n */\r\n get: function () {\r\n return this.labelStyleProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link TTextStyle} object for styling axis labels\r\n */\r\n set: function (textStyle) {\r\n var newStyle = __assign(__assign({}, this.labelStyle), textStyle);\r\n this.labelStyleProperty = this.getlabelStyleProxy(newStyle);\r\n // Notify here as well since we are replacing the whole property\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT_STYLE);\r\n this.dpiAdjustedLabelStyleCache = undefined;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"axisBorder\", {\r\n /**\r\n * Gets or sets the Axis Border properties\r\n */\r\n get: function () {\r\n return this.axisBorderProperty;\r\n },\r\n /**\r\n * Gets or sets the Axis Border properties\r\n */\r\n set: function (border) {\r\n var _a, _b, _c, _d, _e, _f;\r\n this.axisBorder.borderTop = (_a = border.borderTop) !== null && _a !== void 0 ? _a : this.axisBorder.borderTop;\r\n this.axisBorder.borderLeft = (_b = border.borderLeft) !== null && _b !== void 0 ? _b : this.axisBorder.borderLeft;\r\n this.axisBorder.borderBottom = (_c = border.borderBottom) !== null && _c !== void 0 ? _c : this.axisBorder.borderBottom;\r\n this.axisBorder.borderRight = (_d = border.borderRight) !== null && _d !== void 0 ? _d : this.axisBorder.borderRight;\r\n this.axisBorder.border = (_e = border.border) !== null && _e !== void 0 ? _e : this.axisBorder.border;\r\n this.axisBorder.color = (_f = border.color) !== null && _f !== void 0 ? _f : this.axisBorder.color;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.BORDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"autoRangeAnimation\", {\r\n /**\r\n * Gets or sets a {@link IAutoRangeAnimationOptions} object that controls if and how the visible range is animated during autoRanging\r\n */\r\n get: function () {\r\n return this.autoRangeAnimationProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link IAutoRangeAnimationOptions} object that controls if and how the visible range is animated during autoRanging\r\n */\r\n set: function (autoRangeAnimation) {\r\n this.autoRangeAnimationProperty = __assign(__assign({}, this.autoRangeAnimation), autoRangeAnimation);\r\n // No need to trigger a redraw. This will take effect anyway if the chart redraws.\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"clipToXRange\", {\r\n /**\r\n * For an X Axis only - Determines whether the series will be clipped to the {@link visibleRange}. Defaults true.\r\n * You may want to set this false if you have stacked horizontal axes, or are using {@link offsetOverride}.\r\n */\r\n get: function () {\r\n return this.clipToXRangeProperty;\r\n },\r\n /**\r\n * For an X Axis only - Determines whether the series will be clipped to the {@link visibleRange}. Defaults true.\r\n * You may want to set this false if you have stacked horizontal axes, or are using {@link offsetOverride}.\r\n */\r\n set: function (clipToXRange) {\r\n if (this.clipToXRangeProperty !== clipToXRange) {\r\n this.clipToXRangeProperty = clipToXRange;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_ONLY_WITHIN_XRANGE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase2D.prototype, \"isStaticAxis\", {\r\n /**\r\n * Gets whether the gridlines and axis labels keep their initial position when the visible range changes.\r\n */\r\n get: function () {\r\n return this.isStaticAxisProperty;\r\n },\r\n /**\r\n * Sets whether the gridlines and axis labels keep their initial position when the visible range changes.\r\n */\r\n set: function (value) {\r\n this.isStaticAxisProperty = value;\r\n if (value) {\r\n this.tickCoordinatesProvider = new StaticTickCoordinatesProvider_1.StaticTickCoordinatesProvider();\r\n }\r\n else {\r\n this.tickCoordinatesProvider = new DefaultTickCoordinatesProvider_1.DefaultTickCoordinatesProvider();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n AxisBase2D.prototype.applyTheme = function (themeProvider) {\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.axisBandsFill === previousThemeProvider.axisBandsFill) {\r\n this.axisBandsFill = themeProvider.axisBandsFill;\r\n }\r\n if (this.labelStyle.color === previousThemeProvider.tickTextBrush) {\r\n this.labelStyle = { color: themeProvider.tickTextBrush };\r\n }\r\n if (this.minorGridLineStyle.color === previousThemeProvider.minorGridLineBrush) {\r\n this.minorGridLineStyle = { color: themeProvider.minorGridLineBrush };\r\n }\r\n if (this.majorGridLineStyle.color === previousThemeProvider.majorGridLineBrush) {\r\n this.majorGridLineStyle = { color: themeProvider.majorGridLineBrush };\r\n }\r\n if (this.minorTickLineStyle.color === previousThemeProvider.minorGridLineBrush) {\r\n this.minorTickLineStyle = { color: themeProvider.minorGridLineBrush };\r\n }\r\n if (this.majorTickLineStyle.color === previousThemeProvider.majorGridLineBrush) {\r\n this.majorTickLineStyle = { color: themeProvider.majorGridLineBrush };\r\n }\r\n if (this.axisTitleStyle.color === previousThemeProvider.axisTitleColor) {\r\n this.axisTitleStyle = { color: themeProvider.axisTitleColor };\r\n }\r\n };\r\n /**\r\n * Called when the {@link AxisBase2D} is attached to an {@link SciChartSurface}\r\n */\r\n AxisBase2D.prototype.onAttach = function (parentSurface, isXAxis, isPrimaryAxis) {\r\n this.parentSurface = parentSurface;\r\n this.axisTitleRenderer.parentSurface = parentSurface;\r\n this.setIsXAxis(isXAxis);\r\n this.isPrimaryAxisProperty = isPrimaryAxis;\r\n };\r\n /**\r\n * Called when the {@link AxisBase2D} is detached from an {@link SciChartSurface}\r\n */\r\n AxisBase2D.prototype.onDetach = function () {\r\n this.parentSurface = undefined;\r\n this.isPrimaryAxisProperty = false;\r\n this.invalidateParentCallback = undefined;\r\n };\r\n /**\r\n * Called internally - measures the axis as part of the layout phase\r\n */\r\n AxisBase2D.prototype.measure = function () {\r\n // TODO: updateTickProvider, updateLabelProvider\r\n // TODO: measure for category axes\r\n if (this.isVisible) {\r\n var majorTickLabels = this.getTicks(true).majorTickLabels;\r\n var drawTicks = this.drawMinorTickLines || this.drawMajorTickLines;\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"Measure. fontSize: \".concat(this.labelStyle.fontSize, \", dpiAdjusted: \").concat(this.dpiAdjustedLabelStyle.fontSize));\r\n }\r\n this.axisRenderer.measure(this.isHorizontalAxis, this.dpiAdjustedLabelStyle, majorTickLabels, this.getTicksMaxSize(), this.labelProvider, this.drawLabels, drawTicks);\r\n this.axisTitleRenderer.measure(this.axisTitle, this.dpiAdjustedAxisTitleStyle, this.axisAlignment);\r\n }\r\n else {\r\n this.axisRenderer.desiredHeight = 0;\r\n this.axisRenderer.desiredWidth = 0;\r\n this.axisTitleRenderer.desiredHeight = 0;\r\n this.axisTitleRenderer.desiredWidth = 0;\r\n }\r\n this.isMeasured = true;\r\n };\r\n /**\r\n * called internally - allow axis to respond to dpi changes\r\n */\r\n AxisBase2D.prototype.onDpiChanged = function () {\r\n this.dpiAdjustedLabelStyleCache = undefined;\r\n };\r\n /**\r\n * Called internally - prepares render data before a draw operation\r\n */\r\n AxisBase2D.prototype.prepareRenderData = function () {\r\n this.getCurrentCoordinateCalculator();\r\n };\r\n AxisBase2D.prototype.getCurrentCoordinateCalculator = function () {\r\n var coordCalc = _super.prototype.getCurrentCoordinateCalculator.call(this);\r\n return coordCalc;\r\n };\r\n /**\r\n * Called internally - draws the current axis using the {@link WebGL2RenderingContext}\r\n */\r\n AxisBase2D.prototype.draw = function (renderContext) {\r\n var _this = this;\r\n if (!this.getIsValidForDrawing()) {\r\n return;\r\n }\r\n // Draw the Axis borders\r\n var axisBordersLayer = (0, WebGlRenderContext2D_1.calculateAbsoluteRenderLayer)(this.parentSurface.layersOffset, this.parentSurface.stepBetweenLayers, DefaultRenderLayer_1.EDefaultRenderLayer.AxisBordersLayer);\r\n renderContext.enqueueLayeredDraw(function () {\r\n (0, drawBorder_1.drawBorder)(renderContext, _this.webAssemblyContext2D, _this.solidBrushCacheBorder, _this.viewRect, _this.axisBorder.borderLeft, _this.axisBorder.borderTop, _this.axisBorder.borderRight, _this.axisBorder.borderBottom, _this.axisBorder.color);\r\n }, axisBordersLayer);\r\n var tickObject = this.getTicksWithCoords();\r\n var minorGridStyle = this.minorGridLineStyle;\r\n var majorGridStyle = this.majorGridLineStyle;\r\n var minorTickStyle = this.minorTickLineStyle;\r\n var majorTickStyle = this.majorTickLineStyle;\r\n var penForMinorGridlines = getPenForLines(this.penCacheForMinorGridLines, minorGridStyle.color, minorGridStyle.strokeThickness, minorGridStyle.strokeDashArray);\r\n var penForMajorGridlines = getPenForLines(this.penCacheForMajorGridLines, majorGridStyle.color, majorGridStyle.strokeThickness, majorGridStyle.strokeDashArray);\r\n var penForMinorTickLines = getPenForLines(this.penCacheForMinorTickLines, minorTickStyle.color, minorTickStyle.strokeThickness);\r\n var penForMajorTickLines = getPenForLines(this.penCacheForMajorTickLines, majorTickStyle.color, majorTickStyle.strokeThickness);\r\n // TODO HERE\r\n // pass tick pens to drawTicks, and then adjust this function to draw ticks as well as gridlines\r\n if (this.isPrimaryAxis) {\r\n // Draw axes and gridlines\r\n this.drawAxisBandsAndGridLines(renderContext, tickObject, penForMinorGridlines, penForMajorGridlines);\r\n }\r\n var axisLayer = (0, WebGlRenderContext2D_1.calculateAbsoluteRenderLayer)(this.parentSurface.layersOffset, this.parentSurface.stepBetweenLayers, DefaultRenderLayer_1.EDefaultRenderLayer.AxesLayer);\r\n // make sure axes is drawn at the last stage\r\n renderContext.enqueueLayeredDraw(function () {\r\n // Draw background\r\n if (_this.backgroundColorProperty) {\r\n var viewAxisRect = _this.axisRenderer.viewRect;\r\n var viewTitleRect = _this.axisTitleRenderer.viewRect;\r\n var brush = _this.solidBrushCacheAxisBackground.newBrush(_this.backgroundColorProperty, false);\r\n var nativeAxisRect = void 0;\r\n // Empty space covering for axis coloring\r\n // let shift: number = 0;\r\n // let additionalSize: number = 0;\r\n // if (this.isHorizontalAxis) {\r\n // this.parentSurface.yAxes.asArray().forEach((yAxis: AxisBase2D, index: number) => {\r\n // const size: number = yAxis.axisRenderer.viewAxisRect.width + yAxis.axisTitleRenderer.viewAxisRect.width;\r\n // if (index === 0) {\r\n // shift += size;\r\n // } else {\r\n // additionalSize += size;\r\n // }\r\n // });\r\n // nativeAxisRect = createNativeRect(this.webAssemblyContext2D, 0 - shift, 0, viewAxisRect.width + additionalSize, viewAxisRect.height);\r\n // nativeTitleRect = createNativeRect(this.webAssemblyContext2D, 0 - shift, 0, viewTitleRect.width + additionalSize, viewTitleRect.height);\r\n // } else {\r\n // this.parentSurface.xAxes.asArray().forEach((xAxis: AxisBase2D, index: number) => {\r\n // const size: number = xAxis.axisRenderer.viewAxisRect.height + xAxis.axisTitleRenderer.viewAxisRect.height;\r\n // if (index === 0) {\r\n // shift += size;\r\n // } else {\r\n // additionalSize += size;\r\n // }\r\n // });\r\n // nativeAxisRect = createNativeRect(this.webAssemblyContext2D, 0, 0 - shift, viewAxisRect.width, viewAxisRect.height + additionalSize);\r\n // nativeTitleRect = createNativeRect(this.webAssemblyContext2D, 0, 0 - shift, viewTitleRect.width, viewTitleRect.height + additionalSize);\r\n // }\r\n nativeAxisRect = (0, createNativeRect_1.createNativeRect)(_this.webAssemblyContext2D, 0, 0, _this.viewRect.width, _this.viewRect.height);\r\n if (nativeAxisRect) {\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(_this.webAssemblyContext2D);\r\n vecRects.push_back(nativeAxisRect);\r\n renderContext.drawRects(vecRects, brush, _this.viewRect.x, _this.viewRect.y);\r\n }\r\n }\r\n // Draw axis labels\r\n if (_this.drawLabels) {\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"Draw. fontSize: \".concat(_this.labelStyle.fontSize, \", dpiAdjusted: \").concat(_this.dpiAdjustedLabelStyle.fontSize));\r\n }\r\n _this.axisRenderer.drawLabels(renderContext, _this.axisAlignment, _this.isInnerAxis, tickObject.majorTickLabels, tickObject.majorTickCoords, _this.offset, _this.dpiAdjustedLabelStyle, _this.isVerticalChart, _this.flippedCoordinates, _this.labelProvider);\r\n }\r\n // Draw ticks\r\n if (_this.drawMinorTickLines) {\r\n _this.axisRenderer.drawTicks(renderContext, _this.axisAlignment, _this.isInnerAxis, tickObject.minorTickCoords, _this.offset, penForMinorTickLines, minorTickStyle);\r\n }\r\n if (_this.drawMajorTickLines) {\r\n _this.axisRenderer.drawTicks(renderContext, _this.axisAlignment, _this.isInnerAxis, tickObject.majorTickCoords, _this.offset, penForMajorTickLines, majorTickStyle);\r\n }\r\n // Draw axis title\r\n _this.axisTitleRenderer.draw(renderContext);\r\n if (_this.labelProvider.useNativeText && _this.parentSurface.renderNativeAxisLabelsImmediately) {\r\n renderContext.endFonts(true);\r\n }\r\n }, axisLayer);\r\n };\r\n /**\r\n * Function to draw axis areas with red color\r\n * @param renderContext\r\n */\r\n AxisBase2D.prototype.drawDebug = function (renderContext) {\r\n var _this = this;\r\n this.axisRenderer.drawDebug = true;\r\n var drawTickViewRects = function () {\r\n var viewRect = _this.axisRenderer.viewRect;\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(_this.webAssemblyContext2D);\r\n var brush = new _this.webAssemblyContext2D.SCRTSolidBrush((0, parseColor_1.parseColorToUIntArgb)(\"rgba(255,0,0,0.7)\"), false);\r\n var nativeRect = (0, createNativeRect_1.createNativeRect)(_this.webAssemblyContext2D, 0, 0, viewRect.width, viewRect.height);\r\n vecRects.push_back(nativeRect);\r\n renderContext.drawRects(vecRects, brush, viewRect.left, viewRect.top);\r\n brush.delete();\r\n };\r\n drawTickViewRects();\r\n var drawTitleViewRects = function () {\r\n var viewRect = _this.axisTitleRenderer.viewRect;\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(_this.webAssemblyContext2D);\r\n var brush = new _this.webAssemblyContext2D.SCRTSolidBrush((0, parseColor_1.parseColorToUIntArgb)(\"rgba(0,255,0,0.7)\"), false);\r\n var nativeRect = (0, createNativeRect_1.createNativeRect)(_this.webAssemblyContext2D, 0, 0, viewRect.width, viewRect.height);\r\n vecRects.push_back(nativeRect);\r\n renderContext.drawRects(vecRects, brush, viewRect.left, viewRect.top);\r\n brush.delete();\r\n };\r\n drawTitleViewRects();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n AxisBase2D.prototype.getDefaultNonZeroRange = function () {\r\n return new NumberRange_1.NumberRange(0, 10);\r\n };\r\n /**\r\n * @Summary Part of AutoRanging - Gets the maximum range on this axis\r\n * @description The getMaximumRange function computes the {@link visibleRange} min and max that this axis must\r\n * have to display all the data in the chart.\r\n */\r\n AxisBase2D.prototype.getMaximumRange = function () {\r\n if (this.zoomExtentsRange) {\r\n return this.zoomExtentsRange;\r\n }\r\n var maximumRange;\r\n if (this.parentSurface && this.parentSurface.renderableSeries.size() > 0) {\r\n maximumRange = this.isXAxis ? this.getMaxXRange() : this.getWindowedYRange(undefined);\r\n }\r\n var currentVisibleRange = this.visibleRange || this.getDefaultNonZeroRange();\r\n return maximumRange || currentVisibleRange;\r\n };\r\n /**\r\n * @summary Part of AutoRanging - gets the windowed maximum range for Y-Axes\r\n * @description Returns the max range only for that axis (by the data-series on it),\r\n * based on associated XAxis visible range of series on the same axis\r\n * @param xRanges (optional) if provided, we use previously calculated XAxis ranges\r\n * keyed by AxisId rather than calculate them again\r\n */\r\n AxisBase2D.prototype.getWindowedYRange = function (xRanges) {\r\n var _this = this;\r\n if (this.zoomExtentsRange) {\r\n return this.zoomExtentsRange;\r\n }\r\n var maxRange;\r\n if (this.parentSurface) {\r\n var visibleSeries = this.parentSurface.renderableSeries\r\n .asArray()\r\n .filter(function (s) { return s.yAxisId === _this.id && s.isVisible && s.hasDataSeriesValues(); });\r\n visibleSeries.forEach(function (rSeries) {\r\n // Get pre-calculated XRange if exists, otherwise, fetch from the axis for this series\r\n var xVisibleRange = (xRanges === null || xRanges === void 0 ? void 0 : xRanges.containsKey(rSeries.xAxisId))\r\n ? xRanges.item(rSeries.xAxisId)\r\n : _this.getXVisibleRange(rSeries.xAxisId);\r\n var isXCategoryAxis = _this.getIsXCategoryAxis(rSeries.xAxisId);\r\n if (xVisibleRange) {\r\n var range = rSeries.getYRange(xVisibleRange, isXCategoryAxis);\r\n if (range) {\r\n maxRange = maxRange ? maxRange.union(range) : range;\r\n }\r\n }\r\n });\r\n }\r\n if (maxRange === null || maxRange === void 0 ? void 0 : maxRange.isZero()) {\r\n maxRange = this.coerceZeroVisibleRange(maxRange);\r\n }\r\n if (this.growBy && maxRange) {\r\n maxRange = maxRange.growBy(this.growBy);\r\n }\r\n maxRange = this.applyVisibleRangeLimit(maxRange);\r\n maxRange = this.applyVisibleRangeSizeLimit(maxRange);\r\n return maxRange || new NumberRange_1.NumberRange();\r\n };\r\n /**\r\n * Programmatically scrolls the axis by a number of pixels\r\n * @param pixelsToScroll The number of pixels to scroll\r\n * @param clipMode The clipping mode. See {@link EClipMode} for a list of values\r\n */\r\n AxisBase2D.prototype.scroll = function (pixelsToScroll, clipMode) {\r\n var startVisibleRange = this.visibleRange;\r\n if (startVisibleRange === undefined) {\r\n return false;\r\n }\r\n var translatedRange = this.getCurrentCoordinateCalculator().translateBy(pixelsToScroll, startVisibleRange);\r\n // TODO: refactor to use this.applyVisibleRangeLimit() method\r\n if (this.visibleRangeLimit) {\r\n var limitDelta = 0;\r\n if (translatedRange.min < this.visibleRangeLimit.min) {\r\n limitDelta = this.visibleRangeLimit.min - translatedRange.min;\r\n }\r\n else if (this.visibleRangeLimit.max < translatedRange.max) {\r\n limitDelta = this.visibleRangeLimit.max - translatedRange.max;\r\n }\r\n if (limitDelta) {\r\n translatedRange = new NumberRange_1.NumberRange(translatedRange.min + limitDelta, translatedRange.max + limitDelta);\r\n }\r\n }\r\n this.visibleRange = this.applyVisibleRangeSizeLimit(translatedRange);\r\n return true;\r\n };\r\n /**\r\n * Programmatically zooms the axis by a min and max fraction\r\n * @param minFraction The Min fraction, e.g. 0.1 will zoom the lower part of the range 10%\r\n * @param maxFraction The Max fraction, e.g. 0.1 will zoom the upper part of the range 10%\r\n */\r\n AxisBase2D.prototype.zoomBy = function (minFraction, maxFraction) {\r\n var coordCalc = this.getCurrentCoordinateCalculator();\r\n var translatedRange = coordCalc.zoomTranslateBy(minFraction, maxFraction, this.visibleRange);\r\n if (translatedRange.max < translatedRange.min) {\r\n return;\r\n }\r\n var newVisibleRange = this.applyVisibleRangeLimit(translatedRange);\r\n this.visibleRange = this.applyVisibleRangeSizeLimit(newVisibleRange);\r\n };\r\n /**\r\n * @summary Programmatically zooms the axis with a from and to coordinate\r\n * @description Used by the {@link RubberBandXyZoomModifier}, which allows the user to draw a rectangle on the chart\r\n * to zoom in. The from / too coordinate are the x or y components of the rectangle corners used to zoom in\r\n * @param fromCoord a pixel coordinate to zoom from\r\n * @param toCoord a pixel coordinate to zoom to\r\n * @param duration The duration of animation in milliseconds. Pass 0 for no animation.\r\n * @param easingFunction An optional easing function passed to specify animation easing. See {@link TEasingFn} for a list of values\r\n */\r\n AxisBase2D.prototype.zoom = function (fromCoord, toCoord, duration, easingFunction) {\r\n if (duration === void 0) { duration = 0; }\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }\r\n var coordCalc = this.getCurrentCoordinateCalculator();\r\n var fromValue = coordCalc.getDataValue(fromCoord);\r\n var toValue = coordCalc.getDataValue(toCoord);\r\n var min = fromValue < toValue ? fromValue : toValue;\r\n var max = fromValue < toValue ? toValue : fromValue;\r\n var newVisibleRange = this.applyVisibleRangeSizeLimit(new NumberRange_1.NumberRange(min, max));\r\n this.animateVisibleRange(newVisibleRange, duration, easingFunction);\r\n };\r\n AxisBase2D.prototype.scale = function (initialRange, delta, isMoreThanHalf) {\r\n var deltaRange = initialRange.max - initialRange.min;\r\n var newMin, newMax;\r\n // Respect flippedCoordinates\r\n var isMoreThanHalf2 = this.flippedCoordinates ? !isMoreThanHalf : isMoreThanHalf;\r\n var delta2 = this.flippedCoordinates ? -delta : delta;\r\n if (isMoreThanHalf2) {\r\n newMin = initialRange.min;\r\n newMax = delta2 > 0 ? newMin + deltaRange / (1 + delta2) : newMin + deltaRange * (1 + Math.abs(delta2));\r\n }\r\n else {\r\n newMax = initialRange.max;\r\n newMin = delta2 > 0 ? newMax - deltaRange * (1 + delta2) : newMax - deltaRange / (1 + Math.abs(delta2));\r\n }\r\n this.visibleRange = new NumberRange_1.NumberRange(newMin, newMax);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n AxisBase2D.prototype.animateVisibleRange = function (visibleRange, durationMs, easingFunction, onCompleted) {\r\n var _this = this;\r\n var _a;\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outCubic; }\r\n if (onCompleted === void 0) { onCompleted = function () { }; }\r\n if (durationMs <= 0) {\r\n // Don't allow setting visibleRange to undefined if there is no data\r\n this.visibleRange = visibleRange || this.visibleRange;\r\n onCompleted();\r\n return undefined;\r\n }\r\n (_a = this.visibleRangeAnimationToken) === null || _a === void 0 ? void 0 : _a.cancel();\r\n this.visibleRangeAnimationToken = NumberRangeAnimator_1.NumberRangeAnimator.animate(this.visibleRange, visibleRange, durationMs, function (range) {\r\n _this.visibleRange = range;\r\n }, function () {\r\n _this.visibleRangeAnimationToken = undefined;\r\n onCompleted();\r\n }, easingFunction);\r\n this.parentSurface.addAnimation(this.visibleRangeAnimationToken);\r\n return this.visibleRangeAnimationToken;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n AxisBase2D.prototype.delete = function () {\r\n this.penCacheForMajorGridLines = (0, Deleter_1.deleteSafe)(this.penCacheForMajorGridLines);\r\n this.penCacheForMinorGridLines = (0, Deleter_1.deleteSafe)(this.penCacheForMinorGridLines);\r\n this.penCacheForMajorTickLines = (0, Deleter_1.deleteSafe)(this.penCacheForMajorTickLines);\r\n this.penCacheForMinorTickLines = (0, Deleter_1.deleteSafe)(this.penCacheForMinorTickLines);\r\n this.solidBrushCacheBorder = (0, Deleter_1.deleteSafe)(this.solidBrushCacheBorder);\r\n this.solidBrushCacheAxisBands = (0, Deleter_1.deleteSafe)(this.solidBrushCacheAxisBands);\r\n this.solidBrushCacheAxisBackground = (0, Deleter_1.deleteSafe)(this.solidBrushCacheAxisBackground);\r\n this.axisRendererProperty = (0, Deleter_1.deleteSafe)(this.axisRenderer);\r\n this.axisTitleRenderer = (0, Deleter_1.deleteSafe)(this.axisTitleRenderer);\r\n this.webAssemblyContext2D = undefined;\r\n this.parentSurface = undefined;\r\n _super.prototype.delete.call(this);\r\n };\r\n AxisBase2D.prototype.toJSON = function () {\r\n var options = {\r\n autoRange: this.autoRange,\r\n autoTicks: this.autoTicks,\r\n axisAlignment: this.axisAlignment,\r\n axisBandsFill: this.axisBandsFill,\r\n axisBorder: this.axisBorder,\r\n axisTitle: this.axisTitle,\r\n axisTitleStyle: this.axisTitleStyle,\r\n drawLabels: this.drawLabels,\r\n drawMajorBands: this.drawMajorBands,\r\n drawMajorGridLines: this.drawMajorGridLines,\r\n drawMajorTickLines: this.drawMajorTickLines,\r\n drawMinorGridLines: this.drawMinorGridLines,\r\n drawMinorTickLines: this.drawMinorTickLines,\r\n flippedCoordinates: this.flippedCoordinates,\r\n growBy: this.growBy,\r\n id: this.id,\r\n isInnerAxis: this.isInnerAxis,\r\n isVisible: this.isVisible,\r\n labelStyle: this.labelStyle,\r\n majorGridLineStyle: this.majorGridLineStyle,\r\n majorTickLineStyle: this.majorTickLineStyle,\r\n maxAutoTicks: this.maxAutoTicks,\r\n minorGridLineStyle: this.minorGridLineStyle,\r\n minorTickLineStyle: this.minorTickLineStyle,\r\n visibleRange: this.hasDefaultVisibleRange() ? undefined : this.visibleRange,\r\n visibleRangeLimit: this.visibleRangeLimit,\r\n zoomExtentsRange: this.zoomExtentsRange,\r\n minorsPerMajor: this.minorsPerMajor,\r\n majorDelta: this.majorDelta,\r\n minorDelta: this.minorDelta,\r\n // @ts-ignore\r\n labelProvider: this.labelProvider.toJSON(),\r\n keepLabelsWithinAxis: this.axisRenderer.keepLabelsWithinAxis,\r\n clipToXRange: this.clipToXRange,\r\n isStaticAxis: this.isStaticAxis\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n /**\r\n * Returns the max size for major/minor ticks. Used in layout and passed to AxisRenderer\r\n * @protected\r\n */\r\n AxisBase2D.prototype.getTicksMaxSize = function () {\r\n var _a, _b, _c, _d;\r\n var majorTickSize = (_b = ((_a = this.majorTickLineStyle) === null || _a === void 0 ? void 0 : _a.tickSize) * DpiHelper_1.DpiHelper.PIXEL_RATIO) !== null && _b !== void 0 ? _b : 0;\r\n var minorTickSize = (_d = ((_c = this.minorTickLineStyle) === null || _c === void 0 ? void 0 : _c.tickSize) * DpiHelper_1.DpiHelper.PIXEL_RATIO) !== null && _d !== void 0 ? _d : 0;\r\n return Math.max(majorTickSize, minorTickSize);\r\n };\r\n /**\r\n * When true, the axis is valid for drawing\r\n */\r\n AxisBase2D.prototype.getIsValidForDrawing = function () {\r\n return this.isVisible;\r\n };\r\n /**\r\n * Called internally - draws the Axis Bands and Gridlines\r\n * @param renderContext The {@link WebGL2RenderingContext} used for drawing\r\n * @param tickObject The {@link TTickObject} contains the major, minor tick numeric values, coordinates and labels for drawing\r\n * @param penForMinorGridLines The {@link SCRTPen} for drawing minor gridlines in our WebGL graphics engine\r\n * @param penForMajorGridLines The {@link SCRTPen} for drawing major gridlines in our WebGL graphics engine\r\n */\r\n AxisBase2D.prototype.drawAxisBandsAndGridLines = function (renderContext, tickObject, penForMinorGridLines, penForMajorGridLines) {\r\n var _this = this;\r\n // Draw axis bands\r\n if (this.drawMajorBands) {\r\n var solidBrush_1 = this.solidBrushCacheAxisBands.newBrush(this.axisBandsFill, true);\r\n var axisBandsLayer = (0, WebGlRenderContext2D_1.calculateAbsoluteRenderLayer)(this.parentSurface.layersOffset, this.parentSurface.stepBetweenLayers, DefaultRenderLayer_1.EDefaultRenderLayer.AxisBandsLayer);\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.drawAxisBands(renderContext, tickObject.majorTicks, tickObject.majorTickCoords, solidBrush_1);\r\n }, axisBandsLayer);\r\n }\r\n // Draw minor grid lines\r\n if (this.drawMinorGridLines) {\r\n var minorGridLinesLayer = (0, WebGlRenderContext2D_1.calculateAbsoluteRenderLayer)(this.parentSurface.layersOffset, this.parentSurface.stepBetweenLayers, DefaultRenderLayer_1.EDefaultRenderLayer.MinorGridLinesLayer);\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.drawGridLines(renderContext, tickObject.minorTickCoords, penForMinorGridLines);\r\n }, minorGridLinesLayer);\r\n }\r\n // Draw major grid lines\r\n if (this.drawMajorGridLines) {\r\n var majorGridLinesLayer = (0, WebGlRenderContext2D_1.calculateAbsoluteRenderLayer)(this.parentSurface.layersOffset, this.parentSurface.stepBetweenLayers, DefaultRenderLayer_1.EDefaultRenderLayer.MajorGridLinesLayer);\r\n renderContext.enqueueLayeredDraw(function () {\r\n _this.drawGridLines(renderContext, tickObject.majorTickCoords, penForMajorGridLines);\r\n }, majorGridLinesLayer);\r\n }\r\n };\r\n /**\r\n * Called internally - draws the Axis Bands\r\n * @param renderContext The {@link WebGL2RenderingContext} used for drawing\r\n * @param ticks An array of tick numeric values\r\n * @param tickCoords An array of tick coordinates\r\n * @param brush The {@link SCRTSolidBrush} used to fill the axis band area in our WebGL graphics engine\r\n */\r\n AxisBase2D.prototype.drawAxisBands = function (renderContext, ticks, tickCoords, brush) {\r\n var _this = this;\r\n if (!ticks || ticks.length === 0)\r\n return;\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n var direction = this.isHorizontalAxis ? XyDirection_1.EXyDirection.XDirection : XyDirection_1.EXyDirection.YDirection;\r\n var min = this.offset;\r\n var max = this.axisLength + this.offset;\r\n // Case where the axis is flipped, swap the min/max coords so we draw bands correctly\r\n var isFlipped = this.isAxisFlipped !== this.flippedCoordinates;\r\n if (isFlipped) {\r\n var temp = max;\r\n max = min;\r\n min = temp;\r\n }\r\n // Even/Odd calculation helps preserve order of bands as you scroll\r\n var firstTickIndex = this.getMajorTickIndex(ticks[0]);\r\n var isEven = firstTickIndex % 2 === 0;\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(this.webAssemblyContext2D);\r\n var drawBand = function (coord0, coord1, isThisBandEven) {\r\n if (!isThisBandEven) {\r\n return;\r\n }\r\n var nativeRect = (0, createNativeRect_1.createNativeRect)(_this.webAssemblyContext2D, direction === XyDirection_1.EXyDirection.YDirection ? 0 : coord0, direction === XyDirection_1.EXyDirection.YDirection ? coord0 : 0, direction === XyDirection_1.EXyDirection.YDirection ? seriesViewRect.width : coord1, direction === XyDirection_1.EXyDirection.YDirection ? coord1 : seriesViewRect.height);\r\n vecRects.push_back(nativeRect);\r\n };\r\n ticks.forEach(function (mt, index) {\r\n var coord0 = index === 0 ? min : tickCoords[index - 1];\r\n var coord1 = tickCoords[index];\r\n drawBand(coord0, coord1, isEven);\r\n isEven = !isEven;\r\n });\r\n // Draw the last band to the edge of the screen\r\n drawBand(max, tickCoords[ticks.length - 1], isEven);\r\n renderContext.drawRects(vecRects, brush, seriesViewRect.left, seriesViewRect.top);\r\n };\r\n /**\r\n * Called internally - draws the Axis Grid Lines\r\n * @param renderContext The {@link WebGL2RenderingContext} used for drawing\r\n * @param tickCoords An array of tick coordinates\r\n * @param linesPen The {@link SCRTPen} used to draw the axis gridlines in our WebGL graphics engine\r\n */\r\n AxisBase2D.prototype.drawGridLines = function (renderContext, tickCoords, linesPen) {\r\n var _this = this;\r\n if (!tickCoords || tickCoords.length === 0)\r\n return;\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n var vertices = (0, NativeObject_1.getVectorColorVertex)(this.webAssemblyContext2D);\r\n tickCoords.forEach(function (tc) {\r\n var x1 = _this.isHorizontalAxis ? tc : 0;\r\n var x2 = _this.isHorizontalAxis ? tc : seriesViewRect.width;\r\n var y1 = _this.isHorizontalAxis ? 0 : tc;\r\n var y2 = _this.isHorizontalAxis ? seriesViewRect.height : tc;\r\n var vertex = (0, NativeObject_1.getVertex)(_this.webAssemblyContext2D, x1, y1);\r\n vertices.push_back(vertex);\r\n var vertex2 = (0, NativeObject_1.getVertex)(_this.webAssemblyContext2D, x2, y2);\r\n vertices.push_back(vertex2);\r\n });\r\n renderContext.drawLinesNative(vertices, linesPen, WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine, seriesViewRect.left, seriesViewRect.top);\r\n };\r\n AxisBase2D.prototype.getXVisibleRange = function (xAxisId) {\r\n return this.parentSurface.getXAxisById(xAxisId).visibleRange;\r\n };\r\n AxisBase2D.prototype.getIsXCategoryAxis = function (xAxisId) {\r\n return this.parentSurface.getXAxisById(xAxisId).isCategoryAxis;\r\n };\r\n /**\r\n * Returns an array of label strings for an array of major tick numeric values\r\n * @param majorTicks The major tick numeric values\r\n */\r\n AxisBase2D.prototype.getLabels = function (majorTicks) {\r\n return this.labelProvider.getLabels(majorTicks);\r\n };\r\n /**\r\n * Gets the total range on the XAxis required to display all the series zoomed to fit on this axis\r\n */\r\n AxisBase2D.prototype.getXDataRange = function () {\r\n var _this = this;\r\n var maxRange;\r\n if (this.parentSurface) {\r\n var visibleSeries = this.parentSurface.renderableSeries\r\n .asArray()\r\n .filter(function (s) { return s.xAxisId === _this.id && s.isVisible && s.hasDataSeriesValues(); });\r\n visibleSeries.forEach(function (rSeries) {\r\n var xRange = rSeries.getXRange();\r\n if (xRange) {\r\n maxRange = !maxRange ? xRange : maxRange.union(xRange);\r\n }\r\n });\r\n }\r\n return maxRange;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n AxisBase2D.prototype.notifyPropertyChanged = function (propertyName) {\r\n if (propertyName === constants_1.PROPERTY.IS_XAXIS) {\r\n if (this.axisAlignmentProperty === undefined) {\r\n this.axisAlignmentProperty = this.isXAxisProperty ? AxisAlignment_1.EAxisAlignment.Bottom : AxisAlignment_1.EAxisAlignment.Right;\r\n }\r\n }\r\n if (propertyName === constants_1.PROPERTY.AXIS_RENDERER) {\r\n this.axisRendererProperty.attachedToAxis(this);\r\n }\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n };\r\n AxisBase2D.prototype.getMaxXRange = function () {\r\n var maximumRange = this.getXDataRange();\r\n if (!maximumRange)\r\n return undefined;\r\n // TODO: Coerce a zero range\r\n if (this.growBy) {\r\n maximumRange = maximumRange.growBy(this.growBy);\r\n }\r\n maximumRange = this.applyVisibleRangeLimit(maximumRange !== null && maximumRange !== void 0 ? maximumRange : this.visibleRange);\r\n maximumRange = this.applyVisibleRangeSizeLimit(maximumRange);\r\n return maximumRange;\r\n };\r\n AxisBase2D.prototype.getAxisSize = function () {\r\n return this.axisLength;\r\n };\r\n AxisBase2D.prototype.getMajorTickIndex = function (tick) {\r\n var step = this.majorDeltaProperty;\r\n var index = tick / step;\r\n // TODO: Add IsLogarithmicAxis logic from AxisBase.cs\r\n // TODO: Add Category axis logic from AxisBase.cs\r\n return Math.round(index);\r\n };\r\n AxisBase2D.prototype.getTicks = function (regenerate) {\r\n var _a, _b;\r\n if (regenerate || !this.tickCache) {\r\n var maxAutoTicks = this.getMaxAutoTicks();\r\n if (this.autoTicks) {\r\n var delta = this.deltaCalculator.getDeltaFromRange(this.visibleRange.min, this.visibleRange.max, this.minorsPerMajor, maxAutoTicks);\r\n this.minorDeltaProperty = delta.min;\r\n this.majorDeltaProperty = delta.max;\r\n }\r\n // See if tickCoordinatesProvider has cached ticks (if isStaticAxis)\r\n var _c = this.tickCoordinatesProvider.getTickCoordinates(undefined, undefined), majorTickCoords = _c.majorTickCoords, minorTickCoords = _c.minorTickCoords, majorTickOverrides = _c.majorTickOverrides, minorTickOverRides = _c.minorTickOverRides;\r\n var majorTicks = this.drawLabels || this.drawMajorGridLines || this.drawMajorTickLines\r\n ? majorTickOverrides !== null && majorTickOverrides !== void 0 ? majorTickOverrides : this.tickProvider.getMajorTicks((_a = this.minorDeltaProperty) !== null && _a !== void 0 ? _a : this.majorDeltaProperty / this.minorsPerMajor, this.majorDeltaProperty, this.visibleRange)\r\n : [];\r\n var minorTicks = this.drawMinorGridLines || this.drawMinorTickLines\r\n ? minorTickOverRides !== null && minorTickOverRides !== void 0 ? minorTickOverRides : this.tickProvider.getMinorTicks((_b = this.minorDeltaProperty) !== null && _b !== void 0 ? _b : this.majorDeltaProperty / this.minorsPerMajor, this.majorDeltaProperty, this.visibleRange)\r\n : [];\r\n var _d = this.visibleRange, min_1 = _d.min, max_1 = _d.max;\r\n majorTicks = majorTicks.filter(function (t) { return t >= min_1 && t <= max_1; });\r\n minorTicks = minorTicks.filter(function (t) { return t >= min_1 && t <= max_1; });\r\n var majorTickLabels = [];\r\n if (majorTicks.length > 1000 && this.drawLabels) {\r\n console.warn(\"Axis settings result in more than 1000 labels. Label drawing is disabled. If using autoTicks: false, check that you have set sensible deltas.\");\r\n }\r\n else {\r\n majorTickLabels = this.drawLabels ? this.getLabels(majorTicks) : [];\r\n }\r\n this.tickCache = {\r\n majorTicks: majorTicks,\r\n majorTickLabels: majorTickLabels,\r\n majorTickCoords: majorTickCoords,\r\n minorTicks: minorTicks,\r\n minorTickCoords: minorTickCoords // probably undefined unless isStaticAxis\r\n };\r\n }\r\n return this.tickCache;\r\n };\r\n AxisBase2D.prototype.getTicksWithCoords = function () {\r\n if (!this.tickCache) {\r\n this.getTicks(true);\r\n }\r\n if (this.tickCache.majorTickCoords === undefined) {\r\n var _a = this.tickCoordinatesProvider.getTickCoordinates(this.tickCache.majorTicks, this.tickCache.minorTicks), majorTickCoords = _a.majorTickCoords, minorTickCoords = _a.minorTickCoords;\r\n // tick values are never overridden at this point. If they could be, it would have been done in the call from measure.\r\n this.tickCache.majorTickCoords = majorTickCoords;\r\n this.tickCache.minorTickCoords = minorTickCoords;\r\n }\r\n return this.tickCache;\r\n };\r\n AxisBase2D.prototype.applyVisibleRangeLimit = function (visibleRange) {\r\n if (!visibleRange)\r\n return undefined;\r\n if (!this.visibleRangeLimit)\r\n return visibleRange;\r\n var newRange = visibleRange.clip(this.visibleRangeLimit);\r\n if (newRange.min >= newRange.max) {\r\n console.warn(\"Can not apply visibleRangeLimit for the \".concat(this.isXAxis ? \"xAxis\" : \"yAxis\", \" with ID \").concat(this.id));\r\n return visibleRange;\r\n }\r\n else {\r\n return newRange;\r\n }\r\n };\r\n AxisBase2D.prototype.applyVisibleRangeSizeLimit = function (visibleRange) {\r\n if (!visibleRange)\r\n return undefined;\r\n var minDiff = Math.abs(visibleRange.min) / Math.pow(10, 14);\r\n // Prevent axis becoming invalid due to loss of precision\r\n var currentSize = visibleRange.diff;\r\n if (currentSize < minDiff) {\r\n var middleValue = visibleRange.min + currentSize / 2;\r\n return new NumberRange_1.NumberRange(middleValue - minDiff / 2, middleValue + minDiff / 2);\r\n }\r\n if (!this.visibleRangeSizeLimit)\r\n return visibleRange;\r\n if (currentSize < 0) {\r\n console.warn(\"Can not apply visibleRangeSizeLimit for the \".concat(this.isXAxis ? \"xAxis\" : \"yAxis\", \" with ID \").concat(this.id));\r\n return visibleRange;\r\n }\r\n else {\r\n var newVisibleRange = visibleRange;\r\n var _a = this.visibleRangeSizeLimit, min = _a.min, max = _a.max;\r\n var middleValue = visibleRange.min + currentSize / 2;\r\n if (currentSize < min) {\r\n newVisibleRange = new NumberRange_1.NumberRange(middleValue - min / 2, middleValue + min / 2);\r\n }\r\n else if (currentSize > max) {\r\n newVisibleRange = new NumberRange_1.NumberRange(middleValue - max / 2, middleValue + max / 2);\r\n }\r\n return newVisibleRange;\r\n }\r\n };\r\n return AxisBase2D;\r\n}(AxisCore_1.AxisCore));\r\nexports.AxisBase2D = AxisBase2D;\r\n/** @ignore */\r\nvar getPenForLines = function (penCache, stroke, strokeThickness, strokeDashArray) {\r\n return (0, Pen2DCache_1.createPenInCache)(penCache, stroke, strokeThickness, 1, strokeDashArray, false);\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxisCore = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar Thickness_1 = require(\"../../../Core/Thickness\");\r\nvar AutoRange_1 = require(\"../../../types/AutoRange\");\r\nvar LabelAlignment_1 = require(\"../../../types/LabelAlignment\");\r\nvar isRealNumber_1 = require(\"../../../utils/isRealNumber\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar constants_1 = require(\"./constants\");\r\nvar VisibleRangeChangedArgs_1 = require(\"./VisibleRangeChangedArgs\");\r\n/**\r\n * The base class for Axis within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}.\r\n * @description\r\n * AxisCore is a base class for both 2D & 3D Axis types in SciChart. Concrete types include:\r\n *\r\n * - {@link NumericAxis}: a Numeric 2D value-axis\r\n * - {@link CategoryAxis}: A category 2D axis used for stock chart applications\r\n * - {@link NumericAxis3D}: A numeric 3D value-axis\r\n *\r\n * Set axis on the {@link SciChartSurface.xAxes} or {@link SciChartSurface.yAxes} collections in 2D Charts.\r\n * Set axis on the {@link SciChart3DSurface.xAxis}, {@link SciChart3DSurface.yAxis} or {@link SciChart3DSurface.zAxis} collections in 3D Charts.\r\n */\r\nvar AxisCore = /** @class */ (function (_super) {\r\n __extends(AxisCore, _super);\r\n /**\r\n * Creates an instance of an {@link AxisCore}\r\n * @param options Optional parameters of type {@link IAxisCoreOptions} used to define properties at instantiation time\r\n */\r\n function AxisCore(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;\r\n _this = _super.call(this) || this;\r\n /**\r\n * An {@link EventHandler} which fires a callback when the {@link AxisCore.visibleRange} property changes.\r\n * @desc\r\n */\r\n _this.visibleRangeChanged = new EventHandler_1.EventHandler();\r\n /** A flag to indicate if measure has been called this frame. Properties updated after measure must trigger a redraw */\r\n _this.isMeasured = false;\r\n /** If the diff of the visibleRange is 0, this growby fraction will be applied */\r\n _this.ZeroRangeGrowBy = 0.01;\r\n /**\r\n * Internal backing property for {@link AxisCore.id}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.idProperty = AxisCore.DEFAULT_AXIS_ID;\r\n /**\r\n * Internal backing property for {@link AxisCore.isAxis}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.isXAxisProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.minorsPerMajor}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.minorsPerMajorProperty = 5;\r\n /**\r\n * Internal backing property for {@link AxisCore.drawMajorGridLines}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.drawMajorGridLinesProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.drawMinorGridLines}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.drawMinorGridLinesProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.drawMajorTickLines}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.drawMajorTickLinesProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.drawMinorTickLines}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.drawMinorTickLinesProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.drawMajorBands}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.drawMajorBandsProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.drawLabels}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.drawLabelsProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.flippedCoordinates}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.flippedCoordinatesProperty = false;\r\n /**\r\n * Internal backing property for {@link AxisCore.tickTextBrush}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.tickTextBrushProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.tickTextBrush;\r\n /**\r\n * Internal backing property for {@link AxisCore.axisBandsFill}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.axisBandsFillProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.axisBandsFill;\r\n /**\r\n * Internal backing property for {@link AxisCore.autoRange}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.autoRangeProperty = AutoRange_1.EAutoRange.Once;\r\n /**\r\n * Internal backing property for {@link AxisCore.majorTickLineStyle}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.majorTickLineStyleProperty = {\r\n tickSize: 5,\r\n strokeThickness: 1,\r\n color: SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.majorGridLineBrush\r\n };\r\n /**\r\n * Internal backing property for {@link AxisCore.minorTickLineStyle}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.minorTickLineStyleProperty = {\r\n tickSize: 3,\r\n strokeThickness: 1,\r\n color: SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.minorGridLineBrush\r\n };\r\n /**\r\n * Internal backing property for {@link AxisCore.majorGridLineStyle}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.majorGridLineStyleProperty = {\r\n strokeThickness: 1,\r\n color: SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.majorGridLineBrush,\r\n strokeDashArray: undefined\r\n };\r\n /**\r\n * Internal backing property for {@link AxisCore.minorGridLineStyle}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.minorGridLineStyleProperty = {\r\n strokeThickness: 1,\r\n color: SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.minorGridLineBrush,\r\n strokeDashArray: undefined\r\n };\r\n /**\r\n * Internal backing property for {@link AxisCore.axisTitleStyle}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.axisTitleStyleProperty = {\r\n fontSize: 24,\r\n fontFamily: \"Arial\",\r\n color: SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.axisTitleColor,\r\n fontStyle: \"normal\",\r\n fontWeight: \"normal\",\r\n padding: Thickness_1.Thickness.fromNumber(6),\r\n alignment: LabelAlignment_1.ELabelAlignment.Center\r\n };\r\n /**\r\n * Internal backing property for {@link AxisCore.isVisible}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.isVisibleProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.autoTicks}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.autoTicksProperty = true;\r\n /**\r\n * Internal backing property for {@link AxisCore.maxAutoTicks}. To fire {@link AxisCore.invalidateParentCallback}, set the public property\r\n */\r\n _this.maxAutoTicksProperty = 10;\r\n _this.defaultVisibleRange = new NumberRange_1.NumberRange(0, 10);\r\n _this.allowFastMathProperty = false;\r\n /**\r\n * If false, autoRange Once will run on this axis. Set true when there is any change to the visibleRange.\r\n */\r\n _this.hasVisibleRangeSet = false;\r\n _this.visibleRange = (options === null || options === void 0 ? void 0 : options.visibleRange) || _this.defaultVisibleRange;\r\n if (!(options === null || options === void 0 ? void 0 : options.visibleRange)) {\r\n _this.hasVisibleRangeSet = false;\r\n }\r\n _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : _this.id;\r\n _this.growBy = (_b = options === null || options === void 0 ? void 0 : options.growBy) !== null && _b !== void 0 ? _b : _this.growBy;\r\n _this.autoRange = (_c = options === null || options === void 0 ? void 0 : options.autoRange) !== null && _c !== void 0 ? _c : _this.autoRange;\r\n _this.isVisible = (_d = options === null || options === void 0 ? void 0 : options.isVisible) !== null && _d !== void 0 ? _d : _this.isVisible;\r\n _this.axisTitle = (_e = options === null || options === void 0 ? void 0 : options.axisTitle) !== null && _e !== void 0 ? _e : _this.axisTitle;\r\n _this.axisTitleStyle = options === null || options === void 0 ? void 0 : options.axisTitleStyle;\r\n _this.allowFastMath = (_f = options === null || options === void 0 ? void 0 : options.allowFastMath) !== null && _f !== void 0 ? _f : _this.allowFastMathProperty;\r\n _this.autoTicksProperty = (_g = options === null || options === void 0 ? void 0 : options.autoTicks) !== null && _g !== void 0 ? _g : _this.autoTicksProperty;\r\n _this.maxAutoTicksProperty = (_h = options === null || options === void 0 ? void 0 : options.maxAutoTicks) !== null && _h !== void 0 ? _h : _this.maxAutoTicksProperty;\r\n _this.minorsPerMajorProperty = (_j = options === null || options === void 0 ? void 0 : options.minorsPerMajor) !== null && _j !== void 0 ? _j : _this.minorsPerMajorProperty;\r\n _this.majorDeltaProperty = (_k = options === null || options === void 0 ? void 0 : options.majorDelta) !== null && _k !== void 0 ? _k : _this.majorDeltaProperty;\r\n _this.minorDeltaProperty = (_l = options === null || options === void 0 ? void 0 : options.minorDelta) !== null && _l !== void 0 ? _l : _this.minorDeltaProperty;\r\n _this.drawLabelsProperty = (_m = options === null || options === void 0 ? void 0 : options.drawLabels) !== null && _m !== void 0 ? _m : _this.drawLabelsProperty;\r\n _this.drawMajorTickLinesProperty = (_o = options === null || options === void 0 ? void 0 : options.drawMajorTickLines) !== null && _o !== void 0 ? _o : _this.drawMajorTickLinesProperty;\r\n _this.drawMinorTickLinesProperty = (_p = options === null || options === void 0 ? void 0 : options.drawMinorTickLines) !== null && _p !== void 0 ? _p : _this.drawMinorTickLinesProperty;\r\n _this.drawMinorGridLinesProperty = (_q = options === null || options === void 0 ? void 0 : options.drawMinorGridLines) !== null && _q !== void 0 ? _q : _this.drawMinorGridLinesProperty;\r\n _this.drawMajorGridLinesProperty = (_r = options === null || options === void 0 ? void 0 : options.drawMajorGridLines) !== null && _r !== void 0 ? _r : _this.drawMajorGridLinesProperty;\r\n _this.majorGridLineStyle = options === null || options === void 0 ? void 0 : options.majorGridLineStyle;\r\n _this.minorGridLineStyle = options === null || options === void 0 ? void 0 : options.minorGridLineStyle;\r\n _this.majorTickLineStyle = options === null || options === void 0 ? void 0 : options.majorTickLineStyle;\r\n _this.minorTickLineStyle = options === null || options === void 0 ? void 0 : options.minorTickLineStyle;\r\n _this.drawMajorBandsProperty = (_s = options === null || options === void 0 ? void 0 : options.drawMajorBands) !== null && _s !== void 0 ? _s : _this.drawMajorBandsProperty;\r\n _this.axisBandsFillProperty = (_t = options === null || options === void 0 ? void 0 : options.axisBandsFill) !== null && _t !== void 0 ? _t : _this.axisBandsFillProperty;\r\n _this.flippedCoordinatesProperty = (_u = options === null || options === void 0 ? void 0 : options.flippedCoordinates) !== null && _u !== void 0 ? _u : _this.flippedCoordinatesProperty;\r\n _this.getCurrentCoordinateCalculator = _this.getCurrentCoordinateCalculator.bind(_this);\r\n return _this;\r\n }\r\n Object.defineProperty(AxisCore.prototype, \"isCategoryAxis\", {\r\n /**\r\n * Gets if the Axis is Category\r\n */\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"isXAxis\", {\r\n /**\r\n * SET INTERNALLY. Gets whether this axis is an XAxis or not\r\n * @remarks\r\n * See {@link AxisBase2D.axisAlignment} if you want to set a 2D Axis alignment to the left, right, top or bottom\r\n */\r\n get: function () {\r\n return this.isXAxisProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"allowFastMath\", {\r\n /**\r\n * When true, 32-bit faster paths for coordinate calculation maths are used. This improves performance in\r\n * edge-cases where every CPU cycle counts.\r\n */\r\n get: function () {\r\n return this.allowFastMathProperty;\r\n },\r\n /**\r\n * When true, 32-bit faster paths for coordinate calculation maths are used. This improves performance in\r\n * edge-cases where every CPU cycle counts.\r\n */\r\n set: function (allowFastMath) {\r\n this.allowFastMathProperty = allowFastMath;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ALLOW_FAST_MATH);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * When true, the axis has a valid {@link AxisCore.visibleRange} which can be drawn\r\n * @remarks\r\n * {@link AxisCore.visibleRange} undefined, or NAN, or infinite, or {@link AxisCore.visibleRange} min greater than max\r\n * will result in this property being false.\r\n */\r\n AxisCore.prototype.hasValidVisibleRange = function () {\r\n if (this.visibleRange === undefined) {\r\n return false;\r\n }\r\n var rangeIsZero = this.visibleRange.diff === 0;\r\n return !rangeIsZero && (0, isRealNumber_1.isRealNumber)(this.visibleRange.max) && (0, isRealNumber_1.isRealNumber)(this.visibleRange.min);\r\n };\r\n /**\r\n * When true, the axis has the default {@link AxisCore.visibleRange}.\r\n * @remarks\r\n * This property is used internally when autoranging. If the range is default and {@link AxisCore.autoRange} is {@link EAutoRange.Once}\r\n * then the axis will autorange once.\r\n */\r\n AxisCore.prototype.hasDefaultVisibleRange = function () {\r\n return !this.hasVisibleRangeSet;\r\n };\r\n Object.defineProperty(AxisCore.prototype, \"id\", {\r\n /**\r\n * Gets or sets the unique Axis Id\r\n * @description\r\n * By default all axis in SciChart have Id={@link AxisCore.DEFAULT_AXIS_ID}. Also, all {@link BaseRenderableSeries | RenderableSeries}\r\n * have an xAxisId and yAxisId property set to {@link AxisCore.DEFAULT_AXIS_ID}. {@link AnnotationBase | Annotations} also have an xAxisId and\r\n * yAxisId also set to {@link AxisCore.DEFAULT_AXIS_ID}. Some {@link ChartModifierBase | Chart Modifiers} have an x,yAxisId property to filter\r\n * their operations to an axis.\r\n *\r\n * In multi-axis scenarios you will need to set the xAxisId/yAxisId properties of series, annotations, modifiers to match that of the axis\r\n * you want them to be registered on.\r\n */\r\n get: function () {\r\n return this.idProperty;\r\n },\r\n /**\r\n * Gets or sets the unique Axis Id\r\n * @description\r\n * By default all axis in SciChart have Id={@link AxisCore.DEFAULT_AXIS_ID}. Also, all {@link BaseRenderableSeries | RenderableSeries}\r\n * have an xAxisId and yAxisId property set to {@link AxisCore.DEFAULT_AXIS_ID}. {@link AnnotationBase | Annotations} also have an xAxisId and\r\n * yAxisId also set to {@link AxisCore.DEFAULT_AXIS_ID}. Some {@link ChartModifierBase | Chart Modifiers} have an x,yAxisId property to filter\r\n * their operations to an axis.\r\n *\r\n * In multi-axis scenarios you will need to set the xAxisId/yAxisId properties of series, annotations, modifiers to match that of the axis\r\n * you want them to be registered on.\r\n */\r\n set: function (id) {\r\n this.idProperty = id;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"isVisible\", {\r\n /**\r\n * When true, the axis is visible. Default value is also true for the axis\r\n * @remarks\r\n * An invisible axis can be used to scale series to the viewport. For example:\r\n *\r\n * - have a chart with two-YAxis\r\n * - have one series on the first axis and another series on the second axis\r\n * - set second {@link AxisCore.isVisible} = false, and {@link AxisCore.autoRange} = {@link EAutoRange.Always}\r\n *\r\n * This will scale the series on the second axis to the viewport, on an invisible, auto-ranged axis\r\n */\r\n get: function () {\r\n return this.isVisibleProperty;\r\n },\r\n /**\r\n * When true, the axis is visible. Default value is also true for the axis\r\n * @remarks\r\n * An invisible axis can be used to scale series to the viewport. For example:\r\n *\r\n * - have a chart with two-YAxis\r\n * - have one series on the first axis and another series on the second axis\r\n * - set second {@link AxisCore.isVisible} = false, and {@link AxisCore.autoRange} = {@link EAutoRange.Always}\r\n *\r\n * This will scale the series on the second axis to the viewport, on an invisible, auto-ranged axis\r\n */\r\n set: function (isVisible) {\r\n this.isVisibleProperty = isVisible;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_VISIBLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"growBy\", {\r\n /**\r\n * Gets or sets the GrowBy: a padding factor on the axis\r\n * @description\r\n * Growby factor is a padding factor set on the axis. For example if you want to have a constant padding above and below the axis,\r\n * the following code will result in a 10% (min) and 20% (max) padding outside of the datarange.\r\n * ```ts\r\n * axis.growBy = new NumberRange(0.1, 0.2);\r\n * ```\r\n */\r\n get: function () {\r\n return this.growByProperty;\r\n },\r\n /**\r\n * Gets or sets the GrowBy: a padding factor on the axis\r\n * @description\r\n * Growby factor is a padding factor set on the axis. For example if you want to have a constant padding above and below the axis,\r\n * the following code will result in a 10% (min) and 20% (max) padding outside of the datarange.\r\n * ```ts\r\n * axis.growBy = new NumberRange(0.1, 0.2);\r\n * ```\r\n */\r\n set: function (growBy) {\r\n this.growByProperty = growBy;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.GROW_BY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"visibleRange\", {\r\n /**\r\n * The VisibleRange is the range of the Axis (min to max).\r\n * @description\r\n * For example, if you have data-values from 0 to 100 in your {@link XyDataSeries | DataSeries}, but you only want to show\r\n * values from 15-25 on the axis, then set the visibleRange as follows:\r\n * ```ts\r\n * axis.visibleRange = new NumberRange(15, 25);\r\n * ```\r\n * @remarks\r\n * The visibleRange is a data-value for {@link NumericAxis}, {@link NumericAxis3D} but refers to an **index** to the data\r\n * for {@link CategoryAxis} types.\r\n */\r\n get: function () {\r\n return this.visibleRangeProperty;\r\n },\r\n /**\r\n * The VisibleRange is the range of the Axis (min to max).\r\n * @description\r\n * For example, if you have data-values from 0 to 100 in your {@link XyDataSeries | DataSeries}, but you only want to show\r\n * values from 15-25 on the axis, then set the visibleRange as follows:\r\n * ```ts\r\n * axis.visibleRange = new NumberRange(15, 25);\r\n * ```\r\n * @remarks\r\n * The visibleRange is a data-value for {@link NumericAxis}, {@link NumericAxis3D} but refers to an **index** to the data\r\n * for {@link CategoryAxis} types.\r\n *\r\n * If you override this setter, make sure you add\r\n * this.hasVisibleRangeSet = true;\r\n */\r\n set: function (visibleRange) {\r\n var _a;\r\n this.hasVisibleRangeSet = true;\r\n if (!((_a = this.visibleRangeProperty) === null || _a === void 0 ? void 0 : _a.equals(visibleRange))) {\r\n this.visibleRangeProperty = visibleRange;\r\n this.clearCoordCalcCache();\r\n this.visibleRangeChanged.raiseEvent(new VisibleRangeChangedArgs_1.VisibleRangeChangedArgs(visibleRange));\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VISIBLE_RANGE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"animatedVisibleRange\", {\r\n get: function () {\r\n if (!this.visibleRangeAnimationToken) {\r\n return this.visibleRange;\r\n }\r\n var animation = this.visibleRangeAnimationToken;\r\n return animation.to;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"majorDelta\", {\r\n /**\r\n * The MajorDelta is the spacing between major gridlines and axis labels.\r\n * @remarks\r\n * This is internally computed via the {@link AxisCore.deltaCalculator | Delta Calculator}, however it can be explicitly set here\r\n * in which case you should also set {@link AxisCore.minorDelta} and {@link AxisCore.autoTicks} = false.\r\n *\r\n * It is also possible to override and create custom implementations of the {@link DeltaCalculator} for full control over axis gridline\r\n * spacing.\r\n */\r\n get: function () {\r\n return this.majorDeltaProperty;\r\n },\r\n /**\r\n * The MajorDelta is the spacing between major gridlines and axis labels.\r\n * @remarks\r\n * This is internally computed via the {@link AxisCore.deltaCalculator | Delta Calculator}, however it can be explicitly set here\r\n * in which case you should also set {@link AxisCore.minorDelta} and {@link AxisCore.autoTicks} = false.\r\n *\r\n * It is also possible to override and create custom implementations of the {@link DeltaCalculator} for full control over axis gridline\r\n * spacing.\r\n */\r\n set: function (majorDelta) {\r\n this.majorDeltaProperty = majorDelta;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MAJOR_DELTA);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"minorDelta\", {\r\n /**\r\n * The MinorDelta is the spacing between minor gridlines.\r\n * @remarks\r\n * This is internally computed via the {@link AxisCore.deltaCalculator | Delta Calculator}, however it can be explicitly set here\r\n * in which case you should also set {@link AxisCore.majorDelta} and {@link AxisCore.autoTicks} = false.\r\n *\r\n * It is also possible to override and create custom implementations of the {@link DeltaCalculator} for full control over axis gridline\r\n * spacing.\r\n */\r\n get: function () {\r\n return this.minorDeltaProperty;\r\n },\r\n /**\r\n * The MinorDelta is the spacing between minor gridlines.\r\n * @remarks\r\n * This is internally computed via the {@link AxisCore.deltaCalculator | Delta Calculator}, however it can be explicitly set here\r\n * in which case you should also set {@link AxisCore.majorDelta} and {@link AxisCore.autoTicks} = false.\r\n *\r\n * It is also possible to override and create custom implementations of the {@link DeltaCalculator} for full control over axis gridline\r\n * spacing.\r\n */\r\n set: function (minorDelta) {\r\n this.minorDeltaProperty = minorDelta;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MINOR_DELTA);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"minorsPerMajor\", {\r\n /**\r\n * When {@link AxisCore.autoTicks} is true, minorsPerMajor is a hint of how many minor gridlines should be drawn between each major gridline\r\n */\r\n get: function () {\r\n return this.minorsPerMajorProperty;\r\n },\r\n /**\r\n * When {@link AxisCore.autoTicks} is true, minorsPerMajor is a hint of how many minor gridlines should be drawn between each major gridline\r\n */\r\n set: function (minorDelta) {\r\n this.minorsPerMajorProperty = minorDelta;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MINORS_PER_MAJOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"textFormatting\", {\r\n // TODO: These need to be implemented or removed\r\n get: function () {\r\n return this.textFormattingProperty;\r\n },\r\n set: function (textFormatting) {\r\n this.textFormattingProperty = textFormatting;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT_FORMATTING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"cursorTextFormatting\", {\r\n get: function () {\r\n return this.cursorTextFormattingProperty;\r\n },\r\n set: function (cursorTextFormatting) {\r\n this.cursorTextFormattingProperty = cursorTextFormatting;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CURSOR_TEXT_FORMATTING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"drawMajorGridLines\", {\r\n /**\r\n * When true, major gridlines (lines inside the chart viewport area) are drawn, else they are not drawn\r\n * @description\r\n * SciChart makes a distinction between axis Gridlines (drawn inside the chart) and axis ticks (small marks drawn outside the chart).\r\n *\r\n * Also, an Axis draws its own gridlines, for example a YAxis, which is vertical in a 2D Chart, draws gridlines horizontally at y-spacings.\r\n *\r\n * Similarly, an XAxis, which is horizontal in a 2D chart, draws gridlines vertically at X-spacings.\r\n * @remarks\r\n * See also {@link AxisCore.majorGridLineStyle} to style the major gridlines\r\n */\r\n get: function () {\r\n return this.drawMajorGridLinesProperty;\r\n },\r\n /**\r\n * When true, major gridlines (lines inside the chart viewport area) are drawn, else they are not drawn\r\n * @description\r\n * SciChart makes a distinction between axis Gridlines (drawn inside the chart) and axis ticks (small marks drawn outside the chart).\r\n *\r\n * Also, an Axis draws its own gridlines, for example a YAxis, which is vertical in a 2D Chart, draws gridlines horizontally at y-spacings.\r\n *\r\n * Similarly, an XAxis, which is horizontal in a 2D chart, draws gridlines vertically at X-spacings.\r\n * @remarks\r\n * See also {@link AxisCore.majorGridLineStyle} to style the major gridlines\r\n */\r\n set: function (drawMajorGridLines) {\r\n this.drawMajorGridLinesProperty = drawMajorGridLines;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_MAJOR_GRID_LINES);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"drawMinorGridLines\", {\r\n /**\r\n * When true, minor gridlines (lines inside the chart viewport area) are drawn, else they are not drawn\r\n * @description\r\n * SciChart makes a distinction between axis Gridlines (drawn inside the chart) and axis ticks (small marks drawn outside the chart).\r\n *\r\n * Also, an Axis draws its own gridlines, for example a YAxis, which is vertical in a 2D Chart, draws gridlines horizontally at y-spacings.\r\n *\r\n * Similarly, an XAxis, which is horizontal in a 2D chart, draws gridlines vertically at X-spacings.\r\n * @remarks\r\n * See also {@link AxisCore.minorGridLineStyle} to style the minor gridlines\r\n */\r\n get: function () {\r\n return this.drawMinorGridLinesProperty;\r\n },\r\n /**\r\n * When true, minor gridlines (lines inside the chart viewport area) are drawn, else they are not drawn\r\n * @description\r\n * SciChart makes a distinction between axis Gridlines (drawn inside the chart) and axis ticks (small marks drawn outside the chart).\r\n *\r\n * Also, an Axis draws its own gridlines, for example a YAxis, which is vertical in a 2D Chart, draws gridlines horizontally at y-spacings.\r\n *\r\n * Similarly, an XAxis, which is horizontal in a 2D chart, draws gridlines vertically at X-spacings.\r\n * @remarks\r\n * See also {@link AxisCore.minorGridLineStyle} to style the minor gridlines\r\n */\r\n set: function (drawMinorGridLines) {\r\n this.drawMinorGridLinesProperty = drawMinorGridLines;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_MINOR_GRID_LINES);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"drawMajorTickLines\", {\r\n /**\r\n * When true, major gridlines (small lines outside the chart viewport area) are drawn, else they are not drawn\r\n * @description\r\n * SciChart makes a distinction between axis Gridlines (drawn inside the chart) and axis ticks (small marks drawn outside the chart).\r\n *\r\n * Also, an Axis draws its own ticklines, for example a YAxis, which is vertical in a 2D Chart, draws ticklines horizontally at y-spacings.\r\n *\r\n * Similarly, an XAxis, which is horizontal in a 2D chart, draws ticklines vertically at X-spacings.\r\n * @remarks\r\n * See also {@link AxisCore.majorTickLineStyle} to style the major tick lines\r\n */\r\n get: function () {\r\n return this.drawMajorTickLinesProperty;\r\n },\r\n /**\r\n * When true, major gridlines (small lines outside the chart viewport area) are drawn, else they are not drawn\r\n * @description\r\n * SciChart makes a distinction between axis Gridlines (drawn inside the chart) and axis ticks (small marks drawn outside the chart).\r\n *\r\n * Also, an Axis draws its own ticklines, for example a YAxis, which is vertical in a 2D Chart, draws ticklines horizontally at y-spacings.\r\n *\r\n * Similarly, an XAxis, which is horizontal in a 2D chart, draws ticklines vertically at X-spacings.\r\n * @remarks\r\n * See also {@link AxisCore.majorTickLineStyle} to style the major tick lines\r\n */\r\n set: function (drawMajorTickLines) {\r\n this.drawMajorTickLinesProperty = drawMajorTickLines;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_MAJOR_TICK_LINES);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"drawMinorTickLines\", {\r\n /**\r\n * When true, minor gridlines (small lines outside the chart viewport area) are drawn, else they are not drawn\r\n * @description\r\n * SciChart makes a distinction between axis Gridlines (drawn inside the chart) and axis ticks (small marks drawn outside the chart).\r\n *\r\n * Also, an Axis draws its own ticklines, for example a YAxis, which is vertical in a 2D Chart, draws ticklines horizontally at y-spacings.\r\n *\r\n * Similarly, an XAxis, which is horizontal in a 2D chart, draws ticklines vertically at X-spacings.\r\n * @remarks\r\n * See also {@link AxisCore.minorTickLineStyle} to style the minor tick lines\r\n */\r\n get: function () {\r\n return this.drawMinorTickLinesProperty;\r\n },\r\n /**\r\n * When true, minor gridlines (small lines outside the chart viewport area) are drawn, else they are not drawn\r\n * @description\r\n * SciChart makes a distinction between axis Gridlines (drawn inside the chart) and axis ticks (small marks drawn outside the chart).\r\n *\r\n * Also, an Axis draws its own ticklines, for example a YAxis, which is vertical in a 2D Chart, draws ticklines horizontally at y-spacings.\r\n *\r\n * Similarly, an XAxis, which is horizontal in a 2D chart, draws ticklines vertically at X-spacings.\r\n * @remarks\r\n * See also {@link AxisCore.minorTickLineStyle} to style the minor tick lines\r\n */\r\n set: function (drawMinorTickLines) {\r\n this.drawMinorTickLinesProperty = drawMinorTickLines;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_MINOR_TICK_LINES);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"drawMajorBands\", {\r\n /**\r\n * When true, draws bands, a solid color fill between alternative major gridlines, else they are not drawn\r\n * @remarks\r\n * See also the {@link AxisCore.axisBandsFill} property to style this element\r\n */\r\n get: function () {\r\n return this.drawMajorBandsProperty;\r\n },\r\n /**\r\n * When true, draws bands, a solid color fill between alternative major gridlines, else they are not drawn\r\n * @remarks\r\n * See also the {@link AxisCore.axisBandsFill} property to style this element\r\n */\r\n set: function (drawMajorBands) {\r\n this.drawMajorBandsProperty = drawMajorBands;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_MAJOR_BANDS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"drawLabels\", {\r\n // TODO: We need a way to set Font family, style and color for axis labels and add @remarks here like other properties\r\n /**\r\n * When true, draws labels on the axis, else they are not drawn\r\n */\r\n get: function () {\r\n return this.drawLabelsProperty;\r\n },\r\n // TODO: We need a way to set Font family, style and color for axis labels and add @remarks here like other properties\r\n /**\r\n * When true, draws labels on the axis, else they are not drawn\r\n */\r\n set: function (drawLabels) {\r\n this.drawLabelsProperty = drawLabels;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_LABELS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"flippedCoordinates\", {\r\n /**\r\n * When true, axis coordinates are flipped, e.g. a {@link NumericAxis} with {@link AxisCore.visibleRange | VisibleRange}\r\n * 0..10 will render from 10 to 0\r\n */\r\n get: function () {\r\n return this.flippedCoordinatesProperty;\r\n },\r\n /**\r\n * When true, axis coordinates are flipped, e.g. a {@link NumericAxis} with {@link AxisCore.visibleRange | VisibleRange}\r\n * 0..10 will render from 10 to 0\r\n */\r\n set: function (flippedCoordinates) {\r\n if (this.flippedCoordinatesProperty !== flippedCoordinates) {\r\n this.flippedCoordinatesProperty = flippedCoordinates;\r\n this.clearCoordCalcCache();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FLIPPED_COORDINATES);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"axisBandsFill\", {\r\n /**\r\n * Gets or sets the Axis Bands fill as an HTML Color code\r\n * @remarks See {@link AxisCore.drawMajorBands} to switch band drawing on and off\r\n */\r\n get: function () {\r\n return this.axisBandsFillProperty;\r\n },\r\n /**\r\n * Gets or sets the Axis Bands fill as an HTML Color code\r\n * @remarks See {@link AxisCore.drawMajorBands} to switch band drawing on and off\r\n */\r\n set: function (axisBandsFill) {\r\n this.axisBandsFillProperty = axisBandsFill;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_BANDS_FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"autoRange\", {\r\n /**\r\n * gets or sets the Auto-Ranging behaviour on the axis. See {@link EAutoRange} for a list of values. The default value is\r\n * {@link EAutoRange.Once}\r\n */\r\n get: function () {\r\n return this.autoRangeProperty;\r\n },\r\n /**\r\n * gets or sets the Auto-Ranging behaviour on the axis. See {@link EAutoRange} for a list of values. The default value is\r\n * {@link EAutoRange.Once}\r\n */\r\n set: function (autoRange) {\r\n this.autoRangeProperty = autoRange;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AUTO_RANGE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"majorTickLineStyle\", {\r\n /**\r\n * @summary Gets or sets the Major Tick lines style\r\n * @remarks See {@link TTickLineStyle} for the type which contains style options\r\n */\r\n get: function () {\r\n return this.majorTickLineStyleProperty;\r\n },\r\n /**\r\n * @summary Gets or sets the Major Tick lines style\r\n * @remarks See {@link TTickLineStyle} for the type which contains style options\r\n */\r\n set: function (majorTickLineStyle) {\r\n this.majorTickLineStyleProperty = __assign(__assign({}, this.majorTickLineStyle), majorTickLineStyle);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MAJOR_TICK_LINE_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"minorTickLineStyle\", {\r\n /**\r\n * @summary Gets or sets the Minor Tick lines style\r\n * @remarks See {@link TTickLineStyle} for the type which contains style options\r\n */\r\n get: function () {\r\n return this.minorTickLineStyleProperty;\r\n },\r\n /**\r\n * @summary Gets or sets the Minor Tick lines style\r\n * @remarks See {@link TTickLineStyle} for the type which contains style options\r\n */\r\n set: function (minorTickLineStyle) {\r\n this.minorTickLineStyleProperty = __assign(__assign({}, this.minorTickLineStyle), minorTickLineStyle);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MINOR_TICK_LINE_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"majorGridLineStyle\", {\r\n /**\r\n * @summary Gets or sets the Major gridlines style\r\n * @remarks See {@link TGridLineStyle} for the type which contains style options\r\n */\r\n get: function () {\r\n return this.majorGridLineStyleProperty;\r\n },\r\n /**\r\n * @summary Gets or sets the Major gridlines style\r\n * @remarks See {@link TGridLineStyle} for the type which contains style options\r\n */\r\n set: function (majorGridLineStyle) {\r\n this.majorGridLineStyleProperty = __assign(__assign({}, this.majorGridLineStyle), majorGridLineStyle);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MAJOR_GRID_LINE_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"minorGridLineStyle\", {\r\n /**\r\n * @summary Gets or sets the Minor gridlines style\r\n * @remarks See {@link TGridLineStyle} for the type which contains style options\r\n */\r\n get: function () {\r\n return this.minorGridLineStyleProperty;\r\n },\r\n /**\r\n * @summary Gets or sets the Minor gridlines style\r\n * @remarks See {@link TGridLineStyle} for the type which contains style options\r\n */\r\n set: function (minorGridLineStyle) {\r\n this.minorGridLineStyleProperty = __assign(__assign({}, this.minorGridLineStyle), minorGridLineStyle);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MINOR_GRID_LINE_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"dpiAdjustedAxisTitleStyle\", {\r\n /**\r\n * Gets the {@link axisTitleStyle} adjusted for current DPI / Browser zoom level\r\n */\r\n get: function () {\r\n return DpiHelper_1.DpiHelper.adjustTextStyle(this.axisTitleStyleProperty);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"axisTitleStyle\", {\r\n /**\r\n * @summary Gets or sets the Axis Title style\r\n * @remarks See {@link TAxisTitleStyle} for the type which contains style options\r\n */\r\n get: function () {\r\n return this.axisTitleStyleProperty;\r\n },\r\n /**\r\n * @summary Gets or sets the Axis Title style\r\n * @remarks See {@link TAxisTitleStyle} for the type which contains style options\r\n */\r\n set: function (textStyle) {\r\n this.axisTitleStyleProperty = __assign(__assign({}, this.axisTitleStyle), textStyle);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"axisTitle\", {\r\n /**\r\n * Gets or sets the Axis title string\r\n * Use an array to create a multiLine title\r\n */\r\n get: function () {\r\n return this.axisTitleProperty;\r\n },\r\n /**\r\n * Gets or sets the Axis title string\r\n * Use an array to create a multiLine title\r\n */\r\n set: function (axisTitle) {\r\n this.axisTitleProperty = axisTitle;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_TITLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"tickProvider\", {\r\n /**\r\n * Gets or sets a {@link TickProvider} - a class which calculates ticks (interval between major and minor gridlines, ticks and labels)\r\n */\r\n get: function () {\r\n return this.tickProviderProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link TickProvider} - a class which calculates ticks (interval between major and minor gridlines, ticks and labels)\r\n * @param tickProvider\r\n */\r\n set: function (tickProvider) {\r\n var _a;\r\n (_a = this.tickProviderProperty) === null || _a === void 0 ? void 0 : _a.detachedFromAxis();\r\n this.tickProviderProperty = tickProvider;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TICK_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"labelProvider\", {\r\n /**\r\n * Gets or sets a {@link LabelProvider} - a class which is responsible for formatting axis labels and cursor labels from numeric values\r\n */\r\n get: function () {\r\n return this.labelProviderProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link LabelProvider} - a class which is responsible for formatting axis labels and cursor labels from numeric values\r\n */\r\n set: function (labelProvider) {\r\n var _a;\r\n (_a = this.labelProviderProperty) === null || _a === void 0 ? void 0 : _a.detachedFromAxis();\r\n this.labelProviderProperty = labelProvider;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"deltaCalculator\", {\r\n /**\r\n * Gets or sets a {@link DeltaCalculator} - a class which is responsible for calculating the Major and Minor delta,\r\n * which are used for gridline spacing\r\n */\r\n get: function () {\r\n return this.deltaCalculatorProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link DeltaCalculator} - a class which is responsible for calculating the Major and Minor delta,\r\n * which are used for gridline spacing\r\n */\r\n set: function (deltaCalculator) {\r\n var _a;\r\n (_a = this.deltaCalculator) === null || _a === void 0 ? void 0 : _a.detachedFromAxis();\r\n this.deltaCalculatorProperty = deltaCalculator;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DELTA_CALCULATOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"tickCoordinatesProvider\", {\r\n /**\r\n * Gets or sets a {@link TickCoordinatesProvider} - a class which is responsible for converting tick values to pixel coordinates\r\n */\r\n get: function () {\r\n return this.tickCoordinatesProviderProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link TickCoordinatesProvider} - a class which is responsible for converting tick values to pixel coordinates\r\n */\r\n set: function (tickCoordinatesProvider) {\r\n var _a;\r\n (_a = this.tickCoordinatesProviderProperty) === null || _a === void 0 ? void 0 : _a.detachedFromAxis();\r\n this.tickCoordinatesProviderProperty = tickCoordinatesProvider;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TICK_COORDINATES_CALCULATOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"maxAutoTicks\", {\r\n /**\r\n * Gets or sets the max-auto-ticks. A hint which limits the number of major gridlines and labels (aka major ticks) on the axis\r\n * at any one time. This value is a hint, and actual value of ticks may be lower than this\r\n */\r\n get: function () {\r\n return this.maxAutoTicksProperty;\r\n },\r\n /**\r\n * Gets or sets the max-auto-ticks. A hint which limits the number of major gridlines and labels (aka major ticks) on the axis\r\n * at any one time. This value is a hint, and actual value of ticks may be lower than this\r\n */\r\n set: function (value) {\r\n this.maxAutoTicksProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MAX_AUTO_TICKS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"autoTicks\", {\r\n /**\r\n * A boolean flag, when true, the axis will automatically calculate its Major and Minor delta.\r\n * When false, the user can specify or set these properties for overriding axis gridline spacing\r\n */\r\n get: function () {\r\n return this.autoTicksProperty;\r\n },\r\n /**\r\n * A boolean flag, when true, the axis will automatically calculate its Major and Minor delta.\r\n * When false, the user can specify or set these properties for overriding axis gridline spacing\r\n */\r\n set: function (value) {\r\n this.autoTicksProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AUTO_TICKS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets the current {@link CoordinateCalculatorBase} instance. Recreates the coordinate-calculator if it does not match the axis values\r\n * The coordinate-calculator allows you to transform between pixel and data coordinates (and vice versa)\r\n */\r\n AxisCore.prototype.getCurrentCoordinateCalculator = function () {\r\n if (this.coordCalcCache && this.coordCalcCache.viewportDimension !== this.getAxisSize()) {\r\n this.clearCoordCalcCache();\r\n }\r\n if (!this.coordCalcCache) {\r\n this.coordCalcCache = this.getCurrentCoordinateCalculatorInternal();\r\n }\r\n return this.coordCalcCache;\r\n };\r\n /** Force the recreation of the coordinate calculator the next time it is requested\r\n * Required if the dataSeries has changed on a category axis\r\n */\r\n AxisCore.prototype.clearCoordCalcCache = function () {\r\n this.coordCalcCache = (0, Deleter_1.deleteSafe)(this.coordCalcCache);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n AxisCore.prototype.delete = function () {\r\n this.deltaCalculator = undefined;\r\n this.tickProvider = undefined;\r\n this.tickCoordinatesProvider = undefined;\r\n this.labelProviderProperty = (0, Deleter_1.deleteSafe)(this.labelProvider);\r\n this.coordCalcCache = (0, Deleter_1.deleteSafe)(this.coordCalcCache);\r\n };\r\n /**\r\n * Tests whether the range passed in is valid\r\n * @param range The range\r\n */\r\n AxisCore.prototype.isValidRange = function (range) {\r\n var isInvalid = !range || !range.isDefined() || range.min > range.max;\r\n return !isInvalid;\r\n };\r\n Object.defineProperty(AxisCore.prototype, \"isVerticalChart\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisCore.prototype, \"isHorizontalAxis\", {\r\n get: function () {\r\n return this.isXAxis;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * SET INTERNALLY. Sets whether this axis is an XAxis or not\r\n * @remarks\r\n * See {@link AxisBase2D.axisAlignment} if you want to set a 2D Axis alignment to the left, right, top or bottom\r\n */\r\n AxisCore.prototype.setIsXAxis = function (isXAxis) {\r\n this.isXAxisProperty = isXAxis;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_XAXIS);\r\n };\r\n AxisCore.prototype.coerceZeroVisibleRange = function (range) {\r\n Guard_1.Guard.notNull(range, \"range\");\r\n if (range.isZero()) {\r\n if (range.min === 0) {\r\n return new NumberRange_1.NumberRange(-1, 1);\r\n }\r\n else {\r\n return range.growBy(new NumberRange_1.NumberRange(this.ZeroRangeGrowBy, this.ZeroRangeGrowBy));\r\n }\r\n }\r\n return range;\r\n };\r\n /**\r\n * Notifies listeners to {@link AxisCore.invalidateParentCallback} that a property has changed and the parent chart needs to be redrawn.\r\n * @remarks Override this in derived classes if you want to notified of a specific property change\r\n * @param propertyName The property name which has changed.\r\n */\r\n AxisCore.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a, _b, _c, _d;\r\n if (propertyName === constants_1.PROPERTY.DELTA_CALCULATOR) {\r\n (_a = this.deltaCalculator) === null || _a === void 0 ? void 0 : _a.attachedToAxis(this);\r\n }\r\n if (propertyName === constants_1.PROPERTY.TICK_PROVIDER) {\r\n (_b = this.tickProvider) === null || _b === void 0 ? void 0 : _b.attachedToAxis(this);\r\n }\r\n if (propertyName === constants_1.PROPERTY.LABEL_PROVIDER) {\r\n (_c = this.labelProvider) === null || _c === void 0 ? void 0 : _c.attachedToAxis(this);\r\n }\r\n if (propertyName === constants_1.PROPERTY.TICK_COORDINATES_CALCULATOR) {\r\n (_d = this.tickCoordinatesProvider) === null || _d === void 0 ? void 0 : _d.attachedToAxis(this);\r\n }\r\n if (this.isMeasured && this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n AxisCore.prototype.getMaxAutoTicks = function () {\r\n return Math.max(1, this.maxAutoTicks);\r\n };\r\n /**\r\n * The Default {@link AxisCore.id}\r\n * @description\r\n * By default all axis in SciChart have Id={@link AxisCore.DEFAULT_AXIS_ID}. Also, all {@link BaseRenderableSeries | RenderableSeries}\r\n * have an xAxisId and yAxisId property set to {@link AxisCore.DEFAULT_AXIS_ID}. {@link AnnotationBase | Annotations} also have an xAxisId and\r\n * yAxisId also set to {@link AxisCore.DEFAULT_AXIS_ID}. Some {@link ChartModifierBase | Chart Modifiers} have an x,yAxisId property to filter\r\n * their operations to an axis.\r\n *\r\n * In multi-axis scenarios you will need to set the xAxisId/yAxisId properties of series, annotations, modifiers to match that of the axis\r\n * you want them to be registered on.\r\n */\r\n AxisCore.DEFAULT_AXIS_ID = \"DefaultAxisId\";\r\n return AxisCore;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.AxisCore = AxisCore;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxisLayoutState = void 0;\r\n/**\r\n * Properties to describe axis layout state\r\n */\r\nvar AxisLayoutState = /** @class */ (function () {\r\n function AxisLayoutState() {\r\n this.axisSize = 0;\r\n // Additional horizontal size required by axis for correct rendering\r\n this.additionalLeftSize = 0;\r\n this.additionalRightSize = 0;\r\n // Additional vertical size required by axis for correct rendering\r\n this.additionalTopSize = 0;\r\n this.additionalBottomSize = 0;\r\n }\r\n AxisLayoutState.prototype.clear = function () {\r\n this.axisSize = 0;\r\n this.additionalLeftSize = 0;\r\n this.additionalRightSize = 0;\r\n this.additionalTopSize = 0;\r\n this.additionalBottomSize = 0;\r\n };\r\n return AxisLayoutState;\r\n}());\r\nexports.AxisLayoutState = AxisLayoutState;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.layoutLabelsHelper = exports.AxisRenderer = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar Rect_1 = require(\"../../../Core/Rect\");\r\nvar Thickness_1 = require(\"../../../Core/Thickness\");\r\nvar AxisAlignment_1 = require(\"../../../types/AxisAlignment\");\r\nvar LabelAlignment_1 = require(\"../../../types/LabelAlignment\");\r\nvar logger_1 = require(\"../../../utils/logger\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar WebGlRenderContext2D_1 = require(\"../../Drawing/WebGlRenderContext2D\");\r\nvar createNativeRect_1 = require(\"../Helpers/createNativeRect\");\r\nvar NativeObject_1 = require(\"../Helpers/NativeObject\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar TextureManager_1 = require(\"../TextureManager/TextureManager\");\r\n/**\r\n * Draws an axis using our WebGL Rendering engine\r\n */\r\nvar AxisRenderer = /** @class */ (function (_super) {\r\n __extends(AxisRenderer, _super);\r\n /**\r\n * Creates an instance of a {@link AxisRenderer}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n */\r\n function AxisRenderer(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n _this.viewRect = Rect_1.Rect.createZero();\r\n _this.drawDebug = false;\r\n _this.desiredLabelsSize = 0;\r\n _this.desiredTicksSize = 0;\r\n _this.desiredHeightProperty = 0;\r\n _this.desiredWidthProperty = 0;\r\n _this.axisThicknessProperty = 0;\r\n _this.keepLabelsWithinAxisProperty = true;\r\n _this.hideOverlappingLabelsProperty = true;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.textureManager = new TextureManager_1.TextureManager(webAssemblyContext);\r\n if (!app_1.IS_TEST_ENV) {\r\n _this.measureTextCanvas = document.createElement(\"canvas\");\r\n _this.measureTextCanvas.width = 1;\r\n _this.measureTextCanvas.height = 1;\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n AxisRenderer.prototype.delete = function () {\r\n this.webAssemblyContext = undefined;\r\n this.measureTextCanvas = undefined;\r\n this.parentAxis = undefined;\r\n this.textureManager = (0, Deleter_1.deleteSafe)(this.textureManager);\r\n };\r\n /**\r\n * Called when the {@link AxisRenderer} is attached to an {@link AxisBase2D | Axis}\r\n * @param axis The Axis we are attached to.\r\n */\r\n AxisRenderer.prototype.attachedToAxis = function (axis) {\r\n this.parentAxis = axis;\r\n };\r\n /**\r\n * Called internally - measures the axis label area as part of the layout phase\r\n */\r\n AxisRenderer.prototype.measure = function (isHorizontalAxis, labelStyle, majorTickLabels, ticksSize, labelProvider, drawLabels, drawTicks) {\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"AxisRenderer.measure. fontSize: \".concat(labelStyle.fontSize));\r\n }\r\n this.desiredLabelsSize = drawLabels\r\n ? this.calcDesiredLabelsSize(isHorizontalAxis, labelProvider, labelStyle, majorTickLabels)\r\n : 0;\r\n this.desiredTicksSize = drawTicks ? ticksSize : 0;\r\n var desiredLabelsSize = Math.max(this.desiredLabelsSize, this.axisThicknessProperty * DpiHelper_1.DpiHelper.PIXEL_RATIO);\r\n var desiredSize = desiredLabelsSize + this.desiredTicksSize;\r\n if (isHorizontalAxis) {\r\n this.desiredHeightProperty = desiredSize;\r\n }\r\n else {\r\n this.desiredWidthProperty = desiredSize;\r\n }\r\n };\r\n /**\r\n * Called internally - calculates desired labels size\r\n */\r\n AxisRenderer.prototype.calcDesiredLabelsSize = function (isHorizontalAxis, labelProvider, labelStyle, majorTickLabels) {\r\n if (app_1.IS_TEST_ENV)\r\n return 0;\r\n var desiredLabelsSize;\r\n var ctx = this.measureTextCanvas.getContext(\"2d\");\r\n if (isHorizontalAxis) {\r\n desiredLabelsSize = labelProvider.getMaxLabelHeightForHorizontalAxis(majorTickLabels, ctx, labelStyle);\r\n }\r\n else {\r\n desiredLabelsSize = labelProvider.getMaxLabelWidthForVerticalAxis(majorTickLabels, ctx, labelStyle);\r\n }\r\n // uncomment this line to get desiredLabelsSize to use in unit tests\r\n // console.log(\"calcDesiredLabelsSize\", this.parentAxis.isXAxis ? \"xAxis\" : \"yAxis\", desiredLabelsSize);\r\n return desiredLabelsSize;\r\n };\r\n Object.defineProperty(AxisRenderer.prototype, \"desiredHeight\", {\r\n /**\r\n * Called internally - Gets or sets desired height during the layout process\r\n */\r\n get: function () {\r\n return this.desiredHeightProperty;\r\n },\r\n set: function (height) {\r\n this.desiredHeightProperty = height;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"desiredWidth\", {\r\n /**\r\n * Called internally - Gets or sets desired width during the layout process\r\n */\r\n get: function () {\r\n return this.desiredWidthProperty;\r\n },\r\n set: function (width) {\r\n this.desiredWidthProperty = width;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"keepLabelsWithinAxis\", {\r\n /**\r\n * Gets or sets keepLabelsWithinAxis property.\r\n * When true (default), first and last labels will be shifted to stay within axis bounds.\r\n * If set to false, these labels will stay aligned to their ticks\r\n */\r\n get: function () {\r\n return this.keepLabelsWithinAxisProperty;\r\n },\r\n set: function (value) {\r\n this.keepLabelsWithinAxisProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"hideOverlappingLabels\", {\r\n /**\r\n * Gets or sets hideOverlappingLabels property.\r\n * Default (true) is to not show labels that would overlap. When using rotation you may want to set this false,\r\n * as the bounding box of rotated text may overlap even if the text itself does not.\r\n */\r\n get: function () {\r\n return this.hideOverlappingLabelsProperty;\r\n },\r\n set: function (value) {\r\n this.hideOverlappingLabelsProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisRenderer.prototype, \"axisThickness\", {\r\n /**\r\n * Gets or sets axis label area thickness, by default the size is calculated to have enough space for labels.\r\n * However, this property allows to set minimal width/height for vertical/horizontal axes.\r\n * Useful to align seriesViewRects for different charts\r\n */\r\n get: function () {\r\n return this.axisThicknessProperty;\r\n },\r\n set: function (value) {\r\n this.axisThicknessProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Called internally as a part of the layout process\r\n */\r\n AxisRenderer.prototype.layout = function (rect) {\r\n this.viewRect = rect;\r\n // Not much we can do here as we don't have access to tick coordinates yet\r\n };\r\n /**\r\n * Called internally - draws labels\r\n */\r\n AxisRenderer.prototype.drawLabels = function (renderContext, axisAlignment, isInnerAxis, tickLabels, tickCoords, axisOffset, labelStyle, isVerticalChart, isFlippedCoordinates, labelProvider) {\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"AxisRenderer.drawLabels. fontSize: \".concat(labelStyle.fontSize));\r\n }\r\n var _a = this, viewRect = _a.viewRect, textureManager = _a.textureManager;\r\n var nativeContext = renderContext.getNativeContext();\r\n var isAxisFlipped = isVerticalChart ? (0, AxisAlignment_1.getIsHorizontal)(axisAlignment) : (0, AxisAlignment_1.getIsVertical)(axisAlignment);\r\n var width = Math.floor(viewRect.width);\r\n var height = Math.floor(viewRect.height);\r\n var tickSize = this.desiredTicksSize;\r\n var ctx;\r\n var padding = labelStyle.padding, alignment = labelStyle.alignment;\r\n if (isAxisFlipped) {\r\n tickCoords = tickCoords.reverse();\r\n tickLabels = tickLabels.reverse();\r\n }\r\n // for debug\r\n var labelRects = [];\r\n var textColor = (0, parseColor_1.parseColorToUIntArgb)(labelStyle.color);\r\n var nativeFont = labelProvider.useNativeText\r\n ? renderContext.getFont(labelStyle, labelProvider.rotation !== 0)\r\n : null;\r\n var textBounds = labelProvider.useNativeText ? (0, NativeObject_1.getTextBounds)(this.webAssemblyContext) : null;\r\n if (!nativeFont) {\r\n // The clearRect in here is slow.\r\n ctx = textureManager.getTextureContext(width, height);\r\n }\r\n var adjRotation = labelProvider.rotation;\r\n if (adjRotation > 90)\r\n adjRotation -= 180;\r\n else if (adjRotation < -90)\r\n adjRotation += 180;\r\n var rotationRad = -(adjRotation * Math.PI) / 180;\r\n tickCoords = tickCoords.map(function (t) { return t - axisOffset; });\r\n var multiLineAlignment = convertMultiLineAlignment(alignment, this.webAssemblyContext);\r\n var nativeLineSpacing = labelProvider.lineSpacing;\r\n var lineHeight = 0;\r\n if (nativeFont) {\r\n nativeFont.CalculateStringBounds(\"Ag\", textBounds, 0);\r\n lineHeight = textBounds.GetLineBounds(0).m_fHeight;\r\n }\r\n if ((0, AxisAlignment_1.getIsHorizontal)(axisAlignment)) {\r\n var labelHeights = [];\r\n var labelWidths = [];\r\n if (!labelProvider.useCache && labelProvider.useNativeText) {\r\n for (var _i = 0, tickLabels_1 = tickLabels; _i < tickLabels_1.length; _i++) {\r\n var label = tickLabels_1[_i];\r\n nativeFont.CalculateStringBounds(label !== null && label !== void 0 ? label : \"\", textBounds, 2);\r\n labelHeights.push(textBounds.m_fHeight + labelStyle.padding.top + labelStyle.padding.bottom);\r\n labelWidths.push(textBounds.m_fWidth + labelStyle.padding.left + labelStyle.padding.right);\r\n }\r\n }\r\n else {\r\n labelHeights = tickLabels.map(function (label) { return labelProvider.getLabelHeight(ctx, label, labelStyle); });\r\n labelWidths = tickLabels.map(function (label) { return labelProvider.getLabelWidth(ctx, label, labelStyle); });\r\n }\r\n var _b = this.layoutLabels(width, tickCoords, labelWidths, isFlippedCoordinates, padding === null || padding === void 0 ? void 0 : padding.top, padding === null || padding === void 0 ? void 0 : padding.bottom), labelCoords = _b.labelCoords, labelIndexes = _b.labelIndexes;\r\n for (var index = 0; index < labelIndexes.length; index++) {\r\n var xCoord = labelCoords[index];\r\n var labelText = tickLabels[labelIndexes[index]];\r\n var labelHeight = labelHeights[labelIndexes[index]];\r\n var yCoord = 0;\r\n // Always align to the axis for horizontal\r\n if ((axisAlignment === AxisAlignment_1.EAxisAlignment.Bottom && !isInnerAxis) ||\r\n (axisAlignment === AxisAlignment_1.EAxisAlignment.Top && isInnerAxis)) {\r\n yCoord += tickSize;\r\n }\r\n else {\r\n yCoord += height - labelHeight - tickSize;\r\n }\r\n if (this.drawDebug) {\r\n labelRects.push(Rect_1.Rect.create(xCoord, yCoord, labelWidths[labelIndexes[index]], labelHeight));\r\n }\r\n try {\r\n if (nativeFont) {\r\n var tx = xCoord + viewRect.left + padding.left;\r\n var ty = yCoord + viewRect.top + lineHeight + padding.top;\r\n var rx = tx;\r\n var ry = ty - lineHeight;\r\n if (rotationRad !== 0) {\r\n var _c = labelProvider.getNativeLabelInfo(labelText), textWidth = _c.textWidth, textHeight = _c.textHeight;\r\n tx =\r\n tickCoords[labelIndexes[index]] +\r\n viewRect.left -\r\n (textHeight * Math.sin(rotationRad)) / 2;\r\n rx = tx;\r\n if (rotationRad > 0) {\r\n // rotating up\r\n tx -= textWidth;\r\n }\r\n }\r\n nativeFont.DrawStringAdvanced(labelText !== null && labelText !== void 0 ? labelText : \"\", textColor, Math.round(tx), Math.round(ty), (0, NativeObject_1.getVector4)(this.webAssemblyContext, rx, ry, rotationRad, 0), multiLineAlignment, nativeLineSpacing);\r\n }\r\n else {\r\n var _d = labelProvider.getCachedLabelTexture(labelText, textureManager, labelStyle), bitmapTexture = _d.bitmapTexture, textureHeight = _d.textureHeight, textureWidth = _d.textureWidth;\r\n if (bitmapTexture) {\r\n nativeContext.DrawTexture(bitmapTexture, Math.round(xCoord + viewRect.left), Math.round(yCoord + viewRect.top), textureWidth, textureHeight);\r\n if (!labelProvider.useCache) {\r\n bitmapTexture.delete();\r\n }\r\n }\r\n }\r\n }\r\n catch (err) {\r\n logger_1.Logger.debug(err);\r\n // webgl context probably lost. Clear the label cache\r\n labelProvider.delete();\r\n }\r\n }\r\n }\r\n else {\r\n var labelHeights = [];\r\n var labelWidths = [];\r\n if (!labelProvider.useCache && labelProvider.useNativeText) {\r\n for (var _e = 0, tickLabels_2 = tickLabels; _e < tickLabels_2.length; _e++) {\r\n var label = tickLabels_2[_e];\r\n nativeFont.CalculateStringBounds(label !== null && label !== void 0 ? label : \"\", textBounds, 2);\r\n labelHeights.push(textBounds.m_fHeight + labelStyle.padding.top + labelStyle.padding.bottom);\r\n labelWidths.push(textBounds.m_fWidth + labelStyle.padding.left + labelStyle.padding.right);\r\n }\r\n }\r\n else {\r\n labelHeights = tickLabels.map(function (label) { return labelProvider.getLabelHeight(ctx, label, labelStyle); });\r\n labelWidths = tickLabels.map(function (label) { return labelProvider.getLabelWidth(ctx, label, labelStyle); });\r\n }\r\n var _f = this.layoutLabels(height, tickCoords, labelHeights, isFlippedCoordinates, padding === null || padding === void 0 ? void 0 : padding.left, padding === null || padding === void 0 ? void 0 : padding.right), labelCoords = _f.labelCoords, labelIndexes = _f.labelIndexes;\r\n for (var index = 0; index < labelIndexes.length; index++) {\r\n var xCoord = 0;\r\n var labelText = tickLabels[labelIndexes[index]];\r\n var labelWidth = labelWidths[labelIndexes[index]];\r\n xCoord = this.adjustForLabelAlignment(xCoord, labelWidth, alignment, axisAlignment, isInnerAxis, width, tickSize);\r\n var yCoord = labelCoords[index];\r\n if (this.drawDebug) {\r\n labelRects.push(Rect_1.Rect.create(xCoord, yCoord, labelWidth, labelHeights[labelIndexes[index]]));\r\n }\r\n try {\r\n if (nativeFont) {\r\n var tx = xCoord + viewRect.left + padding.left;\r\n var ty = yCoord + viewRect.top + lineHeight + padding.top;\r\n nativeFont.DrawStringAdvanced(labelText !== null && labelText !== void 0 ? labelText : \"\", textColor, Math.round(tx), Math.round(ty), (0, NativeObject_1.getVector4)(this.webAssemblyContext, tx, ty, rotationRad, 0), multiLineAlignment, nativeLineSpacing);\r\n }\r\n else {\r\n var _g = labelProvider.getCachedLabelTexture(labelText, textureManager, labelStyle), bitmapTexture = _g.bitmapTexture, textureHeight = _g.textureHeight, textureWidth = _g.textureWidth;\r\n if (bitmapTexture) {\r\n nativeContext.DrawTexture(bitmapTexture, Math.round(xCoord + viewRect.left), Math.round(yCoord + viewRect.top), textureWidth, textureHeight);\r\n if (!labelProvider.useCache) {\r\n bitmapTexture.delete();\r\n }\r\n }\r\n }\r\n }\r\n catch (err) {\r\n logger_1.Logger.debug(err);\r\n // webgl context probably lost. Clear the label cache\r\n labelProvider.delete();\r\n }\r\n }\r\n }\r\n if (this.drawDebug) {\r\n this.drawLabelViewRects(renderContext, viewRect, labelRects);\r\n }\r\n };\r\n /**\r\n * Called internally - adjusts labels for label alignment\r\n */\r\n AxisRenderer.prototype.adjustForLabelAlignment = function (xCoord, labelWidth, labelAlignment, axisAlignment, isInnerAxis, axisWidth, tickSize) {\r\n var adj = axisWidth - tickSize - labelWidth;\r\n if ((axisAlignment === AxisAlignment_1.EAxisAlignment.Left && !isInnerAxis) ||\r\n (axisAlignment === AxisAlignment_1.EAxisAlignment.Right && isInnerAxis)) {\r\n if (labelAlignment === LabelAlignment_1.ELabelAlignment.Right || labelAlignment === LabelAlignment_1.ELabelAlignment.Auto) {\r\n xCoord += adj;\r\n }\r\n else if (labelAlignment === LabelAlignment_1.ELabelAlignment.Center) {\r\n xCoord += adj / 2;\r\n }\r\n }\r\n else {\r\n if (labelAlignment === LabelAlignment_1.ELabelAlignment.Left || labelAlignment === LabelAlignment_1.ELabelAlignment.Auto) {\r\n xCoord += tickSize;\r\n }\r\n else if (labelAlignment === LabelAlignment_1.ELabelAlignment.Center) {\r\n xCoord += tickSize + adj / 2;\r\n }\r\n else {\r\n xCoord += axisWidth - labelWidth;\r\n }\r\n }\r\n return xCoord;\r\n };\r\n /**\r\n * Called internally\r\n */\r\n AxisRenderer.prototype.layoutLabels = function (size, tickCoords, labelSizes, isFlippedCoordinates, padBefore, padAfter) {\r\n return (0, exports.layoutLabelsHelper)(this.keepLabelsWithinAxis, this.hideOverlappingLabels, size, tickCoords, labelSizes, isFlippedCoordinates);\r\n };\r\n /**\r\n * Called internally\r\n */\r\n AxisRenderer.prototype.drawTicks = function (renderContext, axisAlignment, isInnerAxis, tickCoords, axisOffset, pen, tickStyle) {\r\n var _this = this;\r\n if (!tickCoords || tickCoords.length === 0)\r\n return;\r\n var viewRect = this.viewRect;\r\n var tickSize = tickStyle.tickSize;\r\n var vertices = (0, NativeObject_1.getVectorColorVertex)(this.webAssemblyContext);\r\n vertices.clear();\r\n var isHorizontal = (0, AxisAlignment_1.getIsHorizontal)(axisAlignment);\r\n if (isHorizontal === undefined) {\r\n return;\r\n }\r\n tickCoords.forEach(function (tc) {\r\n var x1, x2, y1, y2;\r\n if (isInnerAxis) {\r\n if (isHorizontal) {\r\n x1 = tc;\r\n x2 = tc;\r\n y1 = axisAlignment === AxisAlignment_1.EAxisAlignment.Top ? 0 : viewRect.height;\r\n y2 = axisAlignment === AxisAlignment_1.EAxisAlignment.Top ? tickSize : viewRect.height - tickSize;\r\n }\r\n else {\r\n x1 = axisAlignment === AxisAlignment_1.EAxisAlignment.Left ? 0 : viewRect.width;\r\n x2 = axisAlignment === AxisAlignment_1.EAxisAlignment.Left ? tickSize : viewRect.width - tickSize;\r\n y1 = tc;\r\n y2 = tc;\r\n }\r\n }\r\n else {\r\n if (isHorizontal) {\r\n x1 = tc;\r\n x2 = tc;\r\n y1 = axisAlignment === AxisAlignment_1.EAxisAlignment.Bottom ? 0 : viewRect.height;\r\n y2 = axisAlignment === AxisAlignment_1.EAxisAlignment.Bottom ? tickSize : viewRect.height - tickSize;\r\n }\r\n else {\r\n x1 = axisAlignment === AxisAlignment_1.EAxisAlignment.Right ? 0 : viewRect.width;\r\n x2 = axisAlignment === AxisAlignment_1.EAxisAlignment.Right ? tickSize : viewRect.width - tickSize;\r\n y1 = tc;\r\n y2 = tc;\r\n }\r\n }\r\n var vertex = (0, NativeObject_1.getVertex)(_this.webAssemblyContext, x1, y1);\r\n vertices.push_back(vertex);\r\n var vertex2 = (0, NativeObject_1.getVertex)(_this.webAssemblyContext, x2, y2);\r\n vertices.push_back(vertex2);\r\n });\r\n var leftOffset = viewRect.left - (isHorizontal ? axisOffset : 0);\r\n var topOffset = viewRect.top - (isHorizontal ? 0 : axisOffset);\r\n renderContext.drawLinesNative(vertices, pen, WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine, leftOffset, topOffset);\r\n };\r\n /**\r\n * Called internally - draws axis labels when needed, for example for line annotations\r\n */\r\n AxisRenderer.prototype.drawModifiersAxisLabel = function (renderContext, displayValue, coord, axisAlignment, textStyle, fill) {\r\n if (!displayValue)\r\n return undefined;\r\n var nativeContext = renderContext.getNativeContext();\r\n var _a = this.textureManager.createSimpleTextTexture(displayValue, __assign(__assign({}, textStyle), { padding: new Thickness_1.Thickness(2, 2, 2, 2) }), fill), bitmapTexture = _a.bitmapTexture, textureHeight = _a.textureHeight, textureWidth = _a.textureWidth;\r\n var canvas = {\r\n height: this.parentAxis.parentSurface.domCanvas2D.height,\r\n width: this.parentAxis.parentSurface.domCanvas2D.width\r\n };\r\n var getPosition = function (viewRectSize, coord, canvasSize, textureSize$) {\r\n if (viewRectSize + coord < textureSize$ / 2) {\r\n return 0;\r\n }\r\n else if (viewRectSize + coord > canvasSize - textureSize$ / 2) {\r\n return canvasSize - textureSize$;\r\n }\r\n else {\r\n return viewRectSize + coord - textureSize$ / 2;\r\n }\r\n };\r\n var offset = this.parentAxis.offset;\r\n var xPosition, yPosition;\r\n if (axisAlignment === AxisAlignment_1.EAxisAlignment.Bottom) {\r\n xPosition = getPosition(this.viewRect.x - offset, coord, canvas.width, textureWidth);\r\n yPosition = this.viewRect.y;\r\n if (canvas.height - yPosition < textureHeight) {\r\n yPosition = canvas.height - textureHeight;\r\n }\r\n }\r\n else if (axisAlignment === AxisAlignment_1.EAxisAlignment.Top) {\r\n xPosition = getPosition(this.viewRect.x - offset, coord, canvas.width, textureWidth);\r\n yPosition = this.viewRect.y + this.viewRect.height - textureHeight;\r\n if (this.parentAxis.axisLayoutState.axisSize - this.viewRect.y < textureHeight) {\r\n yPosition = 0;\r\n }\r\n }\r\n else if (axisAlignment === AxisAlignment_1.EAxisAlignment.Left) {\r\n xPosition = this.viewRect.x + this.viewRect.width - textureWidth;\r\n yPosition = getPosition(this.viewRect.y - offset, coord, canvas.height, textureHeight);\r\n if (this.parentAxis.axisLayoutState.axisSize + this.viewRect.x < textureWidth) {\r\n xPosition = 0;\r\n }\r\n }\r\n else if (axisAlignment === AxisAlignment_1.EAxisAlignment.Right) {\r\n xPosition = this.viewRect.x;\r\n yPosition = getPosition(this.viewRect.y - offset, coord, canvas.height, textureHeight);\r\n if (canvas.width - xPosition < textureWidth) {\r\n xPosition = canvas.width - textureWidth;\r\n }\r\n }\r\n nativeContext.DrawTexture(bitmapTexture, Math.round(xPosition), Math.round(yPosition), textureWidth, textureHeight);\r\n bitmapTexture.delete();\r\n return new Rect_1.Rect(xPosition, yPosition, textureWidth, textureHeight);\r\n };\r\n /**\r\n * Called internally - used for {@link AxisMarkerAnnotation}\r\n */\r\n AxisRenderer.prototype.createAxisMarker = function (axisAlignment, text, textStyle, backgroundColor, opacity) {\r\n var fontStyle = textStyle.fontStyle, fontWeight = textStyle.fontWeight, fontSize = textStyle.fontSize, fontFamily = textStyle.fontFamily, color = textStyle.color;\r\n return this.textureManager.createAxisMarkerTexture(axisAlignment, text, fontStyle, fontWeight, fontSize, fontFamily, color, 2 * DpiHelper_1.DpiHelper.PIXEL_RATIO, backgroundColor, opacity);\r\n };\r\n /**\r\n * Called internally - used for custom {@link AxisMarkerAnnotation}\r\n */\r\n AxisRenderer.prototype.createAxisMarkerFromImage = function (image, imageWidth, imageHeight) {\r\n return this.textureManager.createTextureFromImage(image, imageWidth, imageHeight);\r\n };\r\n /**\r\n * Called internally\r\n */\r\n AxisRenderer.prototype.createAnnotationLabelTexture = function (text, textStyle, backgroundColor, displayVertically, displayMirrored, opacity) {\r\n return this.textureManager.createSimpleTextTexture(text, __assign(__assign({}, textStyle), { padding: new Thickness_1.Thickness(2, 2, 2, 2) }), backgroundColor, displayVertically, displayMirrored, opacity);\r\n };\r\n AxisRenderer.prototype.invalidateParent = function () {\r\n if (this.parentAxis && this.parentAxis.invalidateParentCallback) {\r\n this.parentAxis.invalidateParentCallback();\r\n }\r\n };\r\n AxisRenderer.prototype.drawLabelViewRects = function (renderContext, axisRect, rects) {\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(this.webAssemblyContext);\r\n var brush = new this.webAssemblyContext.SCRTSolidBrush((0, parseColor_1.parseColorToUIntArgb)(\"rgba(30,30,255,0.3)\"), false);\r\n for (var _i = 0, rects_1 = rects; _i < rects_1.length; _i++) {\r\n var rect = rects_1[_i];\r\n var nativeRect = (0, createNativeRect_1.createNativeRect)(this.webAssemblyContext, rect.left, rect.top, rect.right, rect.bottom);\r\n vecRects.push_back(nativeRect);\r\n }\r\n renderContext.drawRects(vecRects, brush, axisRect.left, axisRect.top);\r\n brush.delete();\r\n };\r\n return AxisRenderer;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.AxisRenderer = AxisRenderer;\r\n/** @ignore */\r\nvar layoutLabelsHelper = function (keepLabelsWithinAxis, hideOverlappingLabels, size, tickCoords, labelSizes, isFlippedCoordinates) {\r\n var labelSpacing = 0;\r\n var labelCoords = [];\r\n var labelIndexes = [];\r\n var length = labelSizes.length;\r\n var getTickCoord = function (i) { return (isFlippedCoordinates ? tickCoords[length - 1 - i] : tickCoords[i]); };\r\n var getlabelSize = function (i) { return (isFlippedCoordinates ? labelSizes[length - 1 - i] : labelSizes[i]); };\r\n var pushLabelIndex = function (i) {\r\n return isFlippedCoordinates ? labelIndexes.push(length - 1 - i) : labelIndexes.push(i);\r\n };\r\n var lastLabelEnd = 0;\r\n for (var tickIndex = 0; tickIndex < length; tickIndex++) {\r\n var isFirstTick = tickIndex === 0;\r\n var isLastTick = tickIndex === length - 1;\r\n var labelSize = getlabelSize(tickIndex);\r\n var centerDelta = Math.ceil(labelSize / 2);\r\n var coord = getTickCoord(tickIndex);\r\n var labelEnd = 0;\r\n if (keepLabelsWithinAxis && isFirstTick) {\r\n if (coord > centerDelta) {\r\n labelEnd = coord + centerDelta;\r\n coord = coord - centerDelta;\r\n }\r\n else {\r\n coord = 0;\r\n labelEnd = coord + labelSize;\r\n }\r\n var nextCoord = getTickCoord(1);\r\n var nextCenterDelta = getlabelSize(1) / 2;\r\n if (hideOverlappingLabels) {\r\n // Skip first if it would overlap with next\r\n if (labelEnd >= nextCoord - nextCenterDelta - labelSpacing) {\r\n continue;\r\n }\r\n }\r\n }\r\n else if (keepLabelsWithinAxis && isLastTick) {\r\n coord = coord + centerDelta < size ? coord - centerDelta : size - labelSize;\r\n }\r\n else {\r\n labelEnd = coord + centerDelta;\r\n coord -= centerDelta;\r\n }\r\n if (hideOverlappingLabels) {\r\n // If this label will overlap the previous, skip it.\r\n if (tickIndex > 0 && coord < lastLabelEnd + labelSpacing) {\r\n continue;\r\n }\r\n }\r\n lastLabelEnd = labelEnd;\r\n labelCoords.push(coord);\r\n pushLabelIndex(tickIndex);\r\n }\r\n return { labelCoords: labelCoords, labelIndexes: labelIndexes };\r\n};\r\nexports.layoutLabelsHelper = layoutLabelsHelper;\r\nvar convertMultiLineAlignment = function (multiLineAlignment, webAssemblyContext) {\r\n var alignMode = webAssemblyContext.eTSRTextAlignMode.Left;\r\n switch (multiLineAlignment) {\r\n case LabelAlignment_1.ELabelAlignment.Left:\r\n alignMode = webAssemblyContext.eTSRTextAlignMode.Left;\r\n break;\r\n case LabelAlignment_1.ELabelAlignment.Right:\r\n alignMode = webAssemblyContext.eTSRTextAlignMode.Right;\r\n break;\r\n case LabelAlignment_1.ELabelAlignment.Center:\r\n alignMode = webAssemblyContext.eTSRTextAlignMode.Center;\r\n break;\r\n default:\r\n alignMode = webAssemblyContext.eTSRTextAlignMode.Left;\r\n break;\r\n }\r\n return alignMode;\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxisTitleRenderer = void 0;\r\nvar LabelAlignment_1 = require(\"../../../types/LabelAlignment\");\r\nvar TextStyle_1 = require(\"../../../types/TextStyle\");\r\nvar TitleRenderer_1 = require(\"../../Services/TitleRenderer\");\r\n/**\r\n * Draws an axis title using our WebGL Rendering engine\r\n */\r\nvar AxisTitleRenderer = /** @class */ (function (_super) {\r\n __extends(AxisTitleRenderer, _super);\r\n function AxisTitleRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.lineSpacing = 1.1;\r\n return _this;\r\n }\r\n AxisTitleRenderer.prototype.measure = function (text, textStyle, axisAlignment) {\r\n if (text === void 0) { text = \"\"; }\r\n this.text = text;\r\n var shouldUpdateTextSize = !this.useCache ||\r\n (!this.texture && !this.useNativeText) ||\r\n this.text !== this.previousText ||\r\n this.lineSpacing !== this.previousLineSpacing ||\r\n axisAlignment !== this.previousAxisAlignment ||\r\n this.previousNativeTextMode !== this.useNativeText ||\r\n !checkAreEqualTextStyles(textStyle, this.textStyle);\r\n if (shouldUpdateTextSize) {\r\n this.invalidateCache();\r\n this.previousLineSpacing = this.lineSpacing;\r\n this.previousNativeTextMode = this.useNativeText;\r\n this.previousAxisAlignment = axisAlignment;\r\n this.previousText = text;\r\n this.textStyle = textStyle;\r\n this.titlePosition = TextStyle_1.ETitlePosition[axisAlignment];\r\n this.textStyle = textStyle;\r\n // @ts-ignore mismatch with TTextStyle\r\n this.textStyle.lineSpacing = this.lineSpacing;\r\n var renderContext = this.parentSurface.currentWebGlRenderContext;\r\n // @ts-ignore mismatch with TTextStyle\r\n this.getTextSize(text, this.textStyle, renderContext);\r\n }\r\n };\r\n Object.defineProperty(AxisTitleRenderer.prototype, \"useNativeText\", {\r\n get: function () {\r\n return this.useNativeTextProperty;\r\n },\r\n set: function (value) {\r\n this.useNativeTextProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisTitleRenderer.prototype, \"desiredHeight\", {\r\n get: function () {\r\n return this.desiredHeightProperty;\r\n },\r\n set: function (value) {\r\n if (this.desiredWidthProperty !== value) {\r\n this.invalidateCache();\r\n }\r\n this.desiredHeightProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisTitleRenderer.prototype, \"desiredWidth\", {\r\n get: function () {\r\n return this.desiredWidthProperty;\r\n },\r\n set: function (value) {\r\n if (this.desiredWidthProperty !== value) {\r\n this.invalidateCache();\r\n }\r\n this.desiredWidthProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AxisTitleRenderer.prototype.layout = function (rect) {\r\n if (!this.text) {\r\n this.viewRectProperty = rect;\r\n return;\r\n }\r\n var alignment = convertLabelAlignmentToTextAlignment(this.textStyle.alignment);\r\n this.viewRectProperty = this.getViewRect(this.text, rect, this.titlePosition, alignment);\r\n };\r\n AxisTitleRenderer.prototype.getTitleTexture = function () {\r\n var position = this.titlePosition;\r\n var adjRotation = (0, TitleRenderer_1.getAdjustedRotation)(this.textStyle.rotation, position);\r\n var titleText = Array.isArray(this.text) ? this.text : this.text.split(\"\\n\");\r\n var texture = this.textureManager.createTextTexture(titleText, \r\n // @ts-ignore mismatch with TTextStyle\r\n this.textStyle, \r\n // { ...this.textStyle, padding: new Thickness(0, 0, 0, 0) },\r\n adjRotation, this.lineSpacing);\r\n return texture;\r\n };\r\n AxisTitleRenderer.prototype.draw = function (renderContext) {\r\n if (this.drawDebug) {\r\n this.drawTitleDebugViewRect(renderContext);\r\n }\r\n return this.drawInternal(renderContext, this.useNativeText, this.titlePosition);\r\n };\r\n AxisTitleRenderer.prototype.delete = function () {\r\n this.parentSurface = undefined;\r\n _super.prototype.delete.call(this);\r\n };\r\n return AxisTitleRenderer;\r\n}(TitleRenderer_1.TitleRendererBase));\r\nexports.AxisTitleRenderer = AxisTitleRenderer;\r\nvar checkAreEqualTextStyles = function (style1, style2) {\r\n if (!style1 || !style2) {\r\n return false;\r\n }\r\n return (style1.color === style2.color &&\r\n style1.fontFamily === style2.fontFamily &&\r\n style1.fontSize === style2.fontSize &&\r\n style1.fontStyle === style2.fontStyle &&\r\n style1.fontWeight === style2.fontWeight &&\r\n style1.alignment === style2.alignment &&\r\n style1.rotation === style2.rotation &&\r\n style1.multilineAlignment === style2.multilineAlignment &&\r\n ((style1.padding === undefined && style2.padding === undefined) || style1.padding.equals(style2.padding)));\r\n};\r\n// TODO consider refactoring\r\n// helper function used to unify title renderer types & interfaces\r\nvar convertLabelAlignmentToTextAlignment = function (alignment) {\r\n if (alignment === LabelAlignment_1.ELabelAlignment.Auto) {\r\n return TextStyle_1.ETextAlignment.Center;\r\n }\r\n return TextStyle_1.ETextAlignment[alignment];\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CategoryAxis = void 0;\r\nvar AxisType_1 = require(\"../../../types/AxisType\");\r\nvar CategoryAxisBase_1 = require(\"./CategoryAxisBase\");\r\nvar DateLabelProvider_1 = require(\"./LabelProvider/DateLabelProvider\");\r\n/**\r\n * @summary A 2D Chart Category Axis type\r\n * @description A category axis uses the X-index not the X-value to measure data-points on the XAxis.\r\n * For example this can be used in stock chart applications to ensure weekend or overnight gaps are collapsed\r\n * and each data-point is spaced equidistantly\r\n * @remarks\r\n * Set a {@link CategoryAxis} on the {@link SciChartSurface.xAxes} property. This axis type is not valid for YAxis\r\n */\r\nvar CategoryAxis = /** @class */ (function (_super) {\r\n __extends(CategoryAxis, _super);\r\n /**\r\n * Creates an instance of a {@link CategoryAxis}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link ICategoryAxisOptions} used to configure the axis at instantiation time\r\n */\r\n function CategoryAxis(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = AxisType_1.EAxisType.CategoryAxis;\r\n _this.labelProvider =\r\n (_a = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _a !== void 0 ? _a : new DateLabelProvider_1.DateLabelProvider(options);\r\n return _this;\r\n }\r\n return CategoryAxis;\r\n}(CategoryAxisBase_1.CategoryAxisBase));\r\nexports.CategoryAxis = CategoryAxis;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CategoryAxisBase = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar appendDoubleVectorFromJsArray_1 = require(\"../../../utils/ccall/appendDoubleVectorFromJsArray\");\r\nvar CategoryCoordinateCalculator_1 = require(\"../../Numerics/CoordinateCalculators/CategoryCoordinateCalculator\");\r\nvar FlippedCategoryCoordinateCalculator_1 = require(\"../../Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator\");\r\nvar NumericTickProvider_1 = require(\"../../Numerics/TickProviders/NumericTickProvider\");\r\nvar AxisBase2D_1 = require(\"./AxisBase2D\");\r\nvar CategoryDeltaCalculator_1 = require(\"./DeltaCalculator/CategoryDeltaCalculator\");\r\n/**\r\n * @summary A 2D Chart Category Axis Base type\r\n */\r\nvar CategoryAxisBase = /** @class */ (function (_super) {\r\n __extends(CategoryAxisBase, _super);\r\n /**\r\n * Creates an instance of a {@link CategoryAxisBase}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link ICategoryAxisBaseOptions} used to configure the axis at instantiation time\r\n */\r\n function CategoryAxisBase(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.defaultXValuesProperty = [];\r\n _this.defaultXStartProperty = 0;\r\n _this.defaultXStepProperty = 1;\r\n _this.defaultXValuesProperty = (_a = options === null || options === void 0 ? void 0 : options.defaultXValues) !== null && _a !== void 0 ? _a : _this.defaultXValuesProperty;\r\n _this.defaultXStartProperty = (_b = options === null || options === void 0 ? void 0 : options.defaultXStart) !== null && _b !== void 0 ? _b : _this.defaultXStartProperty;\r\n _this.defaultXStepProperty = (_c = options === null || options === void 0 ? void 0 : options.defaultXStep) !== null && _c !== void 0 ? _c : _this.defaultXStepProperty;\r\n _this.tickProvider = new NumericTickProvider_1.NumericTickProvider(_this.webAssemblyContext2D);\r\n _this.deltaCalculator = new CategoryDeltaCalculator_1.CategoryDeltaCalculator(_this.webAssemblyContext2D);\r\n _this.defaultBaseXValues = new _this.webAssemblyContext2D.SCRTDoubleVector();\r\n return _this;\r\n }\r\n Object.defineProperty(CategoryAxisBase.prototype, \"isCategoryAxis\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return true;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBase.prototype, \"defaultXValues\", {\r\n /**\r\n * The default x values to use if no series or data is added to the chart.\r\n * The tick values shown will depend on the visible range, which for category axis is by index, not by value.\r\n * eg if you want default values [10, 20, 30, 40] you would need to set visibleRange: new NumberRange(0,3)\r\n * By default it will start at 0 and increment by 1, up to the size of the visible range.\r\n * To change the start and step set defaultXStart and defaultXStep\r\n */\r\n get: function () {\r\n return this.defaultXValuesProperty;\r\n },\r\n /**\r\n * The default x values to use if no series or data is added to the chart.\r\n * The tick values shown will depend on the visible range, which for category axis is by index, not by value.\r\n * eg if you want default values [10, 20, 30, 40] you would need to set visibleRange: new NumberRange(0,3)\r\n * By default it will start at 0 and increment by 1, up to the size of the visible range.\r\n * To change the start and step set defaultXStart and defaultXStep\r\n */\r\n set: function (values) {\r\n this.defaultXValuesProperty = values;\r\n if (this.invalidateParentCallback)\r\n this.invalidateParentCallback();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBase.prototype, \"defaultXStart\", {\r\n /**\r\n * The starting value for default x values. See defaultXValues\r\n */\r\n get: function () {\r\n return this.defaultXStartProperty;\r\n },\r\n /**\r\n * The starting value for default x values. See defaultXValues\r\n */\r\n set: function (value) {\r\n this.defaultXStartProperty = value;\r\n if (this.invalidateParentCallback)\r\n this.invalidateParentCallback();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CategoryAxisBase.prototype, \"defaultXStep\", {\r\n /**\r\n * The step size for default x values. See defaultXValues\r\n */\r\n get: function () {\r\n return this.defaultXStepProperty;\r\n },\r\n /**\r\n * The step size for default x values. See defaultXValues\r\n */\r\n set: function (value) {\r\n this.defaultXStepProperty = value;\r\n if (this.invalidateParentCallback)\r\n this.invalidateParentCallback();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n CategoryAxisBase.prototype.prepareRenderData = function () {\r\n var _this = this;\r\n (0, Deleter_1.deleteSafe)(this.coordCalcCache);\r\n var coordCalc = this.getCurrentCoordinateCalculatorInternal();\r\n var scs = this.parentSurface;\r\n var renderableSeries = scs.renderableSeries.asArray().find(function (rs) { return rs.xAxisId === _this.id; });\r\n this.setBaseXValues(coordCalc, renderableSeries);\r\n this.coordCalcCache = coordCalc;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CategoryAxisBase.prototype.delete = function () {\r\n this.defaultBaseXValues = (0, Deleter_1.deleteSafe)(this.defaultBaseXValues);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CategoryAxisBase.prototype.getCurrentCoordinateCalculatorInternal = function () {\r\n var _this = this;\r\n var min = this.visibleRange.min;\r\n var max = this.visibleRange.max;\r\n var size = this.axisLength;\r\n var scs = this.parentSurface;\r\n var renderableSeries = scs.renderableSeries.asArray().find(function (rs) { return rs.xAxisId === _this.id; });\r\n // For reasons passing understanding, the native Category Coord Calculators operate in reverse to the linear ones\r\n // The order is switched so they match the values of shouldFlipCC\r\n var coordCalc = this.isXAxis !== this.flippedCoordinates\r\n ? new CategoryCoordinateCalculator_1.CategoryCoordinateCalculator(this.webAssemblyContext2D, size, min, max, this.offset)\r\n : new FlippedCategoryCoordinateCalculator_1.FlippedCategoryCoordinateCalculator(this.webAssemblyContext2D, size, min, max, this.offset);\r\n this.setBaseXValues(coordCalc, renderableSeries);\r\n return coordCalc;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CategoryAxisBase.prototype.getXDataRange = function () {\r\n var _this = this;\r\n var maxRange;\r\n if (this.parentSurface) {\r\n var visibleSeries = this.parentSurface.renderableSeries\r\n .asArray()\r\n .filter(function (s) { return s.xAxisId === _this.id && s.isVisible && s.hasDataSeriesValues(); });\r\n visibleSeries.forEach(function (rSeries) {\r\n // using indices instead of xValues\r\n var indicesCount = rSeries.getDataSeriesValuesCount();\r\n var additionalValue = 1 / 2;\r\n var xRange = new NumberRange_1.NumberRange(0 - additionalValue, indicesCount - 1 + additionalValue);\r\n if (xRange) {\r\n maxRange = !maxRange ? xRange : maxRange.union(xRange);\r\n }\r\n });\r\n }\r\n return maxRange;\r\n };\r\n CategoryAxisBase.prototype.getMaxAutoTicks = function () {\r\n // For category axis, there's no point in having more ticks than there are data values. Doing so causes duplicate tick values.\r\n var coordCalc = this.getCurrentCoordinateCalculator();\r\n return Math.min(Math.max(1, this.maxAutoTicks), coordCalc.baseXValues.size());\r\n };\r\n CategoryAxisBase.prototype.generateDefaultXValuesForCategoryAxis = function () {\r\n this.defaultBaseXValues.clear();\r\n if (this.defaultXValues && this.defaultXValues.length > 0) {\r\n (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext2D, this.defaultBaseXValues, this.defaultXValues);\r\n }\r\n else {\r\n var xValues = [];\r\n var length_1 = 10;\r\n for (var i = 0; i < length_1; i++) {\r\n xValues.push(this.defaultXStart + i * this.defaultXStep);\r\n }\r\n (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext2D, this.defaultBaseXValues, xValues);\r\n }\r\n return this.defaultBaseXValues;\r\n };\r\n CategoryAxisBase.prototype.setBaseXValues = function (coordCalc, renderableSeries) {\r\n if ((renderableSeries === null || renderableSeries === void 0 ? void 0 : renderableSeries.type) === SeriesType_1.ESeriesType.UniformHeatmapSeries) {\r\n throw Error(\"Category Axis is not supported for UniformHeatmapRenderableSeries\");\r\n }\r\n if (renderableSeries === null || renderableSeries === void 0 ? void 0 : renderableSeries.isStacked) {\r\n var stackedCollection = renderableSeries;\r\n if (stackedCollection.size() === 0) {\r\n throw Error(\"BaseStackedCollection should have at least one BaseStackedRenderableSeries\");\r\n }\r\n var firstStackedRS = stackedCollection.get(0);\r\n if (!(firstStackedRS === null || firstStackedRS === void 0 ? void 0 : firstStackedRS.dataSeries)) {\r\n if (!coordCalc.baseXValues)\r\n coordCalc.baseXValues = this.generateDefaultXValuesForCategoryAxis();\r\n return;\r\n }\r\n coordCalc.baseXValues = firstStackedRS.dataSeries.getNativeXValues();\r\n }\r\n else {\r\n // Not stacked renderable series\r\n if (!(renderableSeries === null || renderableSeries === void 0 ? void 0 : renderableSeries.dataSeries) || renderableSeries.dataSeries.count() < 10) {\r\n if (!coordCalc.baseXValues)\r\n coordCalc.baseXValues = this.generateDefaultXValuesForCategoryAxis();\r\n return;\r\n }\r\n coordCalc.baseXValues = renderableSeries.dataSeries.getNativeXValues();\r\n }\r\n };\r\n return CategoryAxisBase;\r\n}(AxisBase2D_1.AxisBase2D));\r\nexports.CategoryAxisBase = CategoryAxisBase;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DateTimeNumericAxis = void 0;\r\nvar DateTimeDeltaCalculator_1 = require(\"./DeltaCalculator/DateTimeDeltaCalculator\");\r\nvar SmartDateLabelProvider_1 = require(\"./LabelProvider/SmartDateLabelProvider\");\r\nvar NumericAxis_1 = require(\"./NumericAxis\");\r\nvar DateTimeNumericAxis = /** @class */ (function (_super) {\r\n __extends(DateTimeNumericAxis, _super);\r\n function DateTimeNumericAxis(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.labelProvider = (_a = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _a !== void 0 ? _a : new SmartDateLabelProvider_1.SmartDateLabelProvider(options);\r\n _this.deltaCalculator = new DateTimeDeltaCalculator_1.DateTimeDeltaCalculator(webAssemblyContext, {\r\n possibleDeltas: options === null || options === void 0 ? void 0 : options.possibleDeltas,\r\n minTicks: options === null || options === void 0 ? void 0 : options.minTicks\r\n });\r\n return _this;\r\n }\r\n return DateTimeNumericAxis;\r\n}(NumericAxis_1.NumericAxis));\r\nexports.DateTimeNumericAxis = DateTimeNumericAxis;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CategoryDeltaCalculator = void 0;\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar NumericDeltaCalculator_1 = require(\"./NumericDeltaCalculator\");\r\n/**\r\n * The CategoryDeltaCalculator is responsible for calculating {@link AxisCore.minorDelta} and {@link AxisCore.majorDelta} on\r\n * {@link CategoryAxis} types.\r\n */\r\nvar CategoryDeltaCalculator = /** @class */ (function (_super) {\r\n __extends(CategoryDeltaCalculator, _super);\r\n /**\r\n * Creates an instance of the {@link CategoryDeltaCalculator}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n */\r\n function CategoryDeltaCalculator(webAssemblyContext) {\r\n return _super.call(this, webAssemblyContext) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n CategoryDeltaCalculator.prototype.getDeltaFromRange = function (min, max, minorsPerMajor, maxTicks) {\r\n Guard_1.Guard.argumentIsRealNumber(min, \"min\");\r\n Guard_1.Guard.argumentIsRealNumber(max, \"max\");\r\n // Force category axis to show all ticks if there is very little data\r\n if (max <= maxTicks) {\r\n return new NumberRange_1.NumberRange(1 / minorsPerMajor, 1);\r\n }\r\n return _super.prototype.getDeltaFromRange.call(this, min, max, minorsPerMajor, maxTicks);\r\n };\r\n return CategoryDeltaCalculator;\r\n}(NumericDeltaCalculator_1.NumericDeltaCalculator));\r\nexports.CategoryDeltaCalculator = CategoryDeltaCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DateTimeDeltaCalculator = void 0;\r\nvar performanceWarnings_1 = require(\"../../../../constants/performanceWarnings\");\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar NumericDeltaCalculator_1 = require(\"./NumericDeltaCalculator\");\r\n/**\r\n * The DateTimeDeltaCalculator is respinsible for calculating {@link AxisCore.minorDelta} and {@link AxisCore.majorDelta} on\r\n * {@link NumericAxis} types.\r\n */\r\nvar DateTimeDeltaCalculator = /** @class */ (function (_super) {\r\n __extends(DateTimeDeltaCalculator, _super);\r\n function DateTimeDeltaCalculator(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, webAssemblyContext) || this;\r\n _this.possibleDeltasProperty = [\r\n 1,\r\n 2,\r\n 5,\r\n 10,\r\n 15,\r\n 30,\r\n 60,\r\n 2 * 60,\r\n 5 * 60,\r\n 10 * 60,\r\n 15 * 60,\r\n 30 * 60,\r\n 60 * 60,\r\n 2 * 60 * 60,\r\n 3 * 60 * 60,\r\n 6 * 60 * 60,\r\n 12 * 60 * 60,\r\n 24 * 60 * 60,\r\n 2 * 24 * 60 * 60,\r\n 3 * 24 * 60 * 60,\r\n 5 * 24 * 60 * 60,\r\n 10 * 24 * 60 * 60,\r\n 15 * 24 * 60 * 60,\r\n 20 * 24 * 60 * 60,\r\n 30 * 24 * 60 * 60,\r\n // TODO these month deltas really need special handling\r\n 2 * 30 * 24 * 60 * 60,\r\n 4 * 30 * 24 * 60 * 60,\r\n 6 * 30 * 24 * 60 * 60,\r\n 365.25 * 24 * 60 * 60\r\n // Years also need special handling\r\n ];\r\n _this.currIndex = 1;\r\n _this.possibleDeltasProperty = (_a = options === null || options === void 0 ? void 0 : options.possibleDeltas) !== null && _a !== void 0 ? _a : _this.possibleDeltasProperty;\r\n _this.minTicks = options === null || options === void 0 ? void 0 : options.minTicks;\r\n _this.currIndex = Math.floor(_this.possibleDeltas.length / 2);\r\n return _this;\r\n }\r\n Object.defineProperty(DateTimeDeltaCalculator.prototype, \"possibleDeltas\", {\r\n /**\r\n * Gets or sets deltas array\r\n */\r\n get: function () {\r\n return this.possibleDeltasProperty;\r\n },\r\n set: function (value) {\r\n if (this.possibleDeltasProperty !== value) {\r\n this.possibleDeltasProperty = value;\r\n this.currIndex = Math.floor(this.possibleDeltas.length / 2);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DateTimeDeltaCalculator.prototype, \"minTicks\", {\r\n get: function () {\r\n return this.minTicksProperty;\r\n },\r\n set: function (value) {\r\n if (this.minTicksProperty !== value) {\r\n this.minTicksProperty = value;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n DateTimeDeltaCalculator.prototype.getDeltaFromRange = function (min, max, minorsPerMajor, maxTicks) {\r\n var _this = this;\r\n var diff = max - min;\r\n this.prevIndex = undefined;\r\n if (this.currIndex >= this.possibleDeltas.length) {\r\n this.currIndex = Math.floor(this.possibleDeltas.length / 2);\r\n }\r\n var tries = 0;\r\n var calculateDelta = function (index) {\r\n var _a, _b;\r\n var delta = _this.possibleDeltasProperty[index];\r\n tries++;\r\n if (tries > _this.possibleDeltas.length + 1) {\r\n performanceWarnings_1.performanceWarnings.dateTimeDeltaCalculatorBadDelta.warn();\r\n return delta;\r\n }\r\n var ticksCount = Math.floor(diff / delta);\r\n if (ticksCount < ((_a = _this.minTicks) !== null && _a !== void 0 ? _a : maxTicks / 3) && index === 0 && index !== _this.prevIndex) {\r\n if (!_this.prevIndex)\r\n _this.prevIndex = index;\r\n return _super.prototype.getDeltaFromRange.call(_this, min, max, minorsPerMajor, maxTicks).max;\r\n }\r\n if (ticksCount < ((_b = _this.minTicks) !== null && _b !== void 0 ? _b : maxTicks / 3) && index > 0 && index !== _this.prevIndex) {\r\n if (!_this.prevIndex)\r\n _this.prevIndex = index;\r\n return calculateDelta(index - 1);\r\n }\r\n if (ticksCount > maxTicks && index < _this.possibleDeltasProperty.length - 1 && index !== _this.prevIndex) {\r\n if (!_this.prevIndex)\r\n _this.prevIndex = index;\r\n return calculateDelta(index + 1);\r\n }\r\n else if (ticksCount > maxTicks && index === _this.possibleDeltasProperty.length - 1) {\r\n var yearDelta = _super.prototype.getDeltaFromRange.call(_this, min / delta, max / delta, minorsPerMajor, maxTicks);\r\n return yearDelta.max * delta;\r\n }\r\n else {\r\n if (_this.currIndex !== index) {\r\n _this.currIndex = index;\r\n }\r\n return delta;\r\n }\r\n };\r\n var delta = calculateDelta(this.currIndex);\r\n return new NumberRange_1.NumberRange(delta / minorsPerMajor, delta);\r\n };\r\n return DateTimeDeltaCalculator;\r\n}(NumericDeltaCalculator_1.NumericDeltaCalculator));\r\nexports.DateTimeDeltaCalculator = DateTimeDeltaCalculator;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeltaCalculator = void 0;\r\n/**\r\n * @summary A base class for Delta Calculators within SciChart's 2D & 3D Charts.\r\n * @description The {@link DeltaCalculator} is responsible for calculating the min and max deltas on an axis.\r\n *\r\n * A delta is the spacing between two gridlines, so the Major Delta is the spacing between major grid lines and\r\n * the Minor Delta is the spacing between minor gridlines.\r\n *\r\n * This calculator class computes these and they are later stored on {@link AxisCore.minorDelta} and {@link AxisCore.majorDelta} properties.\r\n */\r\nvar DeltaCalculator = /** @class */ (function () {\r\n function DeltaCalculator() {\r\n }\r\n /**\r\n * Called when the {@link DeltaCalculator} is attached to an {@link AxisCore | Axis}\r\n * @param axis The Axis we are attached to.\r\n */\r\n DeltaCalculator.prototype.attachedToAxis = function (axis) {\r\n this.parentAxis = axis;\r\n };\r\n /**\r\n * Called when the {@link DeltaCalculator} is detached from {@link AxisCore | Axis}\r\n * @param axis The Axis we are attached to.\r\n */\r\n DeltaCalculator.prototype.detachedFromAxis = function () {\r\n this.parentAxis = undefined;\r\n };\r\n return DeltaCalculator;\r\n}());\r\nexports.DeltaCalculator = DeltaCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LogarithmicDeltaCalculator = void 0;\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar DeltaCalculator_1 = require(\"./DeltaCalculator\");\r\n/**\r\n * The LogarithmicDeltaCalculator is responsible for calculating {@link AxisCore.minorDelta} and {@link AxisCore.majorDelta} on\r\n * {@link LogarithmicAxis} types.\r\n */\r\nvar LogarithmicDeltaCalculator = /** @class */ (function (_super) {\r\n __extends(LogarithmicDeltaCalculator, _super);\r\n /**\r\n * Creates an instance of the {@link LogarithmicDeltaCalculator}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n */\r\n function LogarithmicDeltaCalculator(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Gets or sets the logarithmic base. Defaults to 10\r\n */\r\n _this.logarithmicBase = 10;\r\n _this.isHighPrecisionTicks = true;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n LogarithmicDeltaCalculator.prototype.getDeltaFromRange = function (min, max, minorsPerMajor, maxTicks) {\r\n Guard_1.Guard.argumentIsRealNumber(min, \"min\");\r\n Guard_1.Guard.argumentIsRealNumber(max, \"max\");\r\n // Handle the case of negative log axis\r\n min = Math.abs(min);\r\n max = Math.abs(max);\r\n if (min > max) {\r\n // Swap if min > max\r\n var temp = min;\r\n min = max;\r\n max = temp;\r\n }\r\n if (this.isHighPrecisionTicks) {\r\n var delta = this.webAssemblyContext.NiceLogScale.CalculateTickSpacing(min, max, this.logarithmicBase, minorsPerMajor, maxTicks);\r\n var tsDelta = new NumberRange_1.NumberRange(delta.minD, delta.maxD);\r\n delta.delete();\r\n return tsDelta;\r\n }\r\n else {\r\n var delta = this.webAssemblyContext.NiceLogScale.CalculateLowPrecisionTickSpacing(min, max, this.logarithmicBase, minorsPerMajor, maxTicks);\r\n var tsDelta = new NumberRange_1.NumberRange(delta.minD, delta.maxD);\r\n delta.delete();\r\n return tsDelta;\r\n }\r\n };\r\n return LogarithmicDeltaCalculator;\r\n}(DeltaCalculator_1.DeltaCalculator));\r\nexports.LogarithmicDeltaCalculator = LogarithmicDeltaCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumericDeltaCalculator = void 0;\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar DeltaCalculator_1 = require(\"./DeltaCalculator\");\r\n/**\r\n * The NumericDeltaCalculator is respinsible for calculating {@link AxisCore.minorDelta} and {@link AxisCore.majorDelta} on\r\n * {@link NumericAxis} types.\r\n */\r\nvar NumericDeltaCalculator = /** @class */ (function (_super) {\r\n __extends(NumericDeltaCalculator, _super);\r\n /**\r\n * Creates an instance of the {@link NumericDeltaCalculator}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n */\r\n function NumericDeltaCalculator(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n NumericDeltaCalculator.prototype.getDeltaFromRange = function (min, max, minorsPerMajor, maxTicks) {\r\n Guard_1.Guard.argumentIsRealNumber(min, \"min\");\r\n Guard_1.Guard.argumentIsRealNumber(max, \"max\");\r\n var delta = this.webAssemblyContext.NiceDoubleScale.CalculateTickSpacing(min, max, minorsPerMajor, maxTicks);\r\n var tsDelta = new NumberRange_1.NumberRange(delta.minD, delta.maxD);\r\n delta.delete();\r\n return tsDelta;\r\n };\r\n return NumericDeltaCalculator;\r\n}(DeltaCalculator_1.DeltaCalculator));\r\nexports.NumericDeltaCalculator = NumericDeltaCalculator;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DateLabelProvider = void 0;\r\nvar LabelProviderType_1 = require(\"../../../../types/LabelProviderType\");\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar LabelProviderBase2D_1 = require(\"./LabelProviderBase2D\");\r\n/**\r\n * The {@link DateLabelProvider} formats Axis Labels and Cursor / Tooltips for {@link CategoryAxis} types\r\n */\r\nvar DateLabelProvider = /** @class */ (function (_super) {\r\n __extends(DateLabelProvider, _super);\r\n /**\r\n * Creates an instance of {@link DateLabelProvider}\r\n * @param options Optional parameters of type {@link ILabelOptions} used to configure the axis at instantiation time\r\n */\r\n function DateLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, __assign({ labelFormat: (_a = options === null || options === void 0 ? void 0 : options.labelFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Date_DDMMYYYY, cursorLabelFormat: (_b = options === null || options === void 0 ? void 0 : options.cursorLabelFormat) !== null && _b !== void 0 ? _b : NumericFormat_1.ENumericFormat.Date_DDMMYYYY }, options)) || this;\r\n _this.type = LabelProviderType_1.ELabelProviderType.Date;\r\n _this.formatLabelProperty = function (dataValue) {\r\n return _this.applyFormat((0, number_1.formatNumber)(dataValue, _this.numericFormat, _this.precision));\r\n };\r\n _this.formatCursorLabelProperty = function (dataValue) {\r\n var _a, _b;\r\n return _this.applyFormat((0, number_1.formatNumber)(dataValue, (_a = _this.cursorNumericFormat) !== null && _a !== void 0 ? _a : _this.numericFormat, (_b = _this.cursorPrecision) !== null && _b !== void 0 ? _b : _this.precision));\r\n };\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n DateLabelProvider.prototype.onBeginAxisDraw = function () {\r\n // TODO: user can override here if they want\r\n };\r\n return DateLabelProvider;\r\n}(LabelProviderBase2D_1.LabelProviderBase2D));\r\nexports.DateLabelProvider = DateLabelProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.labelCache = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar logger_1 = require(\"../../../../utils/logger\");\r\nvar labelCacheByTextAndStyle = new Map();\r\nvar styleCache = {};\r\nvar lastStyleId = 0;\r\nvar getStyleId = function (style) {\r\n for (var key in styleCache) {\r\n if (styleCache.hasOwnProperty(key)) {\r\n var otherStyle = styleCache[key];\r\n if (otherStyle) {\r\n if (checkTextStyleEqual(style, otherStyle.style)) {\r\n otherStyle.uses++;\r\n return key;\r\n }\r\n }\r\n }\r\n }\r\n lastStyleId++;\r\n var newStyleId = lastStyleId.toString();\r\n styleCache[newStyleId] = { style: style, uses: 1 };\r\n return newStyleId;\r\n};\r\nvar freeStyle = function (styleId) {\r\n var style = styleCache[styleId];\r\n if (style) {\r\n style.uses--;\r\n setTimeout(function () {\r\n var styleToClear = styleCache[styleId];\r\n if (styleToClear && styleToClear.uses === 0) {\r\n clearCacheByStyle(styleId);\r\n }\r\n }, minAge);\r\n }\r\n};\r\nvar makeCacheKey = function (text, styleId) {\r\n return \"\".concat(text, \"|:|\").concat(styleId);\r\n};\r\nvar parseCacheKey = function (key) {\r\n var sep = key.indexOf(\"|:|\");\r\n var text = key.substring(0, sep - 1);\r\n var styleId = key.substring(sep + 3);\r\n return { text: text, styleId: styleId };\r\n};\r\nvar getLabel = function (text, styleId) {\r\n var key = makeCacheKey(text, styleId);\r\n var label = labelCacheByTextAndStyle.get(key);\r\n if (label) {\r\n label.lastUsed = Date.now();\r\n }\r\n return label;\r\n};\r\nvar setLabel = function (text, styleId, label) {\r\n var key = makeCacheKey(text, styleId);\r\n // TODO should we worry about key collisions if using custom textures?\r\n labelCacheByTextAndStyle.set(key, label);\r\n};\r\nvar checkStyle = function (currentStyleId, newStyle) {\r\n var currentStyle = styleCache[currentStyleId.toString()];\r\n if (currentStyle) {\r\n return checkTextStyleEqual(currentStyle.style, newStyle);\r\n }\r\n return false;\r\n};\r\nvar clearCacheByStyle = function (styleId) {\r\n for (var _i = 0, _a = Array.from(labelCacheByTextAndStyle.keys()); _i < _a.length; _i++) {\r\n var keyStr = _a[_i];\r\n var _b = parseCacheKey(keyStr), text = _b.text, keyStyleId = _b.styleId;\r\n if (keyStyleId === styleId) {\r\n var label = labelCacheByTextAndStyle.get(keyStr);\r\n labelCacheByTextAndStyle.delete(keyStr);\r\n try {\r\n (0, Deleter_1.deleteSafe)(label.bitmapTexture);\r\n }\r\n catch (error) {\r\n // WasmContext is probably disposed\r\n logger_1.Logger.debug(error);\r\n }\r\n }\r\n }\r\n};\r\nvar maxSize = 200;\r\nvar minAge = 1000 * 60;\r\nvar lastUsed = 0;\r\nvar getMaxSize = function () { return maxSize; };\r\nvar setMaxSize = function (size) {\r\n maxSize = size;\r\n};\r\nvar getMinAge = function () { return minAge; };\r\nvar setMinAge = function (ageInMs) {\r\n minAge = ageInMs;\r\n};\r\nvar pruneCache = function () {\r\n var latest = Date.now() - minAge;\r\n if (labelCacheByTextAndStyle.size > maxSize && lastUsed < latest) {\r\n try {\r\n // remove more than we need so we do this less.\r\n var toRemove = Math.min(Math.floor(labelCacheByTextAndStyle.size / 2), (labelCacheByTextAndStyle.size - maxSize) * 2);\r\n // Sort the items by LastUsed ascending\r\n var labels = Array.from(labelCacheByTextAndStyle.entries());\r\n labels.sort(function (a, b) { return a[1].lastUsed - b[1].lastUsed; });\r\n // remove earliest\r\n for (var index = 0; index < toRemove; index++) {\r\n var _a = labels[index], key = _a[0], label = _a[1];\r\n if (label.lastUsed < latest) {\r\n label.bitmapTexture = (0, Deleter_1.deleteSafe)(label.bitmapTexture);\r\n labelCacheByTextAndStyle.delete(key);\r\n }\r\n else if (index === 0) {\r\n lastUsed = label.lastUsed;\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n }\r\n};\r\nvar checkTextStyleEqual = function (style1, style2) {\r\n return (style1.alignment === style2.alignment &&\r\n style1.multilineAlignment === style2.multilineAlignment &&\r\n style1.color === style2.color &&\r\n style1.fontFamily === style2.fontFamily &&\r\n style1.fontSize === style2.fontSize &&\r\n style1.fontStyle === style2.fontStyle &&\r\n style1.fontWeight === style2.fontWeight &&\r\n ((style1.padding === undefined && style2.padding === undefined) || style1.padding.equals(style2.padding)) &&\r\n style1.extras === style2.extras &&\r\n style1.rotation === style2.rotation &&\r\n style1.providerId === style2.providerId);\r\n};\r\nvar resetCache = function () {\r\n labelCacheByTextAndStyle.clear();\r\n // tslint:disable-next-line: forin\r\n for (var key in styleCache) {\r\n delete styleCache[key];\r\n }\r\n};\r\nvar getSize = function () { return labelCacheByTextAndStyle.size; };\r\n/**\r\n * A global cache for labels, used by all labelProviders, to reduce the amount of time spent creating label textures.\r\n */\r\nexports.labelCache = {\r\n /** Get an identifier for the given text style. Returns an existing identifier if a matching style exists in the cache */\r\n getStyleId: getStyleId,\r\n /**\r\n * Notify the cache that a style is no longer used.\r\n * Linked labels are only deleted when there are no remaining uses, and then only after minAge has passed.\r\n */\r\n freeStyle: freeStyle,\r\n /** Get a label from the cache. Returns undefined if none found. */\r\n getLabel: getLabel,\r\n /** Add a label to the cache */\r\n setLabel: setLabel,\r\n /** Check if a text style matches the one for the given id */\r\n checkStyle: checkStyle,\r\n /** Get the maximum number of labels allowed to be stored in the cache. Used when calling pruneCache */\r\n getMaxSize: getMaxSize,\r\n /** Set the maximum number of labels allowed to be stored in the cache. Used when calling pruneCache */\r\n setMaxSize: setMaxSize,\r\n getSize: getSize,\r\n /** Get the minimum age (time since last used) of labels in the cache.\r\n * This prevents recently used labels from being pruned, or removed when style is freed\r\n */\r\n getMinAge: getMinAge,\r\n /** Set the minimum age (time since last used) of labels in the cache.\r\n * This prevents recently used labels from being pruned, or removed when style is freed\r\n */\r\n setMinAge: setMinAge,\r\n /** Remove old labels from the cache, if there are more than MaxSize. */\r\n pruneCache: pruneCache,\r\n /** Completely clears and resets the cache. Testing use only */\r\n resetCache: resetCache\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LabelProvider = void 0;\r\nvar DeletableEntity_1 = require(\"../../../../Core/DeletableEntity\");\r\n/**\r\n * @summary A base class for Label Providers - types which allow programmatic overriding of Axis labels\r\n */\r\nvar LabelProvider = /** @class */ (function (_super) {\r\n __extends(LabelProvider, _super);\r\n /**\r\n *\r\n */\r\n function LabelProvider(options) {\r\n var _this = _super.call(this) || this;\r\n _this.numericFormatProperty = options === null || options === void 0 ? void 0 : options.labelFormat;\r\n _this.precisionProperty = options === null || options === void 0 ? void 0 : options.labelPrecision;\r\n _this.cursorNumericFormatProperty = options === null || options === void 0 ? void 0 : options.cursorLabelFormat;\r\n _this.cursorPrecisionProperty = options === null || options === void 0 ? void 0 : options.cursorLabelPrecision;\r\n _this.prefixProperty = options === null || options === void 0 ? void 0 : options.labelPrefix;\r\n _this.postfixProperty = options === null || options === void 0 ? void 0 : options.labelPostfix;\r\n return _this;\r\n }\r\n /**\r\n * Called when the {@link LabelProvider} is attached to an {@link AxisCore | Axis}\r\n * @param axis The Axis we are attached to.\r\n */\r\n LabelProvider.prototype.attachedToAxis = function (axis) {\r\n this.parentAxis = axis;\r\n };\r\n /**\r\n * Called when the {@link LabelProvider} is detached from an {@link AxisCore | Axis}\r\n * @param axis The Axis we are attached to.\r\n */\r\n LabelProvider.prototype.detachedFromAxis = function () {\r\n this.parentAxis = undefined;\r\n };\r\n Object.defineProperty(LabelProvider.prototype, \"numericFormat\", {\r\n /**\r\n * Gets or sets numeric format to use. For a list of values, see {@link ENumericFormat}\r\n */\r\n get: function () {\r\n return this.numericFormatProperty;\r\n },\r\n set: function (value) {\r\n this.numericFormatProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LabelProvider.prototype, \"precision\", {\r\n /**\r\n * Gets or sets the precision to use when formatting\r\n */\r\n get: function () {\r\n return this.precisionProperty;\r\n },\r\n set: function (value) {\r\n this.precisionProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LabelProvider.prototype, \"cursorNumericFormat\", {\r\n /**\r\n * Gets or sets numeric format to use for cursor labels. For a list of values, see {@link ENumericFormat}\r\n */\r\n get: function () {\r\n return this.cursorNumericFormatProperty;\r\n },\r\n set: function (value) {\r\n this.cursorNumericFormatProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LabelProvider.prototype, \"cursorPrecision\", {\r\n /**\r\n * Gets or sets the precision to use for cursors labels\r\n */\r\n get: function () {\r\n return this.cursorPrecisionProperty;\r\n },\r\n set: function (value) {\r\n this.cursorPrecisionProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LabelProvider.prototype, \"prefix\", {\r\n /**\r\n * Gets or sets a string to add to the beginning of each label\r\n */\r\n get: function () {\r\n return this.prefixProperty;\r\n },\r\n set: function (v) {\r\n this.prefixProperty = v;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LabelProvider.prototype, \"postfix\", {\r\n /**\r\n * Gets or sets a string to add to the end of each label\r\n */\r\n get: function () {\r\n return this.postfixProperty;\r\n },\r\n set: function (v) {\r\n this.postfixProperty = v;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LabelProvider.prototype, \"formatLabel\", {\r\n /**\r\n * Gets or sets a formatLabel function which is used for\r\n * formatting a data-value into a string for display on the axis labels.\r\n * If you are creating a custom LabelProvider, you should override formatLabelProperty, not the formatLabel property!\r\n * See our {@link https://www.scichart.com/javascript-chart-documentation Documentation}\r\n */\r\n get: function () {\r\n return this.formatLabelProperty;\r\n },\r\n set: function (value) {\r\n this.formatLabelProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LabelProvider.prototype, \"formatCursorLabel\", {\r\n /**\r\n * Gets or sets a formatCursorLabel function which is used for\r\n * formatting a data-value into a string for display on a cursor or tooltip\r\n * If you are creating a custom LabelProvider, you should override formatCursorLabelProperty,\r\n * not the formatCursorLabel property!\r\n * See our {@link https://www.scichart.com/javascript-chart-documentation Documentation}\r\n */\r\n get: function () {\r\n return this.formatCursorLabelProperty;\r\n },\r\n set: function (value) {\r\n this.formatCursorLabelProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LabelProvider.prototype.applyFormat = function (value) {\r\n var _a, _b;\r\n return ((_a = this.prefix) !== null && _a !== void 0 ? _a : \"\") + value + ((_b = this.postfix) !== null && _b !== void 0 ? _b : \"\");\r\n };\r\n LabelProvider.prototype.toJSON = function () {\r\n var options = {\r\n cursorLabelFormat: this.cursorNumericFormat,\r\n cursorLabelPrecision: this.cursorPrecision,\r\n labelFormat: this.numericFormat,\r\n labelPrecision: this.precision,\r\n labelPrefix: this.prefix,\r\n labelPostfix: this.postfix\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n LabelProvider.prototype.invalidateParent = function () {\r\n if (this.parentAxis && this.parentAxis.invalidateParentCallback) {\r\n this.parentAxis.invalidateParentCallback();\r\n }\r\n };\r\n return LabelProvider;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.LabelProvider = LabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LabelProviderBase2D = exports.LabelInfo = void 0;\r\nvar app_1 = require(\"../../../../constants/app\");\r\nvar guid_1 = require(\"../../../../utils/guid\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar SciChartDefaults_1 = require(\"../../SciChartDefaults\");\r\nvar TextureManager_1 = require(\"../../TextureManager/TextureManager\");\r\nvar LabelCache_1 = require(\"./LabelCache\");\r\nvar LabelProvider_1 = require(\"./LabelProvider\");\r\nvar LabelInfo = /** @class */ (function () {\r\n function LabelInfo(tick, text, bitmapTexture, textureHeight, textureWidth) {\r\n this.tick = tick;\r\n this.text = text;\r\n this.bitmapTexture = bitmapTexture;\r\n this.textureHeight = textureHeight;\r\n this.textureWidth = textureWidth;\r\n this.lastUsed = Date.now();\r\n }\r\n return LabelInfo;\r\n}());\r\nexports.LabelInfo = LabelInfo;\r\n/**\r\n * The {@link LabelProviderBase2D} provides base functionality for 2D label providers, including caching of label textures\r\n */\r\n// tslint:disable-next-line: max-classes-per-file\r\nvar LabelProviderBase2D = /** @class */ (function (_super) {\r\n __extends(LabelProviderBase2D, _super);\r\n function LabelProviderBase2D(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, options) || this;\r\n _this.useCache = !app_1.IS_TEST_ENV;\r\n /**\r\n * Experimental - set true to use native text for axes. Not all text features currently supported\r\n */\r\n _this.useNativeText = false;\r\n _this.tickToText = new Map();\r\n /** Set this true if the format function could return different results for the same input (eg SmartDateLabelprovider) */\r\n _this.textVariesForSameTick = false;\r\n _this.rotationProperty = 0;\r\n _this.lineSpacingProperty = 1.1;\r\n _this.providerId = (0, guid_1.generateGuid)();\r\n _this.rotationProperty = (_a = options === null || options === void 0 ? void 0 : options.rotation) !== null && _a !== void 0 ? _a : _this.rotationProperty;\r\n _this.lineSpacing = (_b = options === null || options === void 0 ? void 0 : options.lineSpacing) !== null && _b !== void 0 ? _b : _this.lineSpacing;\r\n _this.useSharedCache = (_c = options === null || options === void 0 ? void 0 : options.useSharedCache) !== null && _c !== void 0 ? _c : SciChartDefaults_1.SciChartDefaults.useSharedCache;\r\n _this.useNativeText = (_d = options === null || options === void 0 ? void 0 : options.useNativeText) !== null && _d !== void 0 ? _d : SciChartDefaults_1.SciChartDefaults.useNativeText;\r\n return _this;\r\n }\r\n Object.defineProperty(LabelProviderBase2D.prototype, \"rotation\", {\r\n get: function () {\r\n return this.rotationProperty;\r\n },\r\n set: function (value) {\r\n if (this.rotationProperty !== value) {\r\n this.rotationProperty = value;\r\n this.invalidateParent();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LabelProviderBase2D.prototype, \"lineSpacing\", {\r\n /**\r\n * Line spacing to use if text is wrapped, as a multiple of the text height. Defaults to 1.1\r\n */\r\n get: function () {\r\n if (this.useNativeText) {\r\n return this.lineSpacingProperty === 1.1 ? 2 : this.lineSpacingProperty;\r\n }\r\n else {\r\n return this.lineSpacingProperty;\r\n }\r\n },\r\n /**\r\n * Line spacing to use if text is wrapped, as a multiple of the text height. Defaults to 1.1\r\n */\r\n set: function (value) {\r\n this.lineSpacingProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns an array of label strings for an array of major tick numeric values\r\n * @param majorTicks The major tick numeric values\r\n */\r\n LabelProviderBase2D.prototype.getLabels = function (majorTicks) {\r\n var _this = this;\r\n var axis = this.parentAxis;\r\n if (this.useCache) {\r\n if (!this.styleId) {\r\n this.styleId = LabelCache_1.labelCache.getStyleId(this.getCachedStyle());\r\n }\r\n else if (!LabelCache_1.labelCache.checkStyle(this.styleId, this.getCachedStyle())) {\r\n this.resetCache();\r\n this.styleId = LabelCache_1.labelCache.getStyleId(this.getCachedStyle());\r\n }\r\n }\r\n var ticks = majorTicks;\r\n if (this.parentAxis.isCategoryAxis) {\r\n var categoryCoordCalc_1 = this.parentAxis.getCurrentCoordinateCalculator();\r\n ticks = majorTicks.map(function (tick) { return categoryCoordCalc_1.transformIndexToData(tick); });\r\n }\r\n var labels = [];\r\n if (this.useCache) {\r\n if (!this.useNativeText) {\r\n for (var _i = 0, ticks_1 = ticks; _i < ticks_1.length; _i++) {\r\n var tick = ticks_1[_i];\r\n var cachedLabel = void 0;\r\n var text = void 0;\r\n var cachedLabelText = this.tickToText.get(tick);\r\n if (this.textVariesForSameTick) {\r\n text = this.formatLabel(tick);\r\n if (cachedLabelText && cachedLabelText === text) {\r\n cachedLabel = LabelCache_1.labelCache.getLabel(cachedLabelText, this.styleId);\r\n if (cachedLabel) {\r\n labels.push(cachedLabelText);\r\n }\r\n }\r\n else {\r\n this.tickToText.set(tick, text);\r\n }\r\n }\r\n else {\r\n if (cachedLabelText) {\r\n text = cachedLabelText;\r\n cachedLabel = LabelCache_1.labelCache.getLabel(cachedLabelText, this.styleId);\r\n if (cachedLabel) {\r\n labels.push(cachedLabelText);\r\n }\r\n }\r\n else {\r\n text = this.formatLabel(tick);\r\n this.tickToText.set(tick, text);\r\n }\r\n }\r\n if (!cachedLabel) {\r\n var texture = this.getCachedLabelTexture(text, axis.axisRenderer.textureManager, axis.dpiAdjustedLabelStyle);\r\n if (texture.textureWidth !== null) {\r\n cachedLabel = new LabelInfo(tick, text, texture.bitmapTexture, texture.textureHeight, texture.textureWidth);\r\n LabelCache_1.labelCache.setLabel(text, this.styleId, cachedLabel);\r\n }\r\n labels.push(text);\r\n }\r\n }\r\n LabelCache_1.labelCache.pruneCache();\r\n }\r\n else {\r\n var sizesToGet = [];\r\n for (var _a = 0, ticks_2 = ticks; _a < ticks_2.length; _a++) {\r\n var tick = ticks_2[_a];\r\n var cachedLabelText = this.tickToText.get(tick);\r\n if (this.textVariesForSameTick) {\r\n var text = this.formatLabel(tick);\r\n if (cachedLabelText && cachedLabelText === text) {\r\n labels.push(cachedLabelText);\r\n }\r\n else {\r\n this.tickToText.set(tick, text);\r\n sizesToGet.push(text);\r\n labels.push(text);\r\n }\r\n }\r\n else {\r\n if (cachedLabelText) {\r\n labels.push(cachedLabelText);\r\n }\r\n else {\r\n var text = this.formatLabel(tick);\r\n this.tickToText.set(tick, text);\r\n sizesToGet.push(text);\r\n labels.push(text);\r\n }\r\n }\r\n }\r\n this.getLabelSizesNative(sizesToGet, axis.dpiAdjustedLabelStyle);\r\n }\r\n }\r\n else {\r\n labels = ticks.map(function (t) { return _this.formatLabel(t); });\r\n }\r\n return labels;\r\n };\r\n /**\r\n * Called during axis layout to get the height of the label\r\n * @param ctx the CanvasRenderingContext2D which can be used to perform text measurment\r\n * @param labelText the text of the label\r\n * @param labelStyle the style of the label\r\n * @returns the label height in pixels\r\n */\r\n LabelProviderBase2D.prototype.getLabelHeight = function (ctx, labelText, labelStyle) {\r\n if (this.rotationProperty % 90 === 0 || this.parentAxis.isHorizontalAxis) {\r\n var cachedLabel = this.useCache ? LabelCache_1.labelCache.getLabel(labelText, this.styleId) : undefined;\r\n if (!cachedLabel || !cachedLabel.textureHeight) {\r\n var fontSize = labelStyle.fontSize, padding = labelStyle.padding;\r\n return (0, TextureManager_1.measureTextHeight)(fontSize) + (padding === null || padding === void 0 ? void 0 : padding.top) + (padding === null || padding === void 0 ? void 0 : padding.bottom);\r\n }\r\n return cachedLabel.textureHeight;\r\n }\r\n else {\r\n return labelStyle.fontSize + labelStyle.padding.top + labelStyle.padding.bottom;\r\n }\r\n };\r\n /**\r\n * Called during axis layout to get the width of the label\r\n * @param ctx the CanvasRenderingContext2D which can be used to perform text measurment\r\n * @param labelText the text of the label\r\n * @param labelStyle the style of the label\r\n * @returns the label width in pixels\r\n */\r\n LabelProviderBase2D.prototype.getLabelWidth = function (ctx, labelText, labelStyle) {\r\n if (this.rotationProperty % 90 === 0 || !this.parentAxis.isHorizontalAxis) {\r\n var cachedlabel = this.useCache ? LabelCache_1.labelCache.getLabel(labelText, this.styleId) : undefined;\r\n if (!cachedlabel || !cachedlabel.textureWidth) {\r\n var padding = labelStyle.padding;\r\n return (0, TextureManager_1.measureTextWidth)(ctx, labelText) + padding.left + padding.right;\r\n }\r\n return cachedlabel.textureWidth;\r\n }\r\n else {\r\n return labelStyle.fontSize + labelStyle.padding.left + labelStyle.padding.right;\r\n }\r\n };\r\n /**\r\n * Called during axis layout to get the maximum height of labels on a horizontal axis.\r\n * Normally this calls getLabelHeight for each label and returns the largest.\r\n * @param majorTickLabels an array of text labels\r\n * @param ctx the CanvasRenderingContext2D which can be used to perform text measurment\r\n * @param labelStyle the style of the labels\r\n * @returns the maximum label height in pixels\r\n */\r\n LabelProviderBase2D.prototype.getMaxLabelHeightForHorizontalAxis = function (majorTickLabels, ctx, labelStyle) {\r\n var _this = this;\r\n var maxHeight = 0;\r\n majorTickLabels.forEach(function (labelText) {\r\n var labelHeight = _this.getLabelHeight(ctx, labelText, labelStyle);\r\n maxHeight = labelHeight > maxHeight ? labelHeight : maxHeight;\r\n });\r\n return maxHeight;\r\n };\r\n /**\r\n * Called during axis layout to get the maximum width of labels on a vertical axis.\r\n * Normally this calls getLabelWidth for each label and returns the largest.\r\n * @param majorTickLabels an array of text labels\r\n * @param ctx the CanvasRenderingContext2D which can be used to perform text measurment\r\n * @param labelStyle the style of the labels\r\n * @returns the maximum label width in pixels\r\n */\r\n LabelProviderBase2D.prototype.getMaxLabelWidthForVerticalAxis = function (majorTickLabels, ctx, labelStyle) {\r\n var _this = this;\r\n var maxWidth = 0;\r\n majorTickLabels.forEach(function (labelText) {\r\n var labelWidth = _this.getLabelWidth(ctx, labelText, labelStyle);\r\n maxWidth = labelWidth > maxWidth ? labelWidth : maxWidth;\r\n });\r\n return maxWidth;\r\n };\r\n /**\r\n * Get a texture for the given label text. By default the textures are created first and then the resulting sizes are used by the layout functions\r\n * @param labelText The required text\r\n * @param textureManager A textureManager instance which contains methods for creating textures\r\n * @param labelStyle The style for the text\r\n * @returns A TTextureObject containing the bitmapTexture and the size\r\n */\r\n LabelProviderBase2D.prototype.getCachedLabelTexture = function (labelText, textureManager, labelStyle) {\r\n var _a;\r\n var cachedLabel = LabelCache_1.labelCache.getLabel(labelText, this.styleId);\r\n if (cachedLabel) {\r\n return {\r\n textureWidth: (_a = cachedLabel.textureWidth) !== null && _a !== void 0 ? _a : null,\r\n textureHeight: cachedLabel.textureHeight,\r\n bitmapTexture: cachedLabel.bitmapTexture\r\n };\r\n }\r\n else {\r\n return this.getLabelTexture(labelText, textureManager, labelStyle);\r\n }\r\n };\r\n /**\r\n * @deprecated AsyncLabels have been removed. useNativeText: true provides much greater performance benefit.\r\n * If using texture labels override getLabelTexture instead\r\n */\r\n LabelProviderBase2D.prototype.getLabelTextureAsync = function (labelText, textureManager, labelStyle) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.getLabelTexture(labelText, textureManager, labelStyle)];\r\n });\r\n });\r\n };\r\n /**\r\n * Create a texture for the given label text. This method is called if useNativeText is false.\r\n * If overriding this method with useSharedCache = true, consider setting it false for this LabelProvider,\r\n * otherwise other axes using the same style and text may see your custom texture. Alternatively you can override getCachedStyle or set styleId directly\r\n */\r\n LabelProviderBase2D.prototype.getLabelTexture = function (labelText, textureManager, labelStyle) {\r\n return textureManager.createTextTexture([labelText], labelStyle, this.rotationProperty);\r\n };\r\n LabelProviderBase2D.prototype.getNativeLabelInfo = function (labelText) {\r\n return LabelCache_1.labelCache.getLabel(labelText, this.styleId);\r\n };\r\n LabelProviderBase2D.prototype.invalidateCache = function () {\r\n if (this.styleId) {\r\n LabelCache_1.labelCache.freeStyle(this.styleId);\r\n }\r\n this.tickToText.clear();\r\n this.styleId = null;\r\n };\r\n LabelProviderBase2D.prototype.resetCache = function () {\r\n this.invalidateCache();\r\n };\r\n LabelProviderBase2D.prototype.delete = function () {\r\n this.resetCache();\r\n };\r\n LabelProviderBase2D.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n rotation: this.rotation,\r\n lineSpacing: this.lineSpacing,\r\n asyncLabels: false,\r\n useSharedCache: this.useSharedCache,\r\n useNativeText: this.useNativeText\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n LabelProviderBase2D.prototype.getLabelSizesNative = function (labels, textStyle) {\r\n var _this = this;\r\n if (!labels || labels.length === 0 || app_1.IS_TEST_ENV)\r\n return;\r\n var allLabels = \"\";\r\n var simpleLabels = [];\r\n var wasmContext = this.parentAxis.parentSurface.webAssemblyContext2D;\r\n var textBounds = (0, NativeObject_1.getTextBounds)(wasmContext);\r\n var nativeContext = wasmContext.SCRTGetMainRenderContext2D();\r\n var fontKey = (0, NativeObject_1.getFontKey)(wasmContext, this.getCachedStyle(), false);\r\n var nativeFont = nativeContext.AquireFont(fontKey);\r\n var rotationRad = this.rotation * (Math.PI / 180);\r\n var sin = Math.abs(Math.sin(rotationRad));\r\n var cos = Math.abs(Math.cos(rotationRad));\r\n var makeCacheEntry = function (width, height, label) {\r\n var _a, _b;\r\n var w = width;\r\n var h = height;\r\n if (_this.rotation !== 0) {\r\n h = width * sin + height * cos;\r\n w = width * cos + height * sin;\r\n }\r\n var cachedLabel = new LabelInfo(undefined, label, undefined, h + ((_a = textStyle.padding) === null || _a === void 0 ? void 0 : _a.top) + (textStyle === null || textStyle === void 0 ? void 0 : textStyle.padding.bottom), w + ((_b = textStyle.padding) === null || _b === void 0 ? void 0 : _b.left) + (textStyle === null || textStyle === void 0 ? void 0 : textStyle.padding.right));\r\n cachedLabel.textWidth = width;\r\n cachedLabel.textHeight = height;\r\n LabelCache_1.labelCache.setLabel(label, _this.styleId, cachedLabel);\r\n };\r\n labels.forEach(function (labelText) {\r\n if (labelText && !labelText.includes(\"\\n\")) {\r\n simpleLabels.push(labelText);\r\n allLabels += labelText + \"\\n\";\r\n }\r\n else {\r\n nativeFont.CalculateStringBounds(labelText !== null && labelText !== void 0 ? labelText : \"\", textBounds, 0);\r\n makeCacheEntry(textBounds.m_fWidth, textBounds.m_fHeight, labelText);\r\n }\r\n });\r\n if (simpleLabels.length > 0) {\r\n nativeFont.CalculateStringBounds(allLabels !== null && allLabels !== void 0 ? allLabels : \"\", textBounds, 2);\r\n for (var i = 0; i < simpleLabels.length; i++) {\r\n var label = simpleLabels[i];\r\n var bounds = textBounds.GetLineBounds(i);\r\n makeCacheEntry(bounds.m_fWidth, bounds.m_fHeight - bounds.m_fOffsetY, label);\r\n }\r\n }\r\n };\r\n /**\r\n * This method creates the text style to be stored in the label cache.\r\n * When useSharedCache = true, the label cache will generate a new styleId if this style does not match any existing style.\r\n * Cached labels are accessed by text and styleId.\r\n * If you are overriding getLabelTexture or getLabelTextureAsync and do not ensure the style is unique, you might not get the labels you expect.\r\n * You can either set useSharedCache = false, override this and set the extras field in {@link TCachedLabelStyle}, or set styleId directly\r\n */\r\n LabelProviderBase2D.prototype.getCachedStyle = function () {\r\n var axis = this.parentAxis;\r\n return __assign(__assign({}, axis.dpiAdjustedLabelStyle), { rotation: this.rotation, providerId: this.useSharedCache ? (this.useNativeText ? \"native\" : undefined) : this.providerId });\r\n };\r\n LabelProviderBase2D.prototype.clearCache = function () {\r\n if (this.useCache) {\r\n // Clear cache if property changed\r\n if (this.styleId) {\r\n LabelCache_1.labelCache.freeStyle(this.styleId);\r\n this.styleId = undefined;\r\n }\r\n }\r\n this.tickToText.clear();\r\n };\r\n LabelProviderBase2D.prototype.invalidateParent = function () {\r\n this.clearCache();\r\n _super.prototype.invalidateParent.call(this);\r\n };\r\n return LabelProviderBase2D;\r\n}(LabelProvider_1.LabelProvider));\r\nexports.LabelProviderBase2D = LabelProviderBase2D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LogarithmicLabelProvider = void 0;\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar NumericLabelProvider_1 = require(\"./NumericLabelProvider\");\r\n/**\r\n * The {@link LogarithmicLabelProvider} formats Axis Labels and Cursor / Tooltips for {@link LogarithmicAxis} types\r\n */\r\nvar LogarithmicLabelProvider = /** @class */ (function (_super) {\r\n __extends(LogarithmicLabelProvider, _super);\r\n /**\r\n * Creates an instance of {@link LogarithmicLabelProvider}\r\n * @param options Optional parameters of type {@link ILabelOptions} used to configure the axis at instantiation time\r\n */\r\n function LogarithmicLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, __assign({ labelFormat: (_a = options === null || options === void 0 ? void 0 : options.labelFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Scientific, labelPrecision: (_b = options === null || options === void 0 ? void 0 : options.labelPrecision) !== null && _b !== void 0 ? _b : 1 }, options)) || this;\r\n _this.formatLabelProperty = function (dataValue) {\r\n return _this.numericFormat === NumericFormat_1.ENumericFormat.Scientific\r\n ? _this.applyFormat((0, number_1.toScientific)(dataValue, _this.precision, _this.logarithmicBase))\r\n : _this.applyFormat((0, number_1.formatNumber)(dataValue, _this.numericFormat, _this.precision, _this.engineeringPrefix));\r\n };\r\n return _this;\r\n }\r\n return LogarithmicLabelProvider;\r\n}(NumericLabelProvider_1.NumericLabelProvider));\r\nexports.LogarithmicLabelProvider = LogarithmicLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumericLabelProvider = void 0;\r\nvar LabelProviderType_1 = require(\"../../../../types/LabelProviderType\");\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar LabelProviderBase2D_1 = require(\"./LabelProviderBase2D\");\r\n/**\r\n * The {@link NumericLabelProvider} formats Axis Labels and Cursor / Tooltips for {@link NumericAxis} types\r\n */\r\nvar NumericLabelProvider = /** @class */ (function (_super) {\r\n __extends(NumericLabelProvider, _super);\r\n /**\r\n * Creates an instance of {@link NumericLabelProvider}\r\n * @param options Optional parameters of type {@link ILabelOptions} used to configure the axis at instantiation time\r\n */\r\n function NumericLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, __assign({ labelFormat: (_a = options === null || options === void 0 ? void 0 : options.labelFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Decimal, labelPrecision: (_b = options === null || options === void 0 ? void 0 : options.labelPrecision) !== null && _b !== void 0 ? _b : 1 }, options)) || this;\r\n _this.type = LabelProviderType_1.ELabelProviderType.Numeric;\r\n _this.formatLabelProperty = function (dataValue) {\r\n return _this.applyFormat((0, number_1.formatNumber)(dataValue, _this.numericFormat, _this.precision, _this.engineeringPrefix));\r\n };\r\n _this.formatCursorLabelProperty = function (dataValue) {\r\n var _a, _b;\r\n return _this.applyFormat((0, number_1.formatNumber)(dataValue, (_a = _this.cursorNumericFormat) !== null && _a !== void 0 ? _a : _this.numericFormat, (_b = _this.cursorPrecision) !== null && _b !== void 0 ? _b : _this.precision, _this.engineeringPrefix));\r\n };\r\n return _this;\r\n }\r\n Object.defineProperty(NumericLabelProvider.prototype, \"engineeringPrefix\", {\r\n /**\r\n * Gets or sets the engineering prefixes to use when formatting values to text.\r\n * Default - `['K','M','B,'T']` for \"large\" prefixes, `['m','u','n','p']` for small prefixes\r\n * @remarks Only works when {@link ENumericFormat.Engineering} is selected\r\n */\r\n get: function () {\r\n return this.engineeringPrefixProperty;\r\n },\r\n set: function (value) {\r\n this.engineeringPrefixProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n NumericLabelProvider.prototype.onBeginAxisDraw = function () {\r\n // TODO: user can override here if they want\r\n };\r\n return NumericLabelProvider;\r\n}(LabelProviderBase2D_1.LabelProviderBase2D));\r\nexports.NumericLabelProvider = NumericLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PieLabelProvider = void 0;\r\nvar LabelProviderType_1 = require(\"../../../../types/LabelProviderType\");\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar SciChartPieSurface_1 = require(\"../../SciChartPieSurface/SciChartPieSurface\");\r\nvar LabelProvider_1 = require(\"./LabelProvider\");\r\n/**\r\n * @summary A Label Provider for use with Pie Charts to allow customizing of segment labels\r\n * To completely customise the label output, override {@link getSegmentText}\r\n * To just adjust the numeric formatting of the label, use numericformat, precision, prefix, postfix, or override {@link formatLabel}\r\n */\r\nvar PieLabelProvider = /** @class */ (function (_super) {\r\n __extends(PieLabelProvider, _super);\r\n function PieLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, __assign({ labelFormat: (_a = options === null || options === void 0 ? void 0 : options.labelFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Decimal, labelPrecision: (_b = options === null || options === void 0 ? void 0 : options.labelPrecision) !== null && _b !== void 0 ? _b : 2 }, options)) || this;\r\n _this.type = LabelProviderType_1.ELabelProviderType.Pie;\r\n _this.formatLabelProperty = function (dataValue) {\r\n return _this.applyFormat((0, number_1.formatNumber)(dataValue, _this.numericFormat, _this.precision)) +\r\n (_this.parentSurface.valueMode === SciChartPieSurface_1.EPieValueMode.Percentage ? \" %\" : \"\");\r\n };\r\n return _this;\r\n }\r\n PieLabelProvider.prototype.delete = function () { };\r\n /**\r\n * Get the text to be used as the segmet label. This picks the raw value, or percentage depending on the chart's valueMode\r\n * then formats it using the {@link formatLabel} function.\r\n * @param segment The PieSegment to get a label for\r\n * @param total Total of all pieSegment values\r\n */\r\n PieLabelProvider.prototype.getSegmentText = function (segment, total) {\r\n var labelValue = this.parentSurface.valueMode === SciChartPieSurface_1.EPieValueMode.Percentage ? segment.getPercentage(total) : segment.value;\r\n return this.formatLabel(labelValue);\r\n };\r\n /**\r\n * Called when the {@link LabelProvider} is attached to an {@link SciChartPieSurface }\r\n * @param pieSurface The SciPieSurface we are attached to.\r\n */\r\n PieLabelProvider.prototype.attachedToSurface = function (pieSurface) {\r\n this.parentSurface = pieSurface;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PieLabelProvider.prototype.onBeginAxisDraw = function () {\r\n // TODO: user can override here if they want\r\n };\r\n PieLabelProvider.prototype.invalidateParent = function () {\r\n if (this.parentSurface && this.parentSurface.invalidateElement) {\r\n this.parentSurface.invalidateElement();\r\n }\r\n };\r\n return PieLabelProvider;\r\n}(LabelProvider_1.LabelProvider));\r\nexports.PieLabelProvider = PieLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SmartDateLabelProvider = exports.ETradeChartLabelFormat = void 0;\r\nvar LabelProviderType_1 = require(\"../../../../types/LabelProviderType\");\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar date_1 = require(\"../../../../utils/date\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar LabelProviderBase2D_1 = require(\"./LabelProviderBase2D\");\r\nvar ETradeChartLabelFormat;\r\n(function (ETradeChartLabelFormat) {\r\n // 04:01 ... 45.1234 ... 46.3456\r\n ETradeChartLabelFormat[\"MilliSeconds\"] = \"MilliSeconds\";\r\n // Apr 25 ... 04:01:45 ... 02:02:30\r\n ETradeChartLabelFormat[\"Seconds\"] = \"Seconds\";\r\n // Apr 25 ... 01:34 ... 02:24\r\n ETradeChartLabelFormat[\"Minutes\"] = \"Minutes\";\r\n // Apr ... 08 ... 13\r\n ETradeChartLabelFormat[\"Days\"] = \"Days\";\r\n // 2020 ... Jan ... Feb\r\n ETradeChartLabelFormat[\"Months\"] = \"Months\";\r\n})(ETradeChartLabelFormat = exports.ETradeChartLabelFormat || (exports.ETradeChartLabelFormat = {}));\r\nvar TEN_SECONDS = 10;\r\nvar ONE_HOUR = 60 * 60;\r\nvar FIVE_DAYS = 60 * 60 * 24 * 5;\r\nvar FIFTY_DAYS = 60 * 60 * 24 * 50;\r\n/**\r\n * The {@link SmartDateLabelProvider} formats Axis Labels and Cursor / Tooltips for {@link NumericAxis} types\r\n */\r\nvar SmartDateLabelProvider = /** @class */ (function (_super) {\r\n __extends(SmartDateLabelProvider, _super);\r\n /**\r\n * Creates an instance of {@link SmartDateLabelProvider}\r\n */\r\n function SmartDateLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e;\r\n _this = _super.call(this, __assign({ labelFormat: (_a = options === null || options === void 0 ? void 0 : options.labelFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Date_DDMMYYYY, cursorLabelFormat: (_b = options === null || options === void 0 ? void 0 : options.cursorLabelFormat) !== null && _b !== void 0 ? _b : NumericFormat_1.ENumericFormat.Date_DDMMYYYY }, options)) || this;\r\n _this.type = LabelProviderType_1.ELabelProviderType.SmartDate;\r\n _this.textVariesForSameTick = true;\r\n _this.showWiderDateOnFirstLabelProperty = true;\r\n _this.showYearOnWiderDateProperty = false;\r\n _this.dateOffsetProperty = 0;\r\n _this.firstLabel = true;\r\n _this.showWiderDateOnFirstLabelProperty = (_c = options === null || options === void 0 ? void 0 : options.showWiderDateOnFirstLabel) !== null && _c !== void 0 ? _c : _this.showWiderDateOnFirstLabel;\r\n _this.showYearOnWiderDateProperty = (_d = options === null || options === void 0 ? void 0 : options.showYearOnWiderDate) !== null && _d !== void 0 ? _d : _this.showYearOnWiderDate;\r\n _this.dateOffsetProperty = (_e = options === null || options === void 0 ? void 0 : options.dateOffset) !== null && _e !== void 0 ? _e : _this.dateOffset;\r\n _this.formatCursorLabelProperty = function (dataValue) {\r\n var _a, _b;\r\n return _this.applyFormat((0, number_1.formatNumber)(dataValue + _this.dateOffset, (_a = _this.cursorNumericFormat) !== null && _a !== void 0 ? _a : _this.numericFormat, (_b = _this.cursorPrecision) !== null && _b !== void 0 ? _b : _this.precision));\r\n };\r\n _this.doFormat = _this.doFormat.bind(_this);\r\n _this.formatLabelProperty = _this.doFormat;\r\n return _this;\r\n }\r\n Object.defineProperty(SmartDateLabelProvider.prototype, \"showWiderDateOnFirstLabel\", {\r\n /**\r\n * Gets or Sets whether the first label should be formatted using the wider format (eg Month Day or Month Day Year if {@link showYearOnWiderDate}).\r\n * If false the wider format will only be used when it changes (eg day/month boundary)\r\n */\r\n get: function () {\r\n return this.showWiderDateOnFirstLabelProperty;\r\n },\r\n /**\r\n * Gets or Sets whether the first label should be formatted using the wider format (eg Month Day or Month Day Year if {@link showYearOnWiderDate}).\r\n * If false the wider format will only be used when it changes (eg day/month boundary).\r\n */\r\n set: function (value) {\r\n if (this.showWiderDateOnFirstLabelProperty !== value) {\r\n this.showWiderDateOnFirstLabelProperty = value;\r\n this.invalidateParent();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SmartDateLabelProvider.prototype, \"dateOffset\", {\r\n /**\r\n * A timestamp in seconds to add to the value being formatted. This allows you to plot dates with more than millisecond precision\r\n * but still show a full date with year on the axis\r\n */\r\n get: function () {\r\n var _a;\r\n return (_a = this.dateOffsetProperty) !== null && _a !== void 0 ? _a : 0;\r\n },\r\n /**\r\n * A timestamp in seconds to add to the value being formatted. This allows you to plot dates with more than millisecond precision\r\n * but still show a full date with year on the axis\r\n */\r\n set: function (value) {\r\n if (this.dateOffsetProperty !== value) {\r\n this.dateOffsetProperty = value;\r\n this.invalidateParent();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SmartDateLabelProvider.prototype, \"showYearOnWiderDate\", {\r\n /**\r\n * Gets or Sets whether the year should be shown in the wider format used on first label. Default false.\r\n */\r\n get: function () {\r\n return this.showYearOnWiderDateProperty;\r\n },\r\n /**\r\n * Gets or Sets whether the year should be shown in the wider format used on first label. Default false.\r\n */\r\n set: function (value) {\r\n if (this.showYearOnWiderDateProperty !== value) {\r\n this.showYearOnWiderDateProperty = value;\r\n this.invalidateParent();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SmartDateLabelProvider.prototype.onBeginAxisDraw = function () {\r\n // TODO: user can override here if they want\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SmartDateLabelProvider.prototype.getLabels = function (majorTicks) {\r\n var first = majorTicks[0];\r\n var ticksNumber = majorTicks.length;\r\n var last = majorTicks[ticksNumber - 1];\r\n // Only convert the values we need\r\n if (this.parentAxis.isCategoryAxis) {\r\n var categoryCoordCalc = this.parentAxis.getCurrentCoordinateCalculator();\r\n first = categoryCoordCalc.transformIndexToData(first);\r\n last = categoryCoordCalc.transformIndexToData(last);\r\n }\r\n this.prevPrevValue = undefined;\r\n this.prevValue = undefined;\r\n var timeRange = last - first;\r\n this.firstLabel = true;\r\n this.format = this.getLabelRange(timeRange, ticksNumber);\r\n var labels = _super.prototype.getLabels.call(this, majorTicks);\r\n this.format = undefined;\r\n return labels;\r\n };\r\n Object.defineProperty(SmartDateLabelProvider.prototype, \"numericFormat\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return undefined;\r\n // SCJS-1206 throwing erros here breaks serialization\r\n // throw new Error(\"Setting or getting numericFormat is not supported for SmartDateLabelProvider\");\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n // throw new Error(\"Setting or getting numericFormat is not supported for SmartDateLabelProvider\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** Format the value in a wider format, for the first label, and when the wider formated value would change */\r\n SmartDateLabelProvider.prototype.formatDateWide = function (labelRange, value) {\r\n if (labelRange === ETradeChartLabelFormat.MilliSeconds) {\r\n return ((this.showYearOnWiderDate ? (0, date_1.formatUnixDateToHumanString)(value) + \" \" : \"\") +\r\n (0, date_1.formatUnixDateToHumanStringHHMM)(value));\r\n }\r\n else if (labelRange === ETradeChartLabelFormat.Seconds || labelRange === ETradeChartLabelFormat.Minutes) {\r\n return ((0, date_1.formatUnixDateToHumanStringMMMDD)(value) +\r\n (this.showYearOnWiderDate ? \" \" + (0, date_1.formatUnixDateToHumanStringYYYY)(value) : \"\"));\r\n }\r\n else if (labelRange === ETradeChartLabelFormat.Days) {\r\n return ((0, date_1.formatUnixDateToHumanStringMMM)(value) +\r\n (this.showYearOnWiderDate ? \" \" + (0, date_1.formatUnixDateToHumanStringYYYY)(value) : \"\"));\r\n }\r\n else {\r\n return (0, date_1.formatUnixDateToHumanStringYYYY)(value);\r\n }\r\n };\r\n /** Format the value using precise format */\r\n SmartDateLabelProvider.prototype.formatDatePrecise = function (labelRange, value) {\r\n if (labelRange === ETradeChartLabelFormat.MilliSeconds) {\r\n return (0, date_1.formatUnixDateToHumanStringSSms)(value);\r\n }\r\n else if (labelRange === ETradeChartLabelFormat.Seconds) {\r\n return (0, date_1.formatUnixDateToHumanStringHHMMSS)(value);\r\n }\r\n else if (labelRange === ETradeChartLabelFormat.Minutes) {\r\n return (0, date_1.formatUnixDateToHumanStringHHMM)(value);\r\n }\r\n else if (labelRange === ETradeChartLabelFormat.Days) {\r\n return (0, date_1.formatUnixDateToHumanStringDD)(value);\r\n }\r\n else if (labelRange === ETradeChartLabelFormat.Months) {\r\n return (0, date_1.formatUnixDateToHumanStringDD)(value);\r\n }\r\n return (0, number_1.formatNumber)(value, NumericFormat_1.ENumericFormat.Date_DDMMYYYY, 0);\r\n };\r\n /** This method is bound to the formatLabel method of the base labelProvider.\r\n * It calls formatSmartLabel if a format has been set by getLabelRange\r\n */\r\n SmartDateLabelProvider.prototype.doFormat = function (dataValue) {\r\n var _a, _b;\r\n var valueToFormat = dataValue + this.dateOffset;\r\n if (this.format) {\r\n var text = this.formatSmartLabel(this.format, valueToFormat, this.prevValue, this.prevPrevValue, dataValue);\r\n this.prevPrevValue = this.prevValue;\r\n this.prevValue = valueToFormat;\r\n return text;\r\n }\r\n else {\r\n return this.applyFormat((0, number_1.formatNumber)(valueToFormat, (_a = this.cursorNumericFormat) !== null && _a !== void 0 ? _a : this.numericFormat, (_b = this.cursorPrecision) !== null && _b !== void 0 ? _b : this.precision));\r\n }\r\n };\r\n /** Return a range string, based on the numeric range of the axis. This will be used to choose which formatting to use */\r\n SmartDateLabelProvider.prototype.getLabelRange = function (timeRange, ticksNumber) {\r\n if (timeRange <= TEN_SECONDS) {\r\n return ETradeChartLabelFormat.MilliSeconds;\r\n }\r\n else if (timeRange <= ONE_HOUR) {\r\n return ETradeChartLabelFormat.Seconds;\r\n }\r\n else if (timeRange <= FIVE_DAYS) {\r\n return ETradeChartLabelFormat.Minutes;\r\n }\r\n else if (timeRange <= FIFTY_DAYS) {\r\n return ETradeChartLabelFormat.Days;\r\n }\r\n else {\r\n return ETradeChartLabelFormat.Months;\r\n }\r\n };\r\n /** Decide whether to format wide or precise, based on the range string, the current value and the two previous values\r\n * value has the dateOffset added. originalValue is the actual value of the tick */\r\n SmartDateLabelProvider.prototype.formatSmartLabel = function (tradeChartLabelFormat, value, prevValue, prevPrevValue, originalValue) {\r\n // TODO this needs to be smarter to use the original value rather than combined value for some ranges\r\n var showWider = !this.firstLabel || this.showWiderDateOnFirstLabel;\r\n this.firstLabel = false;\r\n var wideDate = this.formatDateWide(tradeChartLabelFormat, value);\r\n if (tradeChartLabelFormat !== ETradeChartLabelFormat.Months) {\r\n var newDate = prevValue === undefined || wideDate !== this.formatDateWide(tradeChartLabelFormat, prevValue);\r\n if (newDate && showWider) {\r\n return wideDate;\r\n }\r\n else {\r\n return this.formatDatePrecise(tradeChartLabelFormat, value);\r\n }\r\n }\r\n else {\r\n var newYear = prevValue === undefined || wideDate !== this.formatDateWide(tradeChartLabelFormat, prevValue);\r\n if (newYear && showWider) {\r\n return wideDate;\r\n }\r\n // If previous label was year, display month label\r\n var prevPrevNewYear = prevPrevValue === undefined ||\r\n this.formatDateWide(tradeChartLabelFormat, prevValue) !==\r\n this.formatDateWide(tradeChartLabelFormat, prevPrevValue);\r\n var newMonth = prevPrevNewYear || (0, date_1.formatUnixDateToHumanStringMMM)(value) !== (0, date_1.formatUnixDateToHumanStringMMM)(prevValue);\r\n if (newMonth) {\r\n return (0, date_1.formatUnixDateToHumanStringMMM)(value);\r\n }\r\n return this.formatDatePrecise(tradeChartLabelFormat, value);\r\n }\r\n };\r\n return SmartDateLabelProvider;\r\n}(LabelProviderBase2D_1.LabelProviderBase2D));\r\nexports.SmartDateLabelProvider = SmartDateLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.wrapText = exports.TextLabelProvider = void 0;\r\nvar LabelProviderType_1 = require(\"../../../../types/LabelProviderType\");\r\nvar TextureManager_1 = require(\"../../TextureManager/TextureManager\");\r\nvar LabelCache_1 = require(\"./LabelCache\");\r\nvar LabelProviderBase2D_1 = require(\"./LabelProviderBase2D\");\r\nvar TextLabelProvider = /** @class */ (function (_super) {\r\n __extends(TextLabelProvider, _super);\r\n function TextLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n _this.type = LabelProviderType_1.ELabelProviderType.Text;\r\n _this.maxLengthProperty = 0;\r\n _this.labelsProperty = (_a = options === null || options === void 0 ? void 0 : options.labels) !== null && _a !== void 0 ? _a : [];\r\n _this.maxLength = (_b = options === null || options === void 0 ? void 0 : options.maxLength) !== null && _b !== void 0 ? _b : _this.maxLength;\r\n _this.formatLabelProperty = function (dataValue) {\r\n var _a, _b;\r\n if (_this.parentAxis.isCategoryAxis && Array.isArray(_this.labels)) {\r\n var categoryCoordCalc = _this.parentAxis.getCurrentCoordinateCalculator();\r\n var index = categoryCoordCalc.transformDataToIndex(dataValue);\r\n return _this.wrapText((_a = _this.labels[index]) !== null && _a !== void 0 ? _a : \"\");\r\n }\r\n return _this.wrapText((_b = _this.labels[dataValue]) !== null && _b !== void 0 ? _b : \"\");\r\n };\r\n _this.formatCursorLabelProperty = _this.formatLabelProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(TextLabelProvider.prototype, \"labels\", {\r\n /**\r\n * The label text to use. If not set by options this will be an empty array.\r\n * When adding/updating labels, you should replace the whole array or object if you want to trigger chart updates.\r\n * If you pass an object like {1:\"one\", 2:\"two\", 3:\"three\"} then labels will be chosen based on the tick value.\r\n * eg ticks 3,1 will result in \"three\", \"one\".\r\n * If you pass an array like [\"one\", \"two\", \"three\"] then for a category axis it will use the labels in the order given, regardless of data value.\r\n * If you know that your x data will be a fixed set in a fixed order, then passing an array of labels is simpler.\r\n * To manually specify multiple lines, pass an array for the label eg [\"One line\",[\"Two\",\"Lines\"],[\"Three\",\"more\",\"lines\"]]\r\n */\r\n get: function () {\r\n return this.labelsProperty;\r\n },\r\n /**\r\n * The label text to use. If not set by options this will be an empty array.\r\n * When adding/updating labels, you should replace the whole array or object if you want to trigger chart updates.\r\n * If you pass an object like {1:\"one\", 2:\"two\", 3:\"three\"} then labels will be chosen based on the tick value.\r\n * eg ticks 3,1 will result in \"three\", \"one\".\r\n * If you pass an array like [\"one\", \"two\", \"three\"] then for a category axis it will use the labels in the order given, regardless of data value.\r\n * If you know that your x data will be a fixed set in a fixed order, then passing an array of labels is simpler.\r\n * To manually specify multiple lines, pass an array for the label eg [\"One line\",[\"Two\",\"Lines\"],[\"Three\",\"more\",\"lines\"]]\r\n */\r\n set: function (labels) {\r\n this.labelsProperty = labels;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextLabelProvider.prototype, \"maxLength\", {\r\n /**\r\n * Wrap text longer than this number of characters. Will only wrap whole words.\r\n */\r\n get: function () {\r\n return this.maxLengthProperty;\r\n },\r\n set: function (value) {\r\n this.maxLengthProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextLabelProvider.prototype.onBeginAxisDraw = function () { };\r\n TextLabelProvider.prototype.getLabelWidth = function (ctx, labelText, labelStyle) {\r\n if (this.useNativeText || this.rotation % 90 === 0 || !this.parentAxis.isHorizontalAxis) {\r\n var cachedlabel = LabelCache_1.labelCache.getLabel(labelText, this.styleId);\r\n if (!cachedlabel) {\r\n var padding = labelStyle.padding;\r\n return (0, TextureManager_1.measureTextWidth)(ctx, labelText) + padding.left + padding.right;\r\n }\r\n return cachedlabel.textureWidth;\r\n }\r\n else {\r\n var lines = Array.isArray(labelText) ? labelText : labelText.split(\"\\n\");\r\n return (lines.length * this.lineSpacing * labelStyle.fontSize +\r\n labelStyle.padding.left +\r\n labelStyle.padding.right);\r\n }\r\n };\r\n TextLabelProvider.prototype.getLabelTexture = function (labelText, textureManager, labelStyle) {\r\n var lines = labelText.split(\"\\n\");\r\n return textureManager.createTextTexture(lines, labelStyle, this.rotation, this.lineSpacing);\r\n };\r\n /**\r\n * Wraps the label text and returns it as a string with newlines\r\n */\r\n TextLabelProvider.prototype.wrapText = function (text) {\r\n if (text && Array.isArray(text))\r\n return text.join(\"\\n\");\r\n return (0, exports.wrapText)(text, this.maxLength).join(\"\\n\");\r\n };\r\n TextLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n labels: this.labels,\r\n maxLength: this.maxLength\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n TextLabelProvider.prototype.getCachedStyle = function () {\r\n var axis = this.parentAxis;\r\n return __assign(__assign({}, axis.dpiAdjustedLabelStyle), { rotation: this.rotation, extras: \"ls\".concat(this.lineSpacing, \",ml\").concat(this.maxLength), providerId: this.useSharedCache ? undefined : this.providerId });\r\n };\r\n return TextLabelProvider;\r\n}(LabelProviderBase2D_1.LabelProviderBase2D));\r\nexports.TextLabelProvider = TextLabelProvider;\r\n/**\r\n * Convert a string into an array of lines by splitting on spaces and wrapping to a maximum number of characters\r\n */\r\nvar wrapText = function (text, maxLength) {\r\n if (maxLength === 0)\r\n return [text];\r\n var lines = [];\r\n if (!text) {\r\n return lines;\r\n }\r\n var words = text.split(\" \");\r\n var line = \"\";\r\n for (var _i = 0, words_1 = words; _i < words_1.length; _i++) {\r\n var word = words_1[_i];\r\n var newLine = line + (line !== \"\" ? \" \" : \"\") + word;\r\n if (newLine.length > maxLength) {\r\n if (line === \"\") {\r\n lines.push(word);\r\n }\r\n else {\r\n lines.push(line);\r\n line = word;\r\n }\r\n }\r\n else {\r\n line = newLine;\r\n }\r\n }\r\n lines.push(line);\r\n return lines;\r\n};\r\nexports.wrapText = wrapText;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LogarithmicAxis = exports.MIN_LOG_AXIS_VALUE = void 0;\r\nvar EasingFunctions_1 = require(\"../../../Core/Animations/EasingFunctions\");\r\nvar NumberRangeAnimator_1 = require(\"../../../Core/Animations/NumberRangeAnimator\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar AxisType_1 = require(\"../../../types/AxisType\");\r\nvar XyDirection_1 = require(\"../../../types/XyDirection\");\r\nvar LogarithmicCoordinateCalculator_1 = require(\"../../Numerics/CoordinateCalculators/LogarithmicCoordinateCalculator\");\r\nvar LogarithmicTickProvider_1 = require(\"../../Numerics/TickProviders/LogarithmicTickProvider\");\r\nvar AxisBase2D_1 = require(\"./AxisBase2D\");\r\nvar constants_1 = require(\"./constants\");\r\nvar LogarithmicDeltaCalculator_1 = require(\"./DeltaCalculator/LogarithmicDeltaCalculator\");\r\nvar LogarithmicLabelProvider_1 = require(\"./LabelProvider/LogarithmicLabelProvider\");\r\n// TODO probably find better value, e.g. check if it works with Number.MIN_VALUE\r\nexports.MIN_LOG_AXIS_VALUE = 0.0000000001;\r\n/**\r\n * Creates an instance of a {@link LogarithmicAxis}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link ILogarithmicAxisOptions} used to configure the axis at instantiation time\r\n */\r\nvar LogarithmicAxis = /** @class */ (function (_super) {\r\n __extends(LogarithmicAxis, _super);\r\n function LogarithmicAxis(wasmContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, wasmContext, options) || this;\r\n _this.type = AxisType_1.EAxisType.LogarithmicAxis;\r\n _this.logBaseProperty = 10;\r\n _this.isHighPrecisionTicksProperty = true;\r\n _this.tickProvider = new LogarithmicTickProvider_1.LogarithmicTickProvider(wasmContext);\r\n _this.deltaCalculator = new LogarithmicDeltaCalculator_1.LogarithmicDeltaCalculator(wasmContext);\r\n _this.labelProvider =\r\n (_a = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _a !== void 0 ? _a : new LogarithmicLabelProvider_1.LogarithmicLabelProvider(options);\r\n _this.logBase = (_b = options === null || options === void 0 ? void 0 : options.logBase) !== null && _b !== void 0 ? _b : _this.logBaseProperty;\r\n _this.isNegativeProperty = (_c = options === null || options === void 0 ? void 0 : options.isNegative) !== null && _c !== void 0 ? _c : false;\r\n _this.visibleRange = (options === null || options === void 0 ? void 0 : options.visibleRange) || _this.getDefaultNonZeroRange();\r\n if (!(options === null || options === void 0 ? void 0 : options.visibleRange)) {\r\n _this.hasVisibleRangeSet = false;\r\n }\r\n _this.majorTickMode = (options === null || options === void 0 ? void 0 : options.majorTickMode) || _this.majorTickMode;\r\n _this.minorTickMode = (options === null || options === void 0 ? void 0 : options.minorTickMode) || _this.minorTickMode;\r\n _this.isHighPrecisionTicks = (_d = options === null || options === void 0 ? void 0 : options.isHighPrecisionTicks) !== null && _d !== void 0 ? _d : _this.isHighPrecisionTicksProperty;\r\n if (options === null || options === void 0 ? void 0 : options.visibleRangeLimit) {\r\n _this.visibleRangeLimit = options.visibleRangeLimit;\r\n }\r\n else {\r\n // Log axis can be positive or negative, but not both.\r\n if (_this.isNegativeProperty) {\r\n _this.visibleRangeLimit = new NumberRange_1.NumberRange(-Infinity, -exports.MIN_LOG_AXIS_VALUE);\r\n }\r\n else {\r\n _this.visibleRangeLimit = new NumberRange_1.NumberRange(exports.MIN_LOG_AXIS_VALUE, Infinity);\r\n }\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(LogarithmicAxis.prototype, \"logBase\", {\r\n /**\r\n * Gets or sets the Logarithmic Base for the axis. Defaults to 10\r\n */\r\n get: function () {\r\n return this.logBaseProperty;\r\n },\r\n /**\r\n * Gets or sets the Logarithmic Base for the axis. Defaults to 10\r\n */\r\n set: function (logBase) {\r\n if (this.logBaseProperty !== logBase) {\r\n this.logBaseProperty = logBase;\r\n this.clearCoordCalcCache();\r\n this.updateProviders();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LOG_BASE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LogarithmicAxis.prototype, \"isNegative\", {\r\n get: function () {\r\n return this.isNegativeProperty;\r\n },\r\n set: function (isNegative) {\r\n this.isNegativeProperty = isNegative;\r\n if (this.isNegativeProperty) {\r\n this.visibleRangeLimit = new NumberRange_1.NumberRange(-Infinity, -0.0000000001);\r\n }\r\n else {\r\n this.visibleRangeLimit = new NumberRange_1.NumberRange(0.0000000001, Infinity);\r\n }\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_NEGATIVE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LogarithmicAxis.prototype, \"isHighPrecisionTicks\", {\r\n get: function () {\r\n return this.isHighPrecisionTicksProperty;\r\n },\r\n set: function (isHighPrecisionTicks) {\r\n this.isHighPrecisionTicksProperty = isHighPrecisionTicks;\r\n this.updateProviders();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.HIGH_PRECISION_TICKS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LogarithmicAxis.prototype.getDefaultNonZeroRange = function () {\r\n var adj = this.isNegativeProperty ? -1 : 1;\r\n return new NumberRange_1.NumberRange(adj * Math.pow(this.logBase, -1), adj * Math.pow(this.logBase, 2));\r\n };\r\n LogarithmicAxis.prototype.hasValidVisibleRange = function () {\r\n return _super.prototype.hasValidVisibleRange.call(this) && this.visibleRange.min * this.visibleRange.max > 0;\r\n };\r\n Object.defineProperty(LogarithmicAxis.prototype, \"tickProvider\", {\r\n get: function () {\r\n return this.tickProviderProperty;\r\n },\r\n set: function (tickProvider) {\r\n this.tickProviderProperty = tickProvider;\r\n this.updateProviders();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TICK_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LogarithmicAxis.prototype, \"deltaCalculator\", {\r\n get: function () {\r\n return this.deltaCalculatorProperty;\r\n },\r\n set: function (deltaCalculator) {\r\n this.deltaCalculatorProperty = deltaCalculator;\r\n this.updateProviders();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DELTA_CALCULATOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LogarithmicAxis.prototype, \"labelProvider\", {\r\n get: function () {\r\n return this.labelProviderProperty;\r\n },\r\n set: function (labelProvider) {\r\n this.labelProviderProperty = labelProvider;\r\n this.updateProviders();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LogarithmicAxis.prototype, \"majorTickMode\", {\r\n /**\r\n * Gets or sets the mode for Major ticks using {@link ELogarithmicMajorTickMode}\r\n * Equally spaced (best for large ranges) or\r\n * Round numbers (better for small ranges)\r\n */\r\n get: function () {\r\n return this.logTickProvider.majorTickMode;\r\n },\r\n /**\r\n * Gets or sets the mode for Major ticks using {@link ELogarithmicMajorTickMode}\r\n * Equally spaced (best for large ranges) or\r\n * Round numbers (better for small ranges)\r\n */\r\n set: function (mode) {\r\n this.logTickProvider.majorTickMode = mode;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LogarithmicAxis.prototype, \"minorTickMode\", {\r\n /**\r\n * Gets or sets the mode for minor ticks using {@link ELogarithmicMinorTickMode},\r\n * Linear (default, best for smaller ranges),\r\n * Logarithmic (better for very large ranges) or\r\n * Auto (switches from linear to Logarithmic when the visible range is such that\r\n * the first linear minor tick would be more than 70% of the major tick)\r\n */\r\n get: function () {\r\n return this.logTickProvider.minorTickMode;\r\n },\r\n /**\r\n * Gets or sets the mode for minor ticks using {@link ELogarithmicMinorTickMode},\r\n * Linear (default, best for smaller ranges),\r\n * Logarithmic (better for very large ranges) or\r\n * Auto (switches from linear to Logarithmic when the visible range is such that\r\n * the first linear minor tick would be more than 70% of the major tick)\r\n */\r\n set: function (mode) {\r\n this.logTickProvider.minorTickMode = mode;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LogarithmicAxis.prototype.getWindowedYRange = function (xRanges) {\r\n var _this = this;\r\n var maxRange;\r\n if (this.parentSurface) {\r\n var visibleSeries = this.parentSurface.renderableSeries\r\n .asArray()\r\n .filter(function (s) { return s.yAxisId === _this.id && s.isVisible && s.hasDataSeriesValues(); });\r\n visibleSeries.forEach(function (rSeries) {\r\n // Get pre-calculated XRange if exists, otherwise, fetch from the axis for this series\r\n var xVisibleRange = (xRanges === null || xRanges === void 0 ? void 0 : xRanges.containsKey(rSeries.xAxisId))\r\n ? xRanges.item(rSeries.xAxisId)\r\n : _this.getXVisibleRange(rSeries.xAxisId);\r\n var isXCategoryAxis = _this.getIsXCategoryAxis(rSeries.xAxisId);\r\n if (xVisibleRange) {\r\n var range = rSeries.getYRange(xVisibleRange, isXCategoryAxis);\r\n if (range) {\r\n maxRange = maxRange ? maxRange.union(range) : range;\r\n }\r\n }\r\n });\r\n }\r\n if (maxRange === null || maxRange === void 0 ? void 0 : maxRange.isZero()) {\r\n maxRange = this.coerceZeroVisibleRange(maxRange);\r\n }\r\n if (this.growBy && maxRange) {\r\n maxRange = maxRange.growByLog(this.growBy, this.logBase);\r\n }\r\n if (this.visibleRangeLimit && maxRange) {\r\n maxRange = maxRange.clip(this.visibleRangeLimit);\r\n }\r\n return maxRange;\r\n };\r\n /**\r\n * @inheritdoc\r\n */\r\n LogarithmicAxis.prototype.animateVisibleRange = function (visibleRange, durationMs, easingFunction, onCompleted) {\r\n var _this = this;\r\n var _a;\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outCubic; }\r\n if (onCompleted === void 0) { onCompleted = function () { }; }\r\n if (durationMs <= 0) {\r\n // Don't allow setting visibleRange to undefined if there is no data\r\n this.visibleRange = visibleRange || this.visibleRange;\r\n onCompleted();\r\n return undefined;\r\n }\r\n (_a = this.visibleRangeAnimationToken) === null || _a === void 0 ? void 0 : _a.cancel();\r\n this.visibleRangeAnimationToken = NumberRangeAnimator_1.NumberRangeAnimator.animate(this.visibleRange, visibleRange, durationMs, function (range) {\r\n _this.visibleRange = range;\r\n }, onCompleted, easingFunction, true);\r\n this.parentSurface.addAnimation(this.visibleRangeAnimationToken);\r\n return this.visibleRangeAnimationToken;\r\n };\r\n LogarithmicAxis.prototype.scale = function (initialRange, delta, isMoreThanHalf) {\r\n var deltaRange = initialRange.max / initialRange.min;\r\n var newMin, newMax;\r\n // Respect flippedCoordinates\r\n var isMoreThanHalf2 = this.flippedCoordinates ? !isMoreThanHalf : isMoreThanHalf;\r\n var delta2 = this.flippedCoordinates ? -delta : delta;\r\n if (isMoreThanHalf2) {\r\n newMin = initialRange.min;\r\n var mult = delta2 > 0 ? Math.pow(deltaRange, 1 - delta2) : Math.pow(deltaRange, 1 + Math.abs(delta2));\r\n newMax = mult * newMin;\r\n }\r\n else {\r\n newMax = initialRange.max;\r\n var mult = delta2 > 0 ? Math.pow(deltaRange, 1 + delta2) : Math.pow(deltaRange, 1 + delta2);\r\n newMin = newMax / mult;\r\n }\r\n this.visibleRange = new NumberRange_1.NumberRange(newMin, newMax);\r\n };\r\n LogarithmicAxis.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n logBase: this.logBase,\r\n isNegative: this.isNegative,\r\n majorTickMode: this.majorTickMode,\r\n minorTickMode: this.minorTickMode,\r\n isHighPrecisionTicks: this.isHighPrecisionTicks\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n LogarithmicAxis.prototype.getCurrentCoordinateCalculatorInternal = function () {\r\n var min = this.visibleRange.min;\r\n var max = this.visibleRange.max;\r\n var size = this.axisLength;\r\n var direction = this.isXAxis ? XyDirection_1.EXyDirection.XDirection : XyDirection_1.EXyDirection.YDirection;\r\n return new LogarithmicCoordinateCalculator_1.LogarithmicCoordinateCalculator(this.webAssemblyContext2D, size, min, max, direction, this.logBase, this.isXAxis !== this.flippedCoordinates, this.offset);\r\n };\r\n LogarithmicAxis.prototype.getMaxXRange = function () {\r\n var maximumRange = this.getXDataRange();\r\n if (!maximumRange)\r\n return undefined;\r\n // TODO: Coerce a zero range\r\n if (this.growBy && maximumRange) {\r\n maximumRange = maximumRange.growByLog(this.growBy, this.logBase);\r\n }\r\n if (this.visibleRangeLimit && maximumRange) {\r\n maximumRange = maximumRange.clip(this.visibleRangeLimit);\r\n }\r\n return maximumRange;\r\n };\r\n Object.defineProperty(LogarithmicAxis.prototype, \"logTickProvider\", {\r\n get: function () {\r\n return this.tickProvider;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LogarithmicAxis.prototype.updateProviders = function () {\r\n var logTickProvider = this.tickProvider;\r\n if (logTickProvider) {\r\n logTickProvider.logarithmicBase = this.logBase;\r\n logTickProvider.isHighPrecisionTicks = this.isHighPrecisionTicks;\r\n }\r\n var logDeltaCalculator = this.deltaCalculator;\r\n if (logDeltaCalculator) {\r\n logDeltaCalculator.logarithmicBase = this.logBase;\r\n logDeltaCalculator.isHighPrecisionTicks = this.isHighPrecisionTicks;\r\n }\r\n var logLabelProvider = this.labelProvider;\r\n if (logLabelProvider) {\r\n logLabelProvider.logarithmicBase = this.logBase;\r\n }\r\n };\r\n return LogarithmicAxis;\r\n}(AxisBase2D_1.AxisBase2D));\r\nexports.LogarithmicAxis = LogarithmicAxis;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumericAxis = void 0;\r\nvar AxisType_1 = require(\"../../../types/AxisType\");\r\nvar FlippedNumericCoordinateCalculator_1 = require(\"../../Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator\");\r\nvar NumericCoordinateCalculator_1 = require(\"../../Numerics/CoordinateCalculators/NumericCoordinateCalculator\");\r\nvar NumericTickProvider_1 = require(\"../../Numerics/TickProviders/NumericTickProvider\");\r\nvar AxisBase2D_1 = require(\"./AxisBase2D\");\r\nvar NumericDeltaCalculator_1 = require(\"./DeltaCalculator/NumericDeltaCalculator\");\r\nvar NumericLabelProvider_1 = require(\"./LabelProvider/NumericLabelProvider\");\r\n/**\r\n * @summary A 2D Chart Numeric / Value Axis type\r\n * @description A Numeric axis uses the X-value to measure data-points on the XAxis.\r\n * This is contrary to a {@link CategoryAxis} which uses X-index.\r\n * @remarks\r\n * Set a {@link NumericAxis} on the {@link SciChartSurface.xAxes} or {@link SciChartSurface.yAxes} property.\r\n */\r\nvar NumericAxis = /** @class */ (function (_super) {\r\n __extends(NumericAxis, _super);\r\n /**\r\n * Creates an instance of a {@link NumericAxis}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link INumericAxisOptions} used to configure the axis at instantiation time\r\n */\r\n function NumericAxis(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = AxisType_1.EAxisType.NumericAxis;\r\n _this.tickProvider = new NumericTickProvider_1.NumericTickProvider(_this.webAssemblyContext2D);\r\n _this.labelProvider =\r\n (_a = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _a !== void 0 ? _a : new NumericLabelProvider_1.NumericLabelProvider(options);\r\n _this.deltaCalculator = new NumericDeltaCalculator_1.NumericDeltaCalculator(_this.webAssemblyContext2D);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n NumericAxis.prototype.getCurrentCoordinateCalculatorInternal = function () {\r\n var min = this.visibleRange.min;\r\n var max = this.visibleRange.max;\r\n var offset = this.offset;\r\n var size = this.axisLength;\r\n return this.isXAxis !== this.flippedCoordinates\r\n ? new FlippedNumericCoordinateCalculator_1.FlippedNumericCoordinateCalculator(this.webAssemblyContext2D, size, min, max, offset, this.allowFastMath)\r\n : new NumericCoordinateCalculator_1.NumericCoordinateCalculator(this.webAssemblyContext2D, size, min, max, offset, this.allowFastMath);\r\n };\r\n return NumericAxis;\r\n}(AxisBase2D_1.AxisBase2D));\r\nexports.NumericAxis = NumericAxis;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VisibleRangeChangedArgs = void 0;\r\n/**\r\n * Args for the {@link AxisCore.visibleRangeChanged} event\r\n */\r\nvar VisibleRangeChangedArgs = /** @class */ (function () {\r\n function VisibleRangeChangedArgs(visibleRange) {\r\n this.visibleRange = visibleRange;\r\n }\r\n return VisibleRangeChangedArgs;\r\n}());\r\nexports.VisibleRangeChangedArgs = VisibleRangeChangedArgs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"ALLOW_FAST_MATH\"] = \"ALLOW_FAST_MATH\";\r\n PROPERTY[\"AUTO_RANGE\"] = \"AUTO_RANGE\";\r\n PROPERTY[\"AUTO_TICKS\"] = \"AUTO_TICKS\";\r\n PROPERTY[\"AXIS_ALIGNMENT\"] = \"AXIS_ALIGNMENT\";\r\n PROPERTY[\"AXIS_BANDS_FILL\"] = \"AXIS_BANDS_FILL\";\r\n PROPERTY[\"AXIS_TITLE\"] = \"AXIS_TITLE\";\r\n PROPERTY[\"AXIS_LENGTH\"] = \"AXIS_LENGTH\";\r\n PROPERTY[\"BORDER\"] = \"BORDER\";\r\n PROPERTY[\"CURSOR_TEXT_FORMATTING\"] = \"CURSOR_TEXT_FORMATTING\";\r\n PROPERTY[\"DELTA_CALCULATOR\"] = \"DELTA_CALCULATOR\";\r\n PROPERTY[\"TICK_COORDINATES_CALCULATOR\"] = \"TICK_COORDINATES_CALCULATOR\";\r\n PROPERTY[\"DRAW_MAJOR_GRID_LINES\"] = \"DRAW_MAJOR_GRID_LINES\";\r\n PROPERTY[\"DRAW_MINOR_GRID_LINES\"] = \"DRAW_MINOR_GRID_LINES\";\r\n PROPERTY[\"DRAW_MAJOR_TICK_LINES\"] = \"DRAW_MAJOR_TICK_LINES\";\r\n PROPERTY[\"DRAW_MINOR_TICK_LINES\"] = \"DRAW_MINOR_TICK_LINES\";\r\n PROPERTY[\"DRAW_MAJOR_BANDS\"] = \"DRAW_MAJOR_BANDS\";\r\n PROPERTY[\"DRAW_LABELS\"] = \"DRAW_LABELS\";\r\n PROPERTY[\"FLIPPED_COORDINATES\"] = \"FLIPPED_COORDINATES\";\r\n PROPERTY[\"GROW_BY\"] = \"GROW_BY\";\r\n PROPERTY[\"ID\"] = \"ID\";\r\n PROPERTY[\"IS_AXIS_FLIPPED\"] = \"IS_AXIS_FLIPPED\";\r\n PROPERTY[\"IS_NEGATIVE\"] = \"IS_NEGATIVE\";\r\n PROPERTY[\"IS_INNER_AXIS\"] = \"IS_INNER_AXIS\";\r\n PROPERTY[\"IS_PRIMARY_AXIS\"] = \"IS_PRIMARY_AXIS\";\r\n PROPERTY[\"IS_VISIBLE\"] = \"IS_VISIBLE\";\r\n PROPERTY[\"IS_XAXIS\"] = \"IS_XAXIS\";\r\n PROPERTY[\"LABEL_PROVIDER\"] = \"LABEL_PROVIDER\";\r\n PROPERTY[\"AXIS_RENDERER\"] = \"LABEL_PROVIDER\";\r\n PROPERTY[\"LOG_BASE\"] = \"LOG_BASE\";\r\n PROPERTY[\"MAJOR_DELTA\"] = \"MAJOR_DELTA\";\r\n PROPERTY[\"MAJOR_GRID_LINE_STYLE\"] = \"MAJOR_GRID_LINE_STYLE\";\r\n PROPERTY[\"MAJOR_TICK_LINE_STYLE\"] = \"MAJOR_TICK_LINE_STYLE\";\r\n PROPERTY[\"MAX_AUTO_TICKS\"] = \"MAX_AUTO_TICKS\";\r\n PROPERTY[\"MINOR_DELTA\"] = \"MINOR_DELTA\";\r\n PROPERTY[\"MINOR_GRID_LINE_STYLE\"] = \"MINOR_GRID_LINE_STYLE\";\r\n PROPERTY[\"MINOR_TICK_LINE_STYLE\"] = \"MINOR_TICK_LINE_STYLE\";\r\n PROPERTY[\"MINORS_PER_MAJOR\"] = \"MINORS_PER_MAJOR\";\r\n PROPERTY[\"OFFSET\"] = \"OFFSET\";\r\n PROPERTY[\"TEXT_FORMATTING\"] = \"TEXT_FORMATTING\";\r\n PROPERTY[\"TEXT_STYLE\"] = \"TEXT_STYLE\";\r\n PROPERTY[\"TICK_TEXT_BRUSH\"] = \"TICK_TEXT_BRUSH\";\r\n PROPERTY[\"VISIBLE_RANGE\"] = \"VISIBLE_RANGE\";\r\n PROPERTY[\"VISIBLE_RANGE_LIMIT\"] = \"VISIBLE_RANGE_LIMIT\";\r\n PROPERTY[\"VISIBLE_RANGE_SIZE_LIMIT\"] = \"VISIBLE_RANGE_SIZE_LIMIT\";\r\n PROPERTY[\"TICK_PROVIDER\"] = \"TICK_PROVIDER\";\r\n PROPERTY[\"VIEW_RECT\"] = \"VIEW_RECT\";\r\n PROPERTY[\"ZOOMEXTENTS_RANGE\"] = \"ZOOMEXTENTS_RANGE\";\r\n PROPERTY[\"DRAW_ONLY_WITHIN_XRANGE\"] = \"DRAW_ONLY_WITHIN_XRANGE\";\r\n PROPERTY[\"HIGH_PRECISION_TICKS\"] = \"HIGH_PRECISION_TICKS\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getAxis3dById = exports.getAxisById = void 0;\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nfunction getAxisById(axes, axisId) {\r\n return getAxisGeneric(axes, axisId);\r\n}\r\nexports.getAxisById = getAxisById;\r\nfunction getAxis3dById(axes, axisId) {\r\n return getAxisGeneric(axes, axisId);\r\n}\r\nexports.getAxis3dById = getAxis3dById;\r\nfunction getAxisGeneric(axes, axisId) {\r\n Guard_1.Guard.notNull(axes, \"axes\");\r\n for (var i = 0; i < axes.size(); i++) {\r\n var axis = axes.get(i);\r\n if (axis.id === axisId) {\r\n return axis;\r\n }\r\n }\r\n console.warn(\"scichart getAxisGeneric(): Axis with Id '\".concat(axisId, \"' was not found\"));\r\n return undefined;\r\n}\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HeatmapLegend = void 0;\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar zeroArray2D_1 = require(\"../../utils/zeroArray2D\");\r\nvar UniformHeatmapDataSeries_1 = require(\"../Model/UniformHeatmapDataSeries\");\r\nvar NumericAxis_1 = require(\"./Axis/NumericAxis\");\r\nvar HeatmapColorMap_1 = require(\"./RenderableSeries/HeatmapColorMap\");\r\nvar UniformHeatmapRenderableSeries_1 = require(\"./RenderableSeries/UniformHeatmapRenderableSeries\");\r\nvar SciChartSurface_1 = require(\"./SciChartSurface\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\n/**\r\n * @summary The HeatmapLegend displays a control which hosts a {@link SciChartSurface} in a specific Div on the chart.\r\n * The legend contains a gradient fill and can be used in conjunction with {@link UniformHeatmapRenderableSeries},\r\n * {@link NonUniformHeatmapRenderableSeries} or {@link SurfaceMeshRenderableSeries3D} to allow the user to see what colors map\r\n * to what values on the heatmap or surface.\r\n * @remarks This control will expand to fit its parent Div. Suggest placing the div to the right and floating 100px wide to\r\n * create a good effect.\r\n */\r\nvar HeatmapLegend = /** @class */ (function (_super) {\r\n __extends(HeatmapLegend, _super);\r\n /**\r\n * Creates a new HeatmapLegend wrapping a SciChartSurface. Use the {@link HeatmapLegend.create()} function to create this asynchronously\r\n * @param sciChartSurface\r\n * @param options\r\n */\r\n function HeatmapLegend(sciChartSurface, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n _this = _super.call(this) || this;\r\n _this.SIZE = 100;\r\n Guard_1.Guard.notNull(sciChartSurface, \"sciChartSurface\");\r\n _this.sciChartSurface = sciChartSurface;\r\n _this.wasmContext = sciChartSurface.webAssemblyContext2D;\r\n var minimum = (_b = (_a = options === null || options === void 0 ? void 0 : options.colorMap) === null || _a === void 0 ? void 0 : _a.minimum) !== null && _b !== void 0 ? _b : 0;\r\n var maximum = (_d = (_c = options === null || options === void 0 ? void 0 : options.colorMap) === null || _c === void 0 ? void 0 : _c.maximum) !== null && _d !== void 0 ? _d : 100;\r\n var gradientStops = (_f = (_e = options === null || options === void 0 ? void 0 : options.colorMap) === null || _e === void 0 ? void 0 : _e.gradientStops) !== null && _f !== void 0 ? _f : _this.getDefaultGradientStops();\r\n // Add an XAxis and YAxis. Ensure properties are set via options\r\n sciChartSurface.xAxes.add(new NumericAxis_1.NumericAxis(_this.wasmContext, __assign({}, _this.getDefaultXAxisOptions())));\r\n sciChartSurface.yAxes.add(new NumericAxis_1.NumericAxis(_this.wasmContext, __assign(__assign(__assign({}, _this.getDefaultYAxisOptions()), options === null || options === void 0 ? void 0 : options.yAxisOptions), { visibleRange: new NumberRange_1.NumberRange(minimum, maximum) })));\r\n // Create a 1D array of size 100, 1. This will be filled with values from 0...99 which will\r\n // be mapped to colours according to the colorMap below.\r\n var zValues = _this.getZValues(minimum, maximum);\r\n // Add a heatmap with 1D data. This contains a 1x100 array of values equal to 0...99.\r\n // the values are mapped ot a colormap with the same gradient stops as the 3d chart. result is a 3d chart heat legend\r\n sciChartSurface.renderableSeries.add(new UniformHeatmapRenderableSeries_1.UniformHeatmapRenderableSeries(_this.wasmContext, {\r\n dataSeries: new UniformHeatmapDataSeries_1.UniformHeatmapDataSeries(_this.wasmContext, {\r\n xStart: 0,\r\n xStep: 1,\r\n yStart: minimum,\r\n yStep: (maximum - minimum) / _this.SIZE,\r\n zValues: zValues\r\n }),\r\n useLinearTextureFiltering: true,\r\n colorMap: (_g = options === null || options === void 0 ? void 0 : options.colorMap) !== null && _g !== void 0 ? _g : new HeatmapColorMap_1.HeatmapColorMap({\r\n minimum: minimum,\r\n maximum: maximum,\r\n gradientStops: gradientStops\r\n })\r\n }));\r\n return _this;\r\n }\r\n /**\r\n * Asynchronously creates a {@link HeatmapLegend} and @link TSciChart | WebAssembly Context} to occupy the div by element ID in your DOM.\r\n * @remarks This method is async and must be awaited\r\n * @param divElement The Div Element ID or reference where the {@link HeatmapLegend} will reside\r\n * @param options Optional - Optional parameters for chart creation. See {@link IHeatmapLegendOptions} for more details\r\n */\r\n HeatmapLegend.create = function (divElement, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, sciChartSurface, wasmContext, heatmapLegend;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0: return [4 /*yield*/, SciChartSurface_1.SciChartSurface.create(divElement, {\r\n theme: options === null || options === void 0 ? void 0 : options.theme\r\n })];\r\n case 1:\r\n _a = _b.sent(), sciChartSurface = _a.sciChartSurface, wasmContext = _a.wasmContext;\r\n heatmapLegend = new HeatmapLegend(sciChartSurface, options);\r\n return [2 /*return*/, { wasmContext: wasmContext, heatmapLegend: heatmapLegend }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Deletes the {@link HeatmapLegend} control, its {@link innerSciChartSurface} and all associated webassembly memory\r\n */\r\n HeatmapLegend.prototype.delete = function () {\r\n this.sciChartSurface = (0, Deleter_1.deleteSafe)(this.sciChartSurface);\r\n this.wasmContext = undefined;\r\n };\r\n Object.defineProperty(HeatmapLegend.prototype, \"innerSciChartSurface\", {\r\n /**\r\n * Returns the inner {@link SciChartSurface} which renders the heatmap legend\r\n */\r\n get: function () {\r\n return { sciChartSurface: this.sciChartSurface, wasmContext: this.wasmContext };\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets the default {@link TGradientStop | GradientStops} to apply to the inner {@link SciChartSurface}\r\n * @protected\r\n */\r\n HeatmapLegend.prototype.getDefaultGradientStops = function () {\r\n return [\r\n { offset: 1, color: \"Red\" },\r\n { offset: 0, color: \"Blue\" }\r\n ];\r\n };\r\n /**\r\n * Gets the default options to apply to the inner {@link SciChartSurface} xAxis. Must conform to {@link IAxisBase2dOptions} interface\r\n * @protected\r\n */\r\n HeatmapLegend.prototype.getDefaultXAxisOptions = function () {\r\n return {\r\n drawMajorGridLines: false,\r\n drawMinorGridLines: false,\r\n drawMajorTickLines: false,\r\n drawMinorTickLines: false,\r\n drawLabels: false\r\n };\r\n };\r\n /**\r\n * Gets the default options to apply to the inner {@link SciChartSurface} yAxis. Must conform to {@link IAxisBase2dOptions} interface\r\n * @protected\r\n */\r\n HeatmapLegend.prototype.getDefaultYAxisOptions = function () {\r\n return {\r\n maxAutoTicks: 5,\r\n drawMajorGridLines: false,\r\n drawMinorGridLines: false,\r\n drawLabels: true,\r\n drawMajorTickLines: true,\r\n drawMinorTickLines: true\r\n };\r\n };\r\n HeatmapLegend.prototype.getZValues = function (minimum, maximum) {\r\n var legendHeatmapData = (0, zeroArray2D_1.zeroArray2D)([this.SIZE, 1]);\r\n var step = (maximum - minimum) / (this.SIZE - 1);\r\n for (var i = 0, j = minimum; i < this.SIZE; i++, j += step) {\r\n legendHeatmapData[i][0] = j;\r\n }\r\n return legendHeatmapData;\r\n };\r\n return HeatmapLegend;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.HeatmapLegend = HeatmapLegend;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getAllFontKeys = exports.getFontKey = exports.getVector4 = exports.getNativeRect = exports.getTextBounds = exports.getVertex = exports.getVectorColorVertex = exports.getVectorRectVertex = exports.freeCache = exports.deleteCache = exports.FontKey = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar LabelCache_1 = require(\"../Axis/LabelProvider/LabelCache\");\r\nvar SciChartDefaults_1 = require(\"../SciChartDefaults\");\r\nvar FontKey = /** @class */ (function (_super) {\r\n __extends(FontKey, _super);\r\n function FontKey(nativeKey) {\r\n var _this = _super.call(this) || this;\r\n _this.firstLoadTime = Date.now();\r\n _this.nativeKey = nativeKey;\r\n return _this;\r\n }\r\n FontKey.prototype.delete = function () {\r\n (0, Deleter_1.deleteSafe)(this.nativeKey);\r\n };\r\n return FontKey;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.FontKey = FontKey;\r\nvar objectCache = new Map();\r\nvar getCache = function (wasmContext) {\r\n var _a, _b;\r\n var canvasId = (_b = (_a = wasmContext === null || wasmContext === void 0 ? void 0 : wasmContext.canvas) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : \"TEST\";\r\n if (!objectCache.has(canvasId)) {\r\n objectCache.set(canvasId, {\r\n vecRects: undefined,\r\n vecColorVertex: undefined,\r\n vertex: undefined,\r\n rect: undefined,\r\n vector4: undefined,\r\n textBounds: undefined,\r\n keyCache: new Map()\r\n });\r\n }\r\n return objectCache.get(canvasId);\r\n};\r\nvar deleteCache = function (wasmContext) {\r\n if (!wasmContext.canvas)\r\n return;\r\n var canvasId = wasmContext.canvas.id;\r\n var cache = objectCache.get(canvasId);\r\n if (cache) {\r\n (0, Deleter_1.deleteSafe)(cache.vecRects);\r\n (0, Deleter_1.deleteSafe)(cache.vecColorVertex);\r\n (0, Deleter_1.deleteSafe)(cache.vertex);\r\n (0, Deleter_1.deleteSafe)(cache.rect);\r\n (0, Deleter_1.deleteSafe)(cache.vector4);\r\n (0, Deleter_1.deleteSafe)(cache.textBounds);\r\n cache.keyCache.forEach(function (key) { return (0, Deleter_1.deleteSafe)(key); });\r\n }\r\n objectCache.delete(canvasId);\r\n};\r\nexports.deleteCache = deleteCache;\r\nvar freeCache = function (wasmContext) {\r\n return {\r\n delete: function () { return (0, exports.deleteCache)(wasmContext); }\r\n };\r\n};\r\nexports.freeCache = freeCache;\r\n/**\r\n * Returns an empty vector of Rectangles\r\n * @param wasmContext\r\n * @param maxSize\r\n * @returns\r\n */\r\nvar getVectorRectVertex = function (wasmContext, maxSize) {\r\n if (maxSize === void 0) { maxSize = 100; }\r\n var cache = getCache(wasmContext);\r\n if (!cache)\r\n return undefined;\r\n var vecRects = cache.vecRects;\r\n if (!vecRects) {\r\n vecRects = new wasmContext.VectorRectVertex();\r\n vecRects.reserve(maxSize);\r\n cache.vecRects = vecRects;\r\n }\r\n vecRects.clear();\r\n return vecRects;\r\n};\r\nexports.getVectorRectVertex = getVectorRectVertex;\r\nvar getVectorColorVertex = function (wasmContext, maxSize) {\r\n if (maxSize === void 0) { maxSize = 100; }\r\n var cache = getCache(wasmContext);\r\n if (!cache)\r\n return undefined;\r\n var vecColorVertex = cache.vecColorVertex;\r\n if (!vecColorVertex) {\r\n vecColorVertex = new wasmContext.VectorColorVertex();\r\n vecColorVertex.reserve(maxSize);\r\n cache.vecColorVertex = vecColorVertex;\r\n }\r\n vecColorVertex.clear();\r\n return vecColorVertex;\r\n};\r\nexports.getVectorColorVertex = getVectorColorVertex;\r\nvar getVertex = function (wasmContext, x, y, colour) {\r\n var cache = getCache(wasmContext);\r\n if (!cache)\r\n return undefined;\r\n var vertex = cache.vertex;\r\n if (!vertex) {\r\n vertex = new wasmContext.SCRTColorVertex(x, y);\r\n cache.vertex = vertex;\r\n }\r\n else {\r\n vertex.SetPosition(x, y);\r\n vertex.m_uiColor = colour !== null && colour !== void 0 ? colour : 4294967295; // masked color\r\n }\r\n return vertex;\r\n};\r\nexports.getVertex = getVertex;\r\nvar getTextBounds = function (wasmContext) {\r\n var cache = getCache(wasmContext);\r\n if (!cache)\r\n return undefined;\r\n var textBounds = cache.textBounds;\r\n if (!textBounds) {\r\n textBounds = new wasmContext.TSRTextBounds();\r\n cache.textBounds = textBounds;\r\n }\r\n return textBounds;\r\n};\r\nexports.getTextBounds = getTextBounds;\r\nvar getNativeRect = function (wasmContext, xTopLeft, yTopLeft, xBottomRight, yBottomRight) {\r\n var cache = getCache(wasmContext);\r\n var rect = cache.rect;\r\n if (!rect) {\r\n rect = new wasmContext.SCRTRectVertex(xTopLeft, yTopLeft, xBottomRight - xTopLeft, yBottomRight - yTopLeft);\r\n cache.rect = rect;\r\n }\r\n else {\r\n rect.Assign(xTopLeft, yTopLeft, xBottomRight - xTopLeft, yBottomRight - yTopLeft);\r\n }\r\n return rect;\r\n};\r\nexports.getNativeRect = getNativeRect;\r\nvar getVector4 = function (wasmContext, x, y, z, w) {\r\n var cache = getCache(wasmContext);\r\n var vector4 = cache.vector4;\r\n if (!vector4) {\r\n vector4 = new wasmContext.TSRVector4(x, y, z, w);\r\n cache.vector4 = vector4;\r\n }\r\n else {\r\n vector4.Assign(x, y, z, w);\r\n }\r\n return vector4;\r\n};\r\nexports.getVector4 = getVector4;\r\n/**\r\n * get a fontKey required to aquire a native font\r\n * @param webAssemblyContext\r\n * @param labelStyle\r\n * @param transformed set true to get an alternative instance of the font which can be used multiple times while transformations are in effect,\r\n * without disrupting global font rendering\r\n * @returns\r\n */\r\nvar getFontKey = function (webAssemblyContext, labelStyle, advanced, transformed) {\r\n if (advanced === void 0) { advanced = false; }\r\n if (transformed === void 0) { transformed = false; }\r\n var cache = getCache(webAssemblyContext);\r\n if (!cache)\r\n return undefined;\r\n var keyCache = cache.keyCache;\r\n var newStyle = {\r\n fontFamily: labelStyle.fontFamily,\r\n fontSize: labelStyle.fontSize,\r\n extras: (advanced ? \"advanced\" : \"\") + (transformed ? \"transformed\" : \"\"),\r\n providerId: undefined\r\n };\r\n var styleId = LabelCache_1.labelCache.getStyleId(newStyle);\r\n if (!keyCache.has(styleId)) {\r\n var fontKey = new FontKey(new webAssemblyContext.SCRTFontKey(labelStyle.fontFamily, labelStyle.fontSize, transformed, advanced));\r\n keyCache.set(styleId, fontKey);\r\n }\r\n var key = keyCache.get(styleId);\r\n var timeSinceLoad = Date.now() - key.firstLoadTime;\r\n if (timeSinceLoad > SciChartDefaults_1.SciChartDefaults.nativeFontTimeout) {\r\n key.nativeKey.m_reload = false;\r\n }\r\n return key.nativeKey;\r\n};\r\nexports.getFontKey = getFontKey;\r\nvar getAllFontKeys = function (webAssemblyContext) {\r\n var cache = getCache(webAssemblyContext);\r\n return Array.from(cache.keyCache.values()).map(function (k) { return k.nativeKey; });\r\n};\r\nexports.getAllFontKeys = getAllFontKeys;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createNativeRect = void 0;\r\nvar NativeObject_1 = require(\"./NativeObject\");\r\nvar rect;\r\n/**\r\n * Helper function to create a {@link SCRTRectVertex} native rectangle vertex\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param xTopLeft\r\n * @param yTopLeft\r\n * @param xBottomRight\r\n * @param yBottomRight\r\n */\r\nvar createNativeRect = function (webAssemblyContext, xTopLeft, yTopLeft, xBottomRight, yBottomRight) {\r\n return (0, NativeObject_1.getNativeRect)(webAssemblyContext, xTopLeft, yTopLeft, xBottomRight, yBottomRight);\r\n};\r\nexports.createNativeRect = createNativeRect;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createSCRTPen = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar MemoryUsageHelper_1 = require(\"../../../utils/MemoryUsageHelper\");\r\nvar colorUtil_1 = require(\"../../../utils/colorUtil\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\n/**\r\n * Helper function to create a {@link SCRTPen} native pen\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param wasmContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param htmlColorCode Html color code in the format \"#fff\", \"#ff0000\", \"rgba(255,255,0,1)\", \"#11333333\"\r\n * @param strokeThickness the stroke thickness of the pen in pixels\r\n * @param opacity The opacity factor\r\n * @param strokeDashArray the StrokeDashArray which defines any dash e.g. [2,2] means dash for 2pts, gap for 2pts (or undefined = solid line).\r\n */\r\nvar createSCRTPen = function (wasmContext, htmlColorCode, strokeThickness, opacity, strokeDashArray, antiAliased) {\r\n if (antiAliased === void 0) { antiAliased = true; }\r\n if (app_1.IS_TEST_ENV || !htmlColorCode) {\r\n return undefined;\r\n }\r\n // the logic for calculating an opacity should be consistent when creating new and updating an existing pen or brush\r\n var colorArgb = (0, colorUtil_1.uintArgbColorMultiplyOpacity)((0, parseColor_1.parseColorToUIntArgb)(htmlColorCode), opacity);\r\n if (isNaN(colorArgb)) {\r\n throw new Error(\"Color code \".concat(htmlColorCode, \" cannot be converted to an ARGB integer\"));\r\n }\r\n if (strokeDashArray && strokeDashArray.length) {\r\n // Create a dashed pen\r\n var strokeDashFloatVector_1 = new wasmContext.FloatVector();\r\n if (process.env.NODE_ENV !== \"production\") {\r\n // prevent unnecessary warning\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {\r\n var vectorId = MemoryUsageHelper_1.MemoryUsageHelper.objectRegistry.getObjectId(strokeDashFloatVector_1);\r\n MemoryUsageHelper_1.MemoryUsageHelper.unregister(vectorId);\r\n }\r\n }\r\n strokeDashArray.forEach(function (item) { return strokeDashFloatVector_1.push_back(item); });\r\n return wasmContext.SCRTCreateDahedPen(colorArgb, strokeThickness, antiAliased, strokeDashFloatVector_1);\r\n }\r\n // Create a normal pen\r\n return new wasmContext.SCRTPen(colorArgb, strokeThickness, antiAliased);\r\n};\r\nexports.createSCRTPen = createSCRTPen;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createSolidBrush = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar colorUtil_1 = require(\"../../../utils/colorUtil\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\n/**\r\n * Helper function to create a {@link SCRTBrush} native solid color brushes\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param htmlColorCode Html color code in the format \"#fff\", \"#ff0000\", \"rgba(255,255,0,1)\", \"#11333333\"\r\n */\r\nvar createSolidBrush = function (wasmContext, htmlColorCode, opacity) {\r\n if (app_1.IS_TEST_ENV || !htmlColorCode) {\r\n return undefined;\r\n }\r\n // the logic for calculating an opacity should be consistent when creating new and updating an existing pen or brush\r\n var colorArgb = (0, colorUtil_1.uintArgbColorMultiplyOpacity)((0, parseColor_1.parseColorToUIntArgb)(htmlColorCode), opacity);\r\n var isTransparent = (0, colorUtil_1.uintArgbColorIsTransparent)(colorArgb);\r\n if (isNaN(colorArgb)) {\r\n throw new Error(\"Color code \".concat(htmlColorCode, \" cannot be converted to an ARGB integer\"));\r\n }\r\n return new wasmContext.SCRTSolidBrush(colorArgb, isTransparent);\r\n};\r\nexports.createSolidBrush = createSolidBrush;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.drawBorder = void 0;\r\nvar createNativeRect_1 = require(\"./createNativeRect\");\r\nvar NativeObject_1 = require(\"./NativeObject\");\r\nvar drawBorder = function (renderContext, webAssemblyContext2D, solidBrushCacheBorder, borderRect, leftBorder, topBorder, rightBorder, bottomBorder, color) {\r\n if (bottomBorder === 0 && topBorder === 0 && leftBorder === 0 && rightBorder === 0) {\r\n return;\r\n }\r\n var solidBrush = solidBrushCacheBorder.newBrush(color, true);\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(webAssemblyContext2D);\r\n vecRects.push_back((0, createNativeRect_1.createNativeRect)(webAssemblyContext2D, borderRect.x, borderRect.y - topBorder, borderRect.x + borderRect.width + rightBorder, borderRect.y));\r\n vecRects.push_back((0, createNativeRect_1.createNativeRect)(webAssemblyContext2D, borderRect.x + borderRect.width, borderRect.y, borderRect.x + borderRect.width + rightBorder, borderRect.y + borderRect.height + bottomBorder));\r\n vecRects.push_back((0, createNativeRect_1.createNativeRect)(webAssemblyContext2D, borderRect.x - leftBorder, borderRect.y + borderRect.height, borderRect.x + borderRect.width, borderRect.y + borderRect.height + bottomBorder));\r\n vecRects.push_back((0, createNativeRect_1.createNativeRect)(webAssemblyContext2D, borderRect.x - leftBorder, borderRect.y - topBorder, borderRect.x, borderRect.y + borderRect.height));\r\n renderContext.drawRects(vecRects, solidBrush, 0, 0);\r\n};\r\nexports.drawBorder = drawBorder;\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getLabelCoordinates = exports.drawAxisMarkerAnnotation = exports.drawLineAnnotation = exports.drawModifiersAxisLabel = void 0;\r\nvar Rect_1 = require(\"../../../Core/Rect\");\r\nvar AxisAlignment_1 = require(\"../../../types/AxisAlignment\");\r\nvar LabelPlacement_1 = require(\"../../../types/LabelPlacement\");\r\nvar drawModifiersAxisLabel = function (currentAxis, renderContext, labelCoord, fill, stroke) {\r\n if (!currentAxis.isVisible) {\r\n return undefined;\r\n }\r\n var formattedDataValue = getLabelValue(currentAxis, labelCoord);\r\n var textStyle = __assign(__assign({}, currentAxis.dpiAdjustedLabelStyle), { color: stroke });\r\n return currentAxis.axisRenderer.drawModifiersAxisLabel(renderContext, formattedDataValue, labelCoord, currentAxis.axisAlignment, textStyle, fill);\r\n};\r\nexports.drawModifiersAxisLabel = drawModifiersAxisLabel;\r\n/**\r\n * Function to draw Vertical or Horizontal Line annotations with labels\r\n */\r\nvar drawLineAnnotation = function (currentAxis, renderContext, labelPlacement, displayValue, x1Coord, x2Coord, y1Coord, y2Coord, textStyle, fill, strokePen, viewRect, showLabel, opacity, horizontalAlignment, verticalAlignment) {\r\n var nativeContext = renderContext.getNativeContext();\r\n var axisAlignment = currentAxis.axisAlignment;\r\n var displayVertically = (axisAlignment === AxisAlignment_1.EAxisAlignment.Top || axisAlignment === AxisAlignment_1.EAxisAlignment.Bottom) &&\r\n ![LabelPlacement_1.ELabelPlacement.Top, LabelPlacement_1.ELabelPlacement.Bottom, LabelPlacement_1.ELabelPlacement.Auto, LabelPlacement_1.ELabelPlacement.Axis].includes(labelPlacement);\r\n var displayMirrored = [LabelPlacement_1.ELabelPlacement.Right, LabelPlacement_1.ELabelPlacement.TopRight, LabelPlacement_1.ELabelPlacement.BottomRight].includes(labelPlacement);\r\n var annotationCoord = axisAlignment === AxisAlignment_1.EAxisAlignment.Top || axisAlignment === AxisAlignment_1.EAxisAlignment.Bottom ? x1Coord : y1Coord;\r\n var text = displayValue || getLabelValue(currentAxis, annotationCoord);\r\n var isLabelOnAxis = labelPlacement === LabelPlacement_1.ELabelPlacement.Auto || labelPlacement === LabelPlacement_1.ELabelPlacement.Axis;\r\n var labelBackgroundColor = isLabelOnAxis ? fill : null;\r\n var labelTextStyle = isLabelOnAxis ? textStyle : __assign(__assign({}, textStyle), { color: fill });\r\n var labelHeight = 0;\r\n var labelWidth = 0;\r\n var labelRect;\r\n var _a = getLineCoordinates(x1Coord, y1Coord, x2Coord, y2Coord, labelHeight, labelWidth, labelPlacement, currentAxis), x1LineCoord = _a.x1LineCoord, y1LineCoord = _a.y1LineCoord, x2LineCoord = _a.x2LineCoord, y2LineCoord = _a.y2LineCoord;\r\n if (strokePen) {\r\n renderContext.drawLine(x1LineCoord, y1LineCoord, x2LineCoord, y2LineCoord, strokePen, viewRect);\r\n }\r\n if (showLabel) {\r\n var _b = currentAxis.axisRenderer.createAnnotationLabelTexture(text, labelTextStyle, labelBackgroundColor, displayVertically, displayMirrored, opacity), bitmapTexture = _b.bitmapTexture, textureHeight = _b.textureHeight, textureWidth = _b.textureWidth;\r\n var _c = (0, exports.getLabelCoordinates)(currentAxis, labelPlacement, x1Coord, x2Coord, y1Coord, y2Coord, textureHeight, textureWidth, horizontalAlignment, verticalAlignment), xPosition = _c.xPosition, yPosition = _c.yPosition;\r\n labelHeight = textureHeight;\r\n labelWidth = textureWidth;\r\n labelRect = new Rect_1.Rect(xPosition, yPosition, textureWidth, textureHeight);\r\n nativeContext.DrawTexture(bitmapTexture, Math.round(xPosition), Math.round(yPosition), textureWidth, textureHeight);\r\n bitmapTexture.delete();\r\n }\r\n return labelRect;\r\n};\r\nexports.drawLineAnnotation = drawLineAnnotation;\r\nvar drawAxisMarkerAnnotation = function (currentAxis, renderContext, displayValue, markerCoordinate, x1Coord, y1Coord, textStyle, fill, opacity, image, imageWidth, imageHeight) {\r\n var nativeContext = renderContext.getNativeContext();\r\n var axisAlignment = currentAxis.axisAlignment;\r\n var text = displayValue || getLabelValue(currentAxis, markerCoordinate);\r\n var _a = image\r\n ? currentAxis.axisRenderer.createAxisMarkerFromImage(image, imageWidth, imageHeight)\r\n : currentAxis.axisRenderer.createAxisMarker(axisAlignment, text, textStyle, fill, opacity), bitmapTexture = _a.bitmapTexture, textureHeight = _a.textureHeight, textureWidth = _a.textureWidth;\r\n var _b = (0, exports.getLabelCoordinates)(currentAxis, LabelPlacement_1.ELabelPlacement.Axis, x1Coord, x1Coord, y1Coord, y1Coord, textureHeight, textureWidth), xPosition = _b.xPosition, yPosition = _b.yPosition;\r\n if (bitmapTexture) {\r\n nativeContext.DrawTexture(bitmapTexture, Math.round(xPosition), Math.round(yPosition), textureWidth, textureHeight);\r\n bitmapTexture.delete();\r\n }\r\n return { xPosition: xPosition, yPosition: yPosition, textureWidth: textureWidth, textureHeight: textureHeight };\r\n};\r\nexports.drawAxisMarkerAnnotation = drawAxisMarkerAnnotation;\r\n/**\r\n * Calculates coordinates of the annotation label.\r\n * The coordinates are defined as an absolute position on the whole SciChartSurface.\r\n */\r\nvar getLabelCoordinates = function (currentAxis, labelPlacement, x1Coord, x2Coord, y1Coord, y2Coord, textureHeight, textureWidth, horizontalAlignment, verticalAlignment) {\r\n var axisAlignment = currentAxis.axisAlignment, seriesViewRect = currentAxis.parentSurface.seriesViewRect, axisViewRect = currentAxis.viewRect;\r\n var xPosition = 0;\r\n var yPosition = 0;\r\n var centerVertically = function () {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n yPosition = seriesViewRect.top + y1Coord - textureHeight / 2;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n yPosition = seriesViewRect.top + y2Coord / 2 - textureHeight / 2;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n yPosition = seriesViewRect.top + y1Coord + (y2Coord - y1Coord) / 2 - textureHeight / 2;\r\n break;\r\n }\r\n };\r\n var centerHorizontally = function () {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n xPosition = seriesViewRect.left + x2Coord + (x1Coord - x2Coord) / 2 - textureWidth / 2;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n xPosition = seriesViewRect.left + x2Coord / 2 - textureWidth / 2;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n xPosition = seriesViewRect.left + x2Coord - textureWidth / 2;\r\n break;\r\n }\r\n };\r\n var alignRight = function () {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n xPosition = seriesViewRect.left + x1Coord - textureWidth;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n xPosition = seriesViewRect.left + x2Coord - textureWidth;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n xPosition = seriesViewRect.left + x1Coord;\r\n break;\r\n }\r\n };\r\n var alignLeft = function () {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n xPosition = seriesViewRect.left + x2Coord;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n xPosition = seriesViewRect.left;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n xPosition = seriesViewRect.left + x1Coord - textureWidth;\r\n break;\r\n }\r\n };\r\n var alignTop = function () {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n yPosition = seriesViewRect.top + y1Coord - textureHeight;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n yPosition = seriesViewRect.top;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n yPosition = seriesViewRect.top + y2Coord;\r\n break;\r\n }\r\n };\r\n var alignBottom = function () {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n yPosition = seriesViewRect.top + y1Coord;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n yPosition = seriesViewRect.top + y2Coord - textureHeight;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n yPosition = seriesViewRect.top + y1Coord - textureHeight;\r\n break;\r\n }\r\n };\r\n var alignOnAxis = function () {\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n centerVertically();\r\n if (horizontalAlignment === LabelPlacement_1.EHorizontalAlignment.Left) {\r\n xPosition = seriesViewRect.left;\r\n }\r\n else {\r\n xPosition =\r\n axisViewRect.width < textureWidth\r\n ? (xPosition = axisViewRect.right - textureWidth)\r\n : axisViewRect.left;\r\n }\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n centerVertically();\r\n if (horizontalAlignment === LabelPlacement_1.EHorizontalAlignment.Right) {\r\n xPosition = seriesViewRect.left + seriesViewRect.width - textureWidth;\r\n }\r\n else {\r\n xPosition =\r\n axisViewRect.width < textureWidth\r\n ? (xPosition = axisViewRect.left)\r\n : axisViewRect.right - textureWidth;\r\n }\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n if (verticalAlignment === LabelPlacement_1.EVerticalAlignment.Bottom) {\r\n yPosition = seriesViewRect.top + seriesViewRect.height - textureHeight;\r\n }\r\n else {\r\n yPosition =\r\n axisViewRect.height < textureHeight ? axisViewRect.top : axisViewRect.bottom - textureHeight;\r\n }\r\n centerHorizontally();\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n if (verticalAlignment === LabelPlacement_1.EVerticalAlignment.Top) {\r\n yPosition = seriesViewRect.top;\r\n }\r\n else {\r\n yPosition =\r\n axisViewRect.height < textureHeight ? axisViewRect.bottom - textureHeight : axisViewRect.top;\r\n }\r\n centerHorizontally();\r\n break;\r\n }\r\n };\r\n switch (labelPlacement) {\r\n case LabelPlacement_1.ELabelPlacement.Right:\r\n centerVertically();\r\n alignRight();\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.TopRight:\r\n alignTop();\r\n alignRight();\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.BottomRight:\r\n alignBottom();\r\n alignRight();\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.Bottom:\r\n alignBottom();\r\n centerHorizontally();\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.Left:\r\n centerVertically();\r\n alignLeft();\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.TopLeft:\r\n alignTop();\r\n alignLeft();\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.BottomLeft:\r\n alignBottom();\r\n alignLeft();\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.Top:\r\n alignTop();\r\n centerHorizontally();\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.Axis:\r\n case LabelPlacement_1.ELabelPlacement.Auto:\r\n alignOnAxis();\r\n break;\r\n default:\r\n throw Error(\"Unexpected LabelPlacement \" + labelPlacement);\r\n }\r\n // prevent label from overflowing axes\r\n if (labelPlacement !== LabelPlacement_1.ELabelPlacement.Auto && labelPlacement !== LabelPlacement_1.ELabelPlacement.Axis) {\r\n if (yPosition < seriesViewRect.top) {\r\n yPosition = seriesViewRect.top;\r\n }\r\n if (yPosition + textureHeight > seriesViewRect.bottom) {\r\n yPosition = seriesViewRect.bottom - textureHeight;\r\n }\r\n if (xPosition < seriesViewRect.left) {\r\n xPosition = seriesViewRect.left;\r\n }\r\n if (xPosition + textureWidth > seriesViewRect.right) {\r\n xPosition = seriesViewRect.right - textureWidth;\r\n }\r\n }\r\n return { xPosition: xPosition, yPosition: yPosition };\r\n};\r\nexports.getLabelCoordinates = getLabelCoordinates;\r\n/**\r\n * Calculates annotation line coordinates accordingly to axis alignment and label placement.\r\n * Returns coordinates relative to seriesViewRect.\r\n */\r\nvar getLineCoordinates = function (x1Coord, y1Coord, x2Coord, y2Coord, labelHeight, labelWidth, labelPlacement, currentAxis) {\r\n var axisAlignment = currentAxis.axisAlignment, seriesViewRect = currentAxis.parentSurface.seriesViewRect, axisViewRect = currentAxis.viewRect;\r\n var x1LineCoord = x1Coord;\r\n var y1LineCoord = y1Coord;\r\n var x2LineCoord = x2Coord;\r\n var y2LineCoord = y2Coord;\r\n switch (labelPlacement) {\r\n case LabelPlacement_1.ELabelPlacement.Right:\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n x1LineCoord = Math.abs(x1Coord - x2Coord) < labelWidth ? x2LineCoord : x1Coord - labelWidth;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n x2LineCoord =\r\n x2Coord > seriesViewRect.width ? seriesViewRect.width - labelWidth : x2Coord - labelWidth;\r\n break;\r\n }\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.Bottom:\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n y2LineCoord =\r\n y2Coord > seriesViewRect.height ? seriesViewRect.height - labelHeight : y2Coord - labelHeight;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n y1LineCoord = Math.abs(y1Coord - y2Coord) < labelHeight ? y2LineCoord : y1Coord - labelHeight;\r\n break;\r\n }\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.Left:\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n x2LineCoord = x2Coord < 0 ? labelWidth : x2Coord + labelWidth;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n x1LineCoord = Math.abs(x1Coord - x2Coord) < labelWidth ? x2LineCoord : x1Coord + labelWidth;\r\n break;\r\n }\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.Top:\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n y1LineCoord = Math.abs(y1Coord - y2Coord) < labelHeight ? y2LineCoord : y1Coord + labelHeight;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n y2LineCoord = y2Coord < 0 ? labelHeight : y2Coord + labelHeight;\r\n break;\r\n }\r\n break;\r\n case LabelPlacement_1.ELabelPlacement.Auto:\r\n case LabelPlacement_1.ELabelPlacement.Axis:\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n x1LineCoord =\r\n axisViewRect.width < labelWidth\r\n ? seriesViewRect.width + axisViewRect.width - labelWidth\r\n : seriesViewRect.width;\r\n if (x2LineCoord > x1LineCoord) {\r\n x2LineCoord = x1LineCoord;\r\n }\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n x1LineCoord = axisViewRect.width < labelWidth ? labelWidth - axisViewRect.width : 0;\r\n if (x2LineCoord < x1LineCoord) {\r\n x2LineCoord = x1LineCoord;\r\n }\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n y1LineCoord = axisViewRect.height < labelHeight ? labelHeight - axisViewRect.height : 0;\r\n if (y2LineCoord < y1LineCoord) {\r\n y2LineCoord = y1LineCoord;\r\n }\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n y1LineCoord =\r\n axisViewRect.height < labelHeight ? axisViewRect.bottom - labelHeight : seriesViewRect.bottom;\r\n if (y2LineCoord > y1LineCoord) {\r\n y2LineCoord = y1LineCoord;\r\n }\r\n break;\r\n }\r\n break;\r\n }\r\n return {\r\n x1LineCoord: x1LineCoord,\r\n y1LineCoord: y1LineCoord,\r\n x2LineCoord: x2LineCoord,\r\n y2LineCoord: y2LineCoord\r\n };\r\n};\r\nvar getLabelValue = function (currentAxis, labelCoord) {\r\n var dataValue;\r\n var coordCalc = currentAxis.getCurrentCoordinateCalculator();\r\n if (currentAxis.isCategoryAxis) {\r\n var index = coordCalc.getDataValue(labelCoord);\r\n dataValue = coordCalc.transformIndexToData(index);\r\n }\r\n else {\r\n dataValue = coordCalc.getDataValue(labelCoord);\r\n }\r\n return currentAxis.labelProvider.formatCursorLabel(dataValue);\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ManualLegend = void 0;\r\nvar Thickness_1 = require(\"../../../Core/Thickness\");\r\nvar SciChartLegendBase_1 = require(\"./SciChartLegendBase\");\r\nvar ManualLegend = /** @class */ (function (_super) {\r\n __extends(ManualLegend, _super);\r\n function ManualLegend(options, sciChartSurface) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.type = SciChartLegendBase_1.ELegendType.ManualLegend;\r\n _this.itemsProperty = [];\r\n _this.showCheckboxesProperty = false;\r\n _this.showSeriesMarkersProperty = true;\r\n _this.showCheckboxesProperty = (_a = options === null || options === void 0 ? void 0 : options.showCheckboxes) !== null && _a !== void 0 ? _a : _this.showCheckboxes;\r\n _this.showSeriesMarkersProperty = (_b = options === null || options === void 0 ? void 0 : options.showSeriesMarkers) !== null && _b !== void 0 ? _b : _this.showSeriesMarkers;\r\n _this.itemsProperty = (_c = options === null || options === void 0 ? void 0 : options.items) !== null && _c !== void 0 ? _c : _this.items;\r\n _this.legendItemCheckedChangedCallback = options === null || options === void 0 ? void 0 : options.isCheckedChangedCallback;\r\n if (sciChartSurface) {\r\n _this.attachTo(sciChartSurface);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(ManualLegend.prototype, \"showCheckboxes\", {\r\n /**\r\n * Gets or sets whether series visibility checkboxes should be shown\r\n */\r\n get: function () {\r\n return this.showCheckboxesProperty;\r\n },\r\n /**\r\n * Gets or sets whether series visibility checkboxes should be shown\r\n */\r\n set: function (value) {\r\n this.showCheckboxesProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ManualLegend.prototype, \"showSeriesMarkers\", {\r\n /**\r\n * Gets or sets whether series markers should be shown\r\n */\r\n get: function () {\r\n return this.showSeriesMarkersProperty;\r\n },\r\n /**\r\n * Gets or sets whether series markers should be shown\r\n */\r\n set: function (value) {\r\n this.showSeriesMarkersProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ManualLegend.prototype, \"items\", {\r\n /**\r\n * Gets or sets the items to be displayed in the legend\r\n */\r\n get: function () {\r\n return this.itemsProperty;\r\n },\r\n /**\r\n * Gets or sets the items to be displayed in the legend\r\n */\r\n set: function (value) {\r\n this.itemsProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ManualLegend.prototype.attachTo = function (sciChartSurface) {\r\n var _this = this;\r\n _super.prototype.attachTo.call(this, sciChartSurface);\r\n sciChartSurface.addDeletable({\r\n delete: function () {\r\n _this.delete();\r\n _this.setRootDiv(undefined);\r\n _this.setInvalidateParentSurface(undefined);\r\n _this.setParentSurface(undefined);\r\n }\r\n });\r\n };\r\n ManualLegend.prototype.applyTheme = function () { };\r\n ManualLegend.prototype.getInnerHTML = function () {\r\n var _a, _b;\r\n var backgroundColor = (_a = this.backgroundColor) !== null && _a !== void 0 ? _a : this.parentSurfaceProperty.themeProvider.legendBackgroundBrush;\r\n var color = (_b = this.textColor) !== null && _b !== void 0 ? _b : this.parentSurfaceProperty.themeProvider.labelForegroundBrush;\r\n var _c = this.parentSurfaceProperty.getSeriesViewRectPadding(false), left = _c.left, top = _c.top, right = _c.right, bottom = _c.bottom;\r\n var margin = this.isExternal()\r\n ? new Thickness_1.Thickness(this.margin, this.margin, this.margin, this.margin)\r\n : new Thickness_1.Thickness(top + this.margin, right + this.margin, bottom + this.margin, left + this.margin);\r\n return this.getLegendHTML(this.placement, color, backgroundColor, margin, this.orientation, this.showCheckboxes, this.showSeriesMarkers, this.items);\r\n };\r\n ManualLegend.prototype.addEventListeners = function () {\r\n var _this = this;\r\n this.items.forEach(function (item) { return _this.addEventListenerToItem(item); });\r\n };\r\n ManualLegend.prototype.addEventListenerToItem = function (item) {\r\n var _this = this;\r\n var el = this.parentDiv.querySelector(\"[id='\".concat(item.id, \"']\"));\r\n if (el) {\r\n var onChangeEventListener_1 = function (e) {\r\n item.checked = el.checked;\r\n if (_this.legendItemCheckedChangedCallback) {\r\n _this.legendItemCheckedChangedCallback(item, item.checked);\r\n }\r\n };\r\n el.addEventListener(\"change\", onChangeEventListener_1);\r\n var eventSubscriptionItem = {\r\n element: el,\r\n eventType: \"change\",\r\n eventListener: onChangeEventListener_1,\r\n delete: function () { return el.removeEventListener(\"change\", onChangeEventListener_1); }\r\n };\r\n var eventListenersForRenderableSeries = this.eventListenersCollection.get(item.id);\r\n if (eventListenersForRenderableSeries) {\r\n eventListenersForRenderableSeries.push(eventSubscriptionItem);\r\n }\r\n else {\r\n this.eventListenersCollection.set(item.id, [eventSubscriptionItem]);\r\n }\r\n }\r\n };\r\n ManualLegend.prototype.removeEventListeners = function () {\r\n var _this = this;\r\n this.items.forEach(function (item) { return _this.removeEventListenerFromSeries(item.id); });\r\n };\r\n return ManualLegend;\r\n}(SciChartLegendBase_1.SciChartLegendBase));\r\nexports.ManualLegend = ManualLegend;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartLegend = void 0;\r\nvar Thickness_1 = require(\"../../../Core/Thickness\");\r\nvar SciChartLegendBase_1 = require(\"./SciChartLegendBase\");\r\n/**\r\n * The SciChartLegend displays a legend on the chart at top,left,bottom,right location and with customisable legend rows\r\n */\r\nvar SciChartLegend = /** @class */ (function (_super) {\r\n __extends(SciChartLegend, _super);\r\n function SciChartLegend() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SciChartLegendBase_1.ELegendType.SciChartLegend;\r\n _this.showCheckboxesProperty = false;\r\n _this.showSeriesMarkersProperty = true;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n SciChartLegend.prototype.applyTheme = function () {\r\n // TODO: add light theme\r\n };\r\n Object.defineProperty(SciChartLegend.prototype, \"showCheckboxes\", {\r\n /**\r\n * Gets or sets whether series visibility checkboxes should be shown\r\n */\r\n get: function () {\r\n return this.showCheckboxesProperty;\r\n },\r\n /**\r\n * Gets or sets whether series visibility checkboxes should be shown\r\n */\r\n set: function (value) {\r\n this.showCheckboxesProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartLegend.prototype, \"showSeriesMarkers\", {\r\n /**\r\n * Gets or sets whether series markers should be shown\r\n */\r\n get: function () {\r\n return this.showSeriesMarkersProperty;\r\n },\r\n /**\r\n * Gets or sets whether series markers should be shown\r\n */\r\n set: function (value) {\r\n this.showSeriesMarkersProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Sets the array of RenderableSeries to display in the legend\r\n * @param renderableSeriesArray The array of series\r\n * @remarks see {@link SciChartSurface.renderableSeries} which is the source for this array\r\n */\r\n SciChartLegend.prototype.setRenderableSeriesArray = function (renderableSeriesArray) {\r\n this.renderableSeriesArray = renderableSeriesArray;\r\n this.invalidateLegend();\r\n };\r\n /** @inheritDoc */\r\n SciChartLegend.prototype.addEventListeners = function () {\r\n var _this = this;\r\n this.renderableSeriesArray.forEach(function (rs) { return _this.addEventListenerToSeries(rs); });\r\n };\r\n /** @inheritDoc */\r\n SciChartLegend.prototype.removeEventListeners = function () {\r\n var _this = this;\r\n this.renderableSeriesArray.forEach(function (rs) { return _this.removeEventListenerFromSeries(rs.id); });\r\n };\r\n /**\r\n * adds event listeners to a specific {@link IRenderableSeries} series\r\n */\r\n SciChartLegend.prototype.addEventListenerToSeries = function (rs) {\r\n var _this = this;\r\n var el = this.parentDiv.querySelector(\"[id='\".concat(rs.id, \"']\"));\r\n if (el) {\r\n var onChangeEventListener_1 = function (e) {\r\n rs.isVisible = e.target.checked;\r\n if (_this.legendItemCheckedChangedCallback) {\r\n _this.legendItemCheckedChangedCallback(rs, rs.isVisible);\r\n }\r\n };\r\n el.addEventListener(\"change\", onChangeEventListener_1);\r\n var visibilityChangeEventHandler_1 = function (data) {\r\n _this.invalidateLegend();\r\n };\r\n rs.isVisibleChanged.subscribe(visibilityChangeEventHandler_1);\r\n var eventSubscriptionItem = {\r\n element: el,\r\n eventType: \"change\",\r\n eventListener: onChangeEventListener_1,\r\n delete: function () {\r\n el.removeEventListener(\"change\", onChangeEventListener_1);\r\n rs.isVisibleChanged.unsubscribe(visibilityChangeEventHandler_1);\r\n }\r\n };\r\n var eventListenersForRenderableSeries = this.eventListenersCollection.get(rs.id);\r\n if (eventListenersForRenderableSeries) {\r\n eventListenersForRenderableSeries.push(eventSubscriptionItem);\r\n }\r\n else {\r\n this.eventListenersCollection.set(rs.id, [eventSubscriptionItem]);\r\n }\r\n }\r\n };\r\n /** @inheritDoc */\r\n SciChartLegend.prototype.getInnerHTML = function () {\r\n var _a, _b, _c, _d, _e, _f;\r\n var backgroundColor = (_a = this.backgroundColor) !== null && _a !== void 0 ? _a : (_c = (_b = this.parentSurfaceProperty) === null || _b === void 0 ? void 0 : _b.themeProvider) === null || _c === void 0 ? void 0 : _c.legendBackgroundBrush;\r\n var color = (_d = this.textColor) !== null && _d !== void 0 ? _d : (_f = (_e = this.parentSurfaceProperty) === null || _e === void 0 ? void 0 : _e.themeProvider) === null || _f === void 0 ? void 0 : _f.labelForegroundBrush;\r\n var legendItems = this.renderableSeriesArray.map(function (rs, index) {\r\n var _a;\r\n return ({\r\n id: rs.id,\r\n name: (_a = rs.getDataSeriesName()) !== null && _a !== void 0 ? _a : \"Series \".concat(index + 1),\r\n color: rs.isStacked ? rs.fill : rs.stroke,\r\n checked: rs.isVisible,\r\n gradient: undefined\r\n });\r\n });\r\n var _g = this.parentSurfaceProperty.getSeriesViewRectPadding(false), left = _g.left, top = _g.top, right = _g.right, bottom = _g.bottom;\r\n var margin = this.isExternal()\r\n ? new Thickness_1.Thickness(this.margin, this.margin, this.margin, this.margin)\r\n : new Thickness_1.Thickness(top + this.margin, right + this.margin, bottom + this.margin, left + this.margin);\r\n return this.getLegendHTML(this.placement, color, backgroundColor, margin, this.orientation, this.showCheckboxes, this.showSeriesMarkers, legendItems);\r\n };\r\n return SciChartLegend;\r\n}(SciChartLegendBase_1.SciChartLegendBase));\r\nexports.SciChartLegend = SciChartLegend;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getLegendContainerHtml = exports.getLegendItemHtml = exports.SciChartLegendBase = exports.ELegendType = exports.ELegendPlacement = exports.ELegendOrientation = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar html_1 = require(\"../../../utils/html\");\r\n/**\r\n * Enumeration constants to define legend orientation\r\n */\r\nvar ELegendOrientation;\r\n(function (ELegendOrientation) {\r\n ELegendOrientation[ELegendOrientation[\"Vertical\"] = 0] = \"Vertical\";\r\n ELegendOrientation[ELegendOrientation[\"Horizontal\"] = 1] = \"Horizontal\";\r\n})(ELegendOrientation = exports.ELegendOrientation || (exports.ELegendOrientation = {}));\r\n/**\r\n * Enumeration constants to define legend placement\r\n */\r\nvar ELegendPlacement;\r\n(function (ELegendPlacement) {\r\n ELegendPlacement[ELegendPlacement[\"TopLeft\"] = 0] = \"TopLeft\";\r\n ELegendPlacement[ELegendPlacement[\"TopRight\"] = 1] = \"TopRight\";\r\n ELegendPlacement[ELegendPlacement[\"BottomLeft\"] = 2] = \"BottomLeft\";\r\n ELegendPlacement[ELegendPlacement[\"BottomRight\"] = 3] = \"BottomRight\";\r\n // ManualPlacement\r\n})(ELegendPlacement = exports.ELegendPlacement || (exports.ELegendPlacement = {}));\r\n/**\r\n * Enumeration constants to define the legend type\r\n */\r\nvar ELegendType;\r\n(function (ELegendType) {\r\n ELegendType[\"SciChartLegend\"] = \"SciChartLegend\";\r\n ELegendType[\"ManualLegend\"] = \"ManualLegend\";\r\n ELegendType[\"SciChartPieLegend\"] = \"SciChartPieLegend\";\r\n})(ELegendType = exports.ELegendType || (exports.ELegendType = {}));\r\n/**\r\n * Base class for legends in the SciChart library\r\n */\r\nvar SciChartLegendBase = /** @class */ (function (_super) {\r\n __extends(SciChartLegendBase, _super);\r\n function SciChartLegendBase(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e;\r\n _this = _super.call(this) || this;\r\n _this.orientationProperty = ELegendOrientation.Vertical;\r\n _this.showLegendProperty = true;\r\n _this.placementProperty = ELegendPlacement.TopLeft;\r\n _this.marginProperty = 10;\r\n _this.isDirty = true;\r\n _this.eventListenersCollection = new Map();\r\n /**\r\n * removes event listeners from a specific {@link IRenderableSeries} series\r\n */\r\n _this.removeEventListenerFromSeries = function (renderableSeriesId) {\r\n var _a;\r\n (_a = _this.eventListenersCollection.get(renderableSeriesId)) === null || _a === void 0 ? void 0 : _a.forEach(function (_a) {\r\n var element = _a.element, eventListener = _a.eventListener, eventType = _a.eventType;\r\n element.removeEventListener(eventType, eventListener);\r\n });\r\n _this.eventListenersCollection.delete(renderableSeriesId);\r\n };\r\n _this.orientationProperty = (_a = options === null || options === void 0 ? void 0 : options.orientation) !== null && _a !== void 0 ? _a : _this.orientationProperty;\r\n _this.showLegendProperty = (_b = options === null || options === void 0 ? void 0 : options.showLegend) !== null && _b !== void 0 ? _b : _this.showLegend;\r\n _this.placementProperty = (_c = options === null || options === void 0 ? void 0 : options.placement) !== null && _c !== void 0 ? _c : _this.placement;\r\n _this.marginProperty = (_d = options === null || options === void 0 ? void 0 : options.margin) !== null && _d !== void 0 ? _d : _this.margin;\r\n _this.placementDivIdProperty = (_e = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _e !== void 0 ? _e : _this.placementDivId;\r\n // No default here as need theme from parent surface\r\n _this.backgroundColorProperty = options === null || options === void 0 ? void 0 : options.backgroundColor;\r\n _this.textColorProperty = options === null || options === void 0 ? void 0 : options.textColor;\r\n _this.update = _this.update.bind(_this);\r\n return _this;\r\n }\r\n SciChartLegendBase.prototype.setInvalidateParentSurface = function (value) {\r\n this.invalidateParentSurface = value;\r\n };\r\n /**\r\n * Set the root div in HTML where the legend will be placed\r\n * @param rootDivProperty\r\n */\r\n SciChartLegendBase.prototype.setRootDiv = function (rootDivProperty) {\r\n this.rootDiv = rootDivProperty;\r\n };\r\n /**\r\n * @deprecated\r\n */\r\n SciChartLegendBase.prototype.setSeriesViewRect = function (seriesViewRect) { };\r\n /**\r\n * Sets the parent {@link ISciChartSurfaceBase}\r\n */\r\n SciChartLegendBase.prototype.setParentSurface = function (scs) {\r\n this.parentSurfaceProperty = scs;\r\n };\r\n /**\r\n * Attach this legend to a SciChartSurfaceBase\r\n * @param sciChartSurface\r\n */\r\n SciChartLegendBase.prototype.attachTo = function (sciChartSurface) {\r\n this.setParentSurface(sciChartSurface);\r\n this.setRootDiv(sciChartSurface.domDivContainer);\r\n this.setInvalidateParentSurface(sciChartSurface.invalidateElement);\r\n sciChartSurface.rendered.subscribe(this.update);\r\n };\r\n SciChartLegendBase.prototype.detach = function () {\r\n this.setRootDiv(undefined);\r\n this.parentSurfaceProperty.rendered.unsubscribe(this.update);\r\n this.setInvalidateParentSurface(undefined);\r\n this.setParentSurface(undefined);\r\n this.delete();\r\n };\r\n /**\r\n * Update the legend\r\n */\r\n SciChartLegendBase.prototype.update = function () {\r\n if (!this.isDirty && this.div) {\r\n return;\r\n }\r\n try {\r\n this.parentSurfaceProperty.getSeriesViewRectPadding(true);\r\n this.clear();\r\n if (this.showLegend) {\r\n this.create();\r\n }\r\n this.isDirty = false;\r\n }\r\n catch (_a) { }\r\n };\r\n /**\r\n * Invalidate the legend, hinting a redraw is needed\r\n */\r\n SciChartLegendBase.prototype.invalidateLegend = function () {\r\n this.isDirty = true;\r\n };\r\n Object.defineProperty(SciChartLegendBase.prototype, \"orientation\", {\r\n /**\r\n * Gets and sets the legend orientation. See {@link ELegendOrientation} for a list of values\r\n */\r\n get: function () {\r\n return this.orientationProperty;\r\n },\r\n /**\r\n * Gets and sets the legend orientation. See {@link ELegendOrientation} for a list of values\r\n */\r\n set: function (orientation) {\r\n this.orientationProperty = orientation;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartLegendBase.prototype, \"showLegend\", {\r\n /**\r\n * When true, the legend is shown, else it is hidden\r\n */\r\n get: function () {\r\n return this.showLegendProperty;\r\n },\r\n /**\r\n * When true, the legend is shown, else it is hidden\r\n */\r\n set: function (value) {\r\n this.showLegendProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartLegendBase.prototype, \"placement\", {\r\n /**\r\n * Gets or sets the legend placement. See {@link ELegendPlacement} for a list of values\r\n */\r\n get: function () {\r\n return this.placementProperty;\r\n },\r\n /**\r\n * Gets or sets the legend placement. See {@link ELegendPlacement} for a list of values\r\n */\r\n set: function (value) {\r\n this.placementProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartLegendBase.prototype, \"margin\", {\r\n /**\r\n * Gets or sets the margin in pixels\r\n */\r\n get: function () {\r\n return this.marginProperty;\r\n },\r\n /**\r\n * Gets or sets the margin in pixels\r\n */\r\n set: function (value) {\r\n this.marginProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartLegendBase.prototype, \"placementDivId\", {\r\n /**\r\n * Gets or sets the parent div element reference or id for the Legend\r\n */\r\n get: function () {\r\n return this.placementDivIdProperty;\r\n },\r\n /**\r\n * Gets or sets the parent div element reference or id for the Legend\r\n */\r\n set: function (value) {\r\n this.clear();\r\n this.placementDivIdProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartLegendBase.prototype, \"backgroundColor\", {\r\n /**\r\n * Gets or sets the backgroundColor as an html color code\r\n */\r\n get: function () {\r\n return this.backgroundColorProperty;\r\n },\r\n /**\r\n * Gets or sets the backgroundColor as an html color code\r\n */\r\n set: function (value) {\r\n this.backgroundColorProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartLegendBase.prototype, \"textColor\", {\r\n /**\r\n * Gets or sets the textColor as an html color code\r\n */\r\n get: function () {\r\n return this.textColorProperty;\r\n },\r\n /**\r\n * Gets or sets the textColor as an html color code\r\n */\r\n set: function (value) {\r\n this.textColorProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SciChartLegendBase.prototype.clear = function () {\r\n var _a;\r\n if (this.div) {\r\n this.removeEventListeners();\r\n (_a = this.parentDiv) === null || _a === void 0 ? void 0 : _a.removeChild(this.div);\r\n this.div = undefined;\r\n this.parentDiv = undefined;\r\n }\r\n };\r\n /** @inheritDoc */\r\n SciChartLegendBase.prototype.delete = function () {\r\n this.clear();\r\n };\r\n /**\r\n * Gets if the Legend in placed externally\r\n */\r\n SciChartLegendBase.prototype.isExternal = function () {\r\n return !!this.placementDivId;\r\n };\r\n /**\r\n * Gets HTML string for the Legend\r\n * @param placement The {@link SciChartLegendBase} placement\r\n * @param textColor The {@link SciChartLegendBase} textColor\r\n * @param backgroundColor The {@link SciChartLegendBase} backgroundColor\r\n * @param margin The {@link SciChartLegendBase} margin\r\n * @param orientation The {@link SciChartLegendBase} orientation\r\n * @param showCheckboxes Show the Legend checkboxes\r\n * @param showSeriesMarkers Show the Legend markers\r\n * @param items The {@link TLegendItem[]}\r\n */\r\n SciChartLegendBase.prototype.getLegendHTML = function (placement, textColor, backgroundColor, margin, orientation, showCheckboxes, showSeriesMarkers, items) {\r\n var _this = this;\r\n var body = items.reduce(function (prev, curr) {\r\n var _a;\r\n return (prev + _this.getLegendItemHTML(orientation, showCheckboxes, (_a = curr.showMarker) !== null && _a !== void 0 ? _a : showSeriesMarkers, curr));\r\n }, \"\");\r\n return (0, exports.getLegendContainerHtml)(placement, textColor, backgroundColor, margin, body, this.isExternal());\r\n };\r\n /**\r\n * Gets HTML string for legend items\r\n * @param orientation The {@link SciChartLegendBase} orientation\r\n * @param showCheckboxes Show the Legend checkboxes\r\n * @param showSeriesMarkers Show the Legend markers\r\n * @param item The {@link TLegendItem}\r\n */\r\n SciChartLegendBase.prototype.getLegendItemHTML = function (orientation, showCheckboxes, showSeriesMarkers, item) {\r\n return (0, exports.getLegendItemHtml)(orientation, showCheckboxes, showSeriesMarkers, item);\r\n };\r\n /**\r\n * Notifies listeners of {@link invalidateParentSurface} that a property has changed\r\n */\r\n SciChartLegendBase.prototype.notifyPropertyChanged = function () {\r\n this.isDirty = true;\r\n if (this.invalidateParentSurface) {\r\n this.invalidateParentSurface();\r\n }\r\n };\r\n /**\r\n * Creates the legend in the DOM\r\n */\r\n SciChartLegendBase.prototype.create = function () {\r\n var innerHtml = this.getInnerHTML();\r\n if (innerHtml) {\r\n var div = (0, html_1.htmlToElement)(innerHtml);\r\n this.parentDiv = this.getParentDiv();\r\n this.parentDiv.appendChild(div);\r\n this.div = div;\r\n if (!app_1.IS_TEST_ENV) {\r\n this.addEventListeners();\r\n }\r\n }\r\n };\r\n SciChartLegendBase.prototype.getParentDiv = function () {\r\n if (this.placementDivId) {\r\n return typeof this.placementDivId === \"string\"\r\n ? document.querySelector(\"[id='\".concat(this.placementDivId, \"']\"))\r\n : this.placementDivId;\r\n }\r\n return this.rootDiv;\r\n };\r\n return SciChartLegendBase;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.SciChartLegendBase = SciChartLegendBase;\r\nvar getLegendItemHtml = function (orientation, showCheckboxes, showSeriesMarkers, item) {\r\n var display = orientation === ELegendOrientation.Vertical ? \"flex\" : \"inline-flex\";\r\n var str = \"\");\r\n if (showCheckboxes) {\r\n var checked = item.checked ? \"checked\" : \"\";\r\n str += \"\");\r\n }\r\n if (showSeriesMarkers) {\r\n if (item.gradient) {\r\n var gradientStr_1 = \"\";\r\n item.gradient.gradientStops.forEach(function (s) {\r\n gradientStr_1 += \",\".concat(s.color);\r\n });\r\n str += \"\");\r\n }\r\n else {\r\n str += \"\");\r\n }\r\n }\r\n str += \"\");\r\n str += \"\";\r\n return str;\r\n};\r\nexports.getLegendItemHtml = getLegendItemHtml;\r\nvar getLegendContainerHtml = function (placement, textColor, backgroundColor, margin, body, isExternal) {\r\n if (isExternal === void 0) { isExternal = false; }\r\n if (!body)\r\n return \"\";\r\n //const float = [ELegendPlacement.TopLeft, ELegendPlacement.BottomLeft].includes(placement) ? \"left\" : \"right\";\r\n var position = \"\";\r\n var positionStyle = \"\";\r\n if (!isExternal) {\r\n position = \"position: absolute;\";\r\n }\r\n if (placement === ELegendPlacement.TopLeft) {\r\n positionStyle = \"left: 0; top: 0;\";\r\n }\r\n else if (placement === ELegendPlacement.TopRight) {\r\n positionStyle = \"right: 0; top: 0;\";\r\n }\r\n else if (placement === ELegendPlacement.BottomLeft) {\r\n positionStyle = \"left: 0; bottom: 0;\";\r\n }\r\n else if (placement === ELegendPlacement.BottomRight) {\r\n positionStyle = \"right: 0; bottom: 0;\";\r\n }\r\n var htmlStr = \"
\");\r\n var alignSelf = [ELegendPlacement.TopLeft, ELegendPlacement.TopRight].includes(placement)\r\n ? \"flex-start\"\r\n : \"flex-end\";\r\n var left = margin.left, right = margin.right, bottom = margin.bottom, top = margin.top;\r\n var marginStyle = \"margin-left: \".concat(left, \"px; margin-top: \").concat(top, \"px; margin-right: \").concat(right, \"px; margin-bottom: \").concat(bottom, \"px;\");\r\n htmlStr += \"
\");\r\n htmlStr += body;\r\n htmlStr += \"
\";\r\n return htmlStr;\r\n};\r\nexports.getLegendContainerHtml = getLegendContainerHtml;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartPieLegend = void 0;\r\nvar Thickness_1 = require(\"../../../Core/Thickness\");\r\nvar SciChartPieSurface_1 = require(\"../SciChartPieSurface/SciChartPieSurface\");\r\nvar SciChartLegendBase_1 = require(\"./SciChartLegendBase\");\r\n/**\r\n * A legend specific to pie and donut chart types. Inherits {@link SciChartLegendBase}\r\n */\r\nvar SciChartPieLegend = /** @class */ (function (_super) {\r\n __extends(SciChartPieLegend, _super);\r\n function SciChartPieLegend() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SciChartLegendBase_1.ELegendType.SciChartPieLegend;\r\n _this.animate = true;\r\n _this.showCheckboxesProperty = false;\r\n _this.showSeriesMarkersProperty = true;\r\n return _this;\r\n }\r\n Object.defineProperty(SciChartPieLegend.prototype, \"showCheckboxes\", {\r\n /**\r\n * Gets or sets whether series visibility checkboxes should be shown\r\n */\r\n get: function () {\r\n return this.showCheckboxesProperty;\r\n },\r\n /**\r\n * Gets or sets whether series visibility checkboxes should be shown\r\n */\r\n set: function (value) {\r\n this.showCheckboxesProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieLegend.prototype, \"showSeriesMarkers\", {\r\n /**\r\n * Gets or sets whether series markers should be shown\r\n */\r\n get: function () {\r\n return this.showSeriesMarkersProperty;\r\n },\r\n /**\r\n * Gets or sets whether series markers should be shown\r\n */\r\n set: function (value) {\r\n this.showSeriesMarkersProperty = value;\r\n this.notifyPropertyChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartPieLegend.prototype.applyTheme = function () {\r\n // TODO: add light theme\r\n };\r\n /**\r\n * Sets the array of pie segments to display in the legend\r\n * @param pieSegmentArray The Pie segment array\r\n * @remarks See {@link SciChartPieSurface.pieSegments} which is the source for this array\r\n */\r\n SciChartPieLegend.prototype.setPieSegmentArray = function (pieSegmentArray) {\r\n this.pieSegmentArray = pieSegmentArray;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartPieLegend.prototype.update = function () {\r\n this.clear();\r\n if (this.showLegend) {\r\n this.create();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartPieLegend.prototype.addEventListeners = function () {\r\n var _this = this;\r\n this.pieSegmentArray.forEach(function (ps) {\r\n var el = _this.parentDiv.querySelector(\"#\".concat(getCheckboxId(ps.id)));\r\n if (!el) {\r\n return;\r\n }\r\n var eventSubscriptionItem = (0, SciChartPieSurface_1.addEventListenerToPieSegment)(ps, el, _this.animate);\r\n var eventListenersForRenderableSeries = _this.eventListenersCollection.get(ps.id);\r\n if (eventListenersForRenderableSeries) {\r\n eventListenersForRenderableSeries.push(eventSubscriptionItem);\r\n }\r\n else {\r\n _this.eventListenersCollection.set(ps.id, [eventSubscriptionItem]);\r\n }\r\n });\r\n };\r\n /** @inheritDoc */\r\n SciChartPieLegend.prototype.removeEventListeners = function () {\r\n var _this = this;\r\n this.pieSegmentArray.forEach(function (ps) { return _this.removeEventListenerFromSeries(ps.id); });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartPieLegend.prototype.getInnerHTML = function () {\r\n var backgroundColor = this.parentSurfaceProperty.themeProvider.legendBackgroundBrush;\r\n var color = this.parentSurfaceProperty.themeProvider.labelForegroundBrush;\r\n var legendItems = this.pieSegmentArray.map(function (ps, index) {\r\n var _a;\r\n return ({\r\n id: getCheckboxId(ps.id),\r\n name: (_a = ps.text) !== null && _a !== void 0 ? _a : \"Segment \".concat(index + 1),\r\n color: ps.color,\r\n checked: ps.isSelected,\r\n gradient: ps.colorLinearGradient\r\n });\r\n });\r\n var margin = new Thickness_1.Thickness(this.margin, this.margin, this.margin, this.margin);\r\n return this.getLegendHTML(this.placement, color, backgroundColor, margin, this.orientation, this.showCheckboxes, this.showSeriesMarkers, legendItems);\r\n };\r\n return SciChartPieLegend;\r\n}(SciChartLegendBase_1.SciChartLegendBase));\r\nexports.SciChartPieLegend = SciChartPieLegend;\r\n/** @ignore */\r\nvar getCheckboxId = function (pieSegmentId) { return \"check\".concat(pieSegmentId); };\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BasePointMarker = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar MemoryUsageHelper_1 = require(\"../../../utils/MemoryUsageHelper\");\r\nvar WebGlRenderContext2D_1 = require(\"../../Drawing/WebGlRenderContext2D\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar PointMarkerStyle_1 = require(\"../RenderableSeries/Animations/PointMarkerStyle\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar CanvasTexture_1 = require(\"../TextureManager/CanvasTexture\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar Constants_1 = require(\"./Constants\");\r\n/**\r\n * The Base class for a PointMarker in SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}.\r\n * @description PointMarkers may be displayed on {@link IRenderableSeries | Renderable Series} to add scatter-points to charts.\r\n * For example: setting the {@link XyScatterRenderableSeries.pointMarker} property or {@link FastLineRenderableSeries.pointMarker} property\r\n * will render a point at each xy data-value\r\n * @remarks\r\n * See derived types of {@link BasePointMarker} for specific point-marker types.\r\n */\r\nvar BasePointMarker = /** @class */ (function (_super) {\r\n __extends(BasePointMarker, _super);\r\n /**\r\n * Creates an instance of the {@link BasePointMarker}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IPointMarkerOptions} used to configure the point-marker at instantiation time\r\n */\r\n function BasePointMarker(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n _this = _super.call(this) || this;\r\n _this.fillProperty = \"#5555FF\";\r\n _this.heightProperty = 5;\r\n _this.opacityProperty = 1;\r\n _this.strokeProperty = \"#3333FF\";\r\n _this.strokeThicknessProperty = 1;\r\n _this.widthProperty = 5;\r\n _this.lastPointOnlyProperty = false;\r\n _this.isUpdateSuspended = false;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.widthProperty = (_a = options === null || options === void 0 ? void 0 : options.width) !== null && _a !== void 0 ? _a : _this.widthProperty;\r\n _this.heightProperty = (_b = options === null || options === void 0 ? void 0 : options.height) !== null && _b !== void 0 ? _b : _this.heightProperty;\r\n _this.fillProperty = (_c = options === null || options === void 0 ? void 0 : options.fill) !== null && _c !== void 0 ? _c : _this.fillProperty;\r\n _this.strokeProperty = (_d = options === null || options === void 0 ? void 0 : options.stroke) !== null && _d !== void 0 ? _d : _this.strokeProperty;\r\n _this.strokeThicknessProperty = (_e = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _e !== void 0 ? _e : _this.strokeThicknessProperty;\r\n _this.opacityProperty = (_f = options === null || options === void 0 ? void 0 : options.opacity) !== null && _f !== void 0 ? _f : _this.opacityProperty;\r\n _this.lastPointOnlyProperty = (_g = options === null || options === void 0 ? void 0 : options.lastPointOnly) !== null && _g !== void 0 ? _g : _this.lastPointOnlyProperty;\r\n // add to the list of objects that create and store WebGL resources\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.add(_this);\r\n return _this;\r\n }\r\n Object.defineProperty(BasePointMarker.prototype, \"fill\", {\r\n /**\r\n * Gets or sets the point-marker fill as an HTML Color Code\r\n */\r\n get: function () {\r\n if (this.fillProperty === IThemeProvider_1.AUTO_COLOR) {\r\n return \"#00000000\";\r\n }\r\n if (this.fillProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n return this.fillProperty.substring(IThemeProvider_1.AUTO_COLOR.length);\r\n }\r\n return this.fillProperty;\r\n },\r\n /**\r\n * Gets or sets the point-marker fill as an HTML Color Code\r\n */\r\n set: function (fill) {\r\n var oldValue = this.fillProperty;\r\n this.fillProperty = fill;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.FILL, fill, oldValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BasePointMarker.prototype, \"stroke\", {\r\n /**\r\n * Gets or sets the point-marker stroke as an HTML Color Code\r\n */\r\n get: function () {\r\n if (this.strokeProperty === IThemeProvider_1.AUTO_COLOR) {\r\n return \"#00000000\";\r\n }\r\n if (this.strokeProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n return this.strokeProperty.substring(IThemeProvider_1.AUTO_COLOR.length);\r\n }\r\n return this.strokeProperty;\r\n },\r\n /**\r\n * Gets or sets the point-marker stroke as an HTML Color Code\r\n */\r\n set: function (stroke) {\r\n var oldValue = this.strokeProperty;\r\n this.strokeProperty = stroke;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.STROKE, stroke, oldValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BasePointMarker.prototype, \"width\", {\r\n /**\r\n * Gets or sets the width of the point-marker in pixels\r\n */\r\n get: function () {\r\n return this.widthProperty;\r\n },\r\n /**\r\n * Gets or sets the width of the point-marker in pixels\r\n */\r\n set: function (width) {\r\n var oldValue = this.widthProperty;\r\n this.widthProperty = width;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.WIDTH, width, oldValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BasePointMarker.prototype, \"height\", {\r\n /**\r\n * Gets or sets the height of the point-marker in pixels\r\n */\r\n get: function () {\r\n return this.heightProperty;\r\n },\r\n /**\r\n * Gets or sets the height of the point-marker in pixels\r\n */\r\n set: function (height) {\r\n var oldValue = this.heightProperty;\r\n this.heightProperty = height;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.HEIGHT, height, oldValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BasePointMarker.prototype, \"strokeThickness\", {\r\n /**\r\n * Gets or sets the stroke-thickness of the point-marker in pixels\r\n */\r\n get: function () {\r\n return this.strokeThicknessProperty;\r\n },\r\n /**\r\n * Gets or sets the stroke-thickness of the point-marker in pixels\r\n */\r\n set: function (strokeThickness) {\r\n var oldValue = this.strokeThicknessProperty;\r\n this.strokeThicknessProperty = strokeThickness;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.STROKE_THICKNESS, strokeThickness, oldValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BasePointMarker.prototype, \"opacity\", {\r\n /**\r\n * Gets or sets the opacity of the point-marker\r\n */\r\n get: function () {\r\n return this.opacityProperty;\r\n },\r\n /**\r\n * Gets or sets the opacity of the point-marker\r\n */\r\n set: function (opacity) {\r\n var oldValue = this.opacityProperty;\r\n this.opacityProperty = opacity;\r\n this.applyOpacity(opacity);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.OPACITY, opacity, oldValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BasePointMarker.prototype, \"lastPointOnly\", {\r\n /**\r\n * Set true to make the point marker render only for the last point on the data series\r\n */\r\n get: function () {\r\n return this.lastPointOnlyProperty;\r\n },\r\n /**\r\n * Set true to make the point marker render only for the last point on the data series\r\n */\r\n set: function (lastPointOnly) {\r\n var oldValue = this.lastPointOnlyProperty;\r\n this.lastPointOnlyProperty = lastPointOnly;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.LAST_POINT_ONLY, lastPointOnly, oldValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets a {@link CanvasTexture} object which represents the point-marker sprite instance to draw\r\n * @remarks note {@link CanvasTexture} implements {@link IDeletable} and must be deleted manually to free memory\r\n */\r\n BasePointMarker.prototype.getSprite = function () {\r\n if (this.spriteTextures === undefined) {\r\n this.spriteTextures = this.createCanvasTexture();\r\n this.applyOpacity(this.opacityProperty);\r\n }\r\n return this.spriteTextures.spriteTexture;\r\n };\r\n /**\r\n * Gets a {@link CanvasTexture} object which represents the stroke mask sprite instance to use for points,\r\n * which appearance is overridden by a Palette Provider\r\n * @remarks note {@link CanvasTexture} implements {@link IDeletable} and must be deleted manually to free memory\r\n */\r\n BasePointMarker.prototype.getStrokeMask = function () {\r\n if (this.spriteTextures === undefined) {\r\n this.spriteTextures = this.createCanvasTexture();\r\n this.applyOpacity(this.opacityProperty);\r\n }\r\n return this.spriteTextures.strokeMask;\r\n };\r\n /**\r\n * Gets a {@link CanvasTexture} object which represents the fill mask sprite instance to use for points,\r\n * which appearance is overridden by a Palette Provider\r\n * @remarks note {@link CanvasTexture} implements {@link IDeletable} and must be deleted manually to free memory\r\n */\r\n BasePointMarker.prototype.getFillMask = function () {\r\n if (this.spriteTextures === undefined) {\r\n this.spriteTextures = this.createCanvasTexture();\r\n this.applyOpacity(this.opacityProperty);\r\n }\r\n return this.spriteTextures.fillMask;\r\n };\r\n BasePointMarker.prototype.invalidateCache = function () {\r\n if (this.spriteTextures) {\r\n (0, Deleter_1.deleteSafe)(this.spriteTextures.spriteTexture);\r\n (0, Deleter_1.deleteSafe)(this.spriteTextures.strokeMask);\r\n (0, Deleter_1.deleteSafe)(this.spriteTextures.fillMask);\r\n this.spriteTextures = undefined;\r\n }\r\n };\r\n BasePointMarker.prototype.resetCache = function () {\r\n this.invalidateCache();\r\n this.widthProperty = undefined;\r\n this.heightProperty = undefined;\r\n this.fillProperty = undefined;\r\n this.strokeProperty = undefined;\r\n this.strokeThicknessProperty = undefined;\r\n this.opacityProperty = undefined;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BasePointMarker.prototype.delete = function () {\r\n var _this = this;\r\n this.invalidateCache();\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.delete(this);\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n // resolve memory debug issue when comparing to proxy object\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.forEach(function (ref) {\r\n if (ref.resetCache === _this.resetCache) {\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.delete(ref);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n };\r\n /**\r\n * Called internally - creates the {@link CanvasTexture} object and calls {@link drawSprite} for creating the cached texture to draw\r\n */\r\n BasePointMarker.prototype.createCanvasTexture = function () {\r\n if (app_1.IS_TEST_ENV) {\r\n return { spriteTexture: undefined, strokeMask: undefined, fillMask: undefined };\r\n }\r\n var widthPadded = DpiHelper_1.DpiHelper.PIXEL_RATIO * (this.width + this.strokeThickness) + 1;\r\n var heightPadded = DpiHelper_1.DpiHelper.PIXEL_RATIO * (this.height + this.strokeThickness) + 1;\r\n var spriteTexture = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, widthPadded, heightPadded);\r\n spriteTexture.clear();\r\n this.drawSprite(spriteTexture.getContext(), this.width * DpiHelper_1.DpiHelper.PIXEL_RATIO, this.height * DpiHelper_1.DpiHelper.PIXEL_RATIO, this.stroke, this.strokeThickness * DpiHelper_1.DpiHelper.PIXEL_RATIO, this.fill);\r\n spriteTexture.copyTexture();\r\n var strokeMask = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, widthPadded, heightPadded);\r\n strokeMask.clear();\r\n this.drawSprite(strokeMask.getContext(), this.width * DpiHelper_1.DpiHelper.PIXEL_RATIO, this.height * DpiHelper_1.DpiHelper.PIXEL_RATIO, \"#ffffffff\", this.strokeThickness * DpiHelper_1.DpiHelper.PIXEL_RATIO, \"#00000000\");\r\n strokeMask.copyTexture();\r\n var fillMask = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, widthPadded, heightPadded);\r\n fillMask.clear();\r\n this.drawSprite(fillMask.getContext(), \r\n // Temporary fix for ring around pointmarkers with paletteProvider\r\n this.width * DpiHelper_1.DpiHelper.PIXEL_RATIO - 3, this.height * DpiHelper_1.DpiHelper.PIXEL_RATIO - 3, \"#00000000\", 0, \"#ffffffff\");\r\n fillMask.copyTexture();\r\n return { spriteTexture: spriteTexture, strokeMask: strokeMask, fillMask: fillMask };\r\n };\r\n /** @inheritDoc */\r\n BasePointMarker.prototype.getPointMarkerStyle = function () {\r\n return new PointMarkerStyle_1.PointMarkerStyle({\r\n type: this.type,\r\n width: this.width,\r\n height: this.height,\r\n fill: this.fill,\r\n stroke: this.stroke,\r\n strokeThickness: this.strokeThickness\r\n });\r\n };\r\n /** @inheritDoc */\r\n BasePointMarker.prototype.toJSON = function () {\r\n var options = {\r\n fill: this.fill,\r\n height: this.height,\r\n opacity: this.opacity,\r\n stroke: this.stroke,\r\n strokeThickness: this.strokeThickness,\r\n width: this.width,\r\n lastPointOnly: this.lastPointOnly\r\n };\r\n // @ts-ignore\r\n return { type: this.type, options: options };\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BasePointMarker.prototype.onDpiChanged = function (args) {\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"basePointMarker onDpiChanged Scaling factor = \" + args.newValue);\r\n }\r\n this.invalidateCache();\r\n };\r\n /** @inheritDoc */\r\n BasePointMarker.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n if (this.strokeProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getStrokeColor(index, maxSeries, this.webAssemblyContext);\r\n this.stroke = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"stroke\", color);\r\n }\r\n if (this.fillProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(index, maxSeries, this.webAssemblyContext);\r\n this.fill = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"fill\", color);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BasePointMarker.prototype.adjustAutoColor = function (propertyName, color) {\r\n return color;\r\n };\r\n /** @inheritDoc */\r\n BasePointMarker.prototype.resumeUpdates = function () {\r\n this.isUpdateSuspended = false;\r\n this.recreateSpriteTextures();\r\n };\r\n /** @inheritDoc */\r\n BasePointMarker.prototype.suspendUpdates = function () {\r\n this.isUpdateSuspended = true;\r\n };\r\n /**\r\n * Notifies listeners to {@link invalidateParentCallback} that a property has changed and redraw is required\r\n * @param propertyName the property name\r\n * @param newValue the new value\r\n * @param oldValue the old value\r\n */\r\n BasePointMarker.prototype.notifyPropertyChanged = function (propertyName, newValue, oldValue) {\r\n if (newValue === oldValue || propertyName === Constants_1.PROPERTY.OPACITY) {\r\n return;\r\n }\r\n if (!this.isUpdateSuspended) {\r\n this.recreateSpriteTextures();\r\n }\r\n };\r\n BasePointMarker.prototype.recreateSpriteTextures = function () {\r\n var _a, _b, _c;\r\n if (this.spriteTextures) {\r\n (_a = this.spriteTextures.spriteTexture) === null || _a === void 0 ? void 0 : _a.delete();\r\n (_b = this.spriteTextures.strokeMask) === null || _b === void 0 ? void 0 : _b.delete();\r\n (_c = this.spriteTextures.fillMask) === null || _c === void 0 ? void 0 : _c.delete();\r\n this.spriteTextures = undefined;\r\n }\r\n this.spriteTextures = this.createCanvasTexture();\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n BasePointMarker.prototype.applyOpacity = function (opacity) {\r\n var _a, _b, _c;\r\n if (this.spriteTextures) {\r\n (_a = this.spriteTextures.spriteTexture) === null || _a === void 0 ? void 0 : _a.applyOpacity(opacity);\r\n (_b = this.spriteTextures.strokeMask) === null || _b === void 0 ? void 0 : _b.applyOpacity(opacity);\r\n (_c = this.spriteTextures.fillMask) === null || _c === void 0 ? void 0 : _c.applyOpacity(opacity);\r\n }\r\n };\r\n return BasePointMarker;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BasePointMarker = BasePointMarker;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"FILL\"] = \"fill\";\r\n PROPERTY[\"HEIGHT\"] = \"height\";\r\n PROPERTY[\"IMAGE\"] = \"image\";\r\n PROPERTY[\"SIZE_TO_IMAGE\"] = \"size_to_image\";\r\n PROPERTY[\"STROKE\"] = \"stroke\";\r\n PROPERTY[\"STROKE_THICKNESS\"] = \"strokeThickness\";\r\n PROPERTY[\"WIDTH\"] = \"width\";\r\n PROPERTY[\"OPACITY\"] = \"opacity\";\r\n PROPERTY[\"LAST_POINT_ONLY\"] = \"lastPointOnly\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CrossPointMarker = void 0;\r\nvar PointMarkerType_1 = require(\"../../../types/PointMarkerType\");\r\nvar BasePointMarker_1 = require(\"./BasePointMarker\");\r\n/**\r\n * @summary Point-marker type which renders a cross (plus-sign or +) at each x-y datapoint location\r\n * @remarks\r\n * To apply the CrossPointMarker to a {@link IRenderableSeries}, use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * sciChartSurface.renderableSeries.add(new FastLineRenderableSeries(wasmContext, {\r\n * pointMarker: new CrossPointMarker(wasmContext, {\r\n * width: 9,\r\n * height: 9,\r\n * fill: \"#FF0000\",\r\n * stroke: \"#0000FF\",\r\n * strokeThickness: 1\r\n * })\r\n * }));\r\n * ```\r\n */\r\nvar CrossPointMarker = /** @class */ (function (_super) {\r\n __extends(CrossPointMarker, _super);\r\n /**\r\n * Creates an instance of the {@link CrossPointMarker}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IPointMarkerOptions} used to configure the point-marker at instantiation time\r\n */\r\n function CrossPointMarker(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = PointMarkerType_1.EPointMarkerType.Cross;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n CrossPointMarker.prototype.drawSprite = function (context, spriteWidth, spriteHeight, stroke, strokeThickness, fill) {\r\n if (strokeThickness > 0) {\r\n context.strokeStyle = stroke;\r\n context.lineWidth = strokeThickness;\r\n var centerX = context.canvas.width / 2;\r\n var centerY = context.canvas.height / 2;\r\n var halfHeight = spriteHeight / 2;\r\n var halfWidth = spriteWidth / 2;\r\n context.beginPath();\r\n context.moveTo(centerX, centerY - halfHeight);\r\n context.lineTo(centerX, centerY + halfHeight);\r\n context.stroke();\r\n context.beginPath();\r\n context.moveTo(centerX - halfWidth, centerY);\r\n context.lineTo(centerX + halfWidth, centerY);\r\n context.stroke();\r\n }\r\n };\r\n return CrossPointMarker;\r\n}(BasePointMarker_1.BasePointMarker));\r\nexports.CrossPointMarker = CrossPointMarker;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EllipsePointMarker = void 0;\r\nvar PointMarkerType_1 = require(\"../../../types/PointMarkerType\");\r\nvar BasePointMarker_1 = require(\"./BasePointMarker\");\r\n/**\r\n * @summary Point-marker type which renders an ellipse at each x-y datapoint location\r\n * @remarks\r\n * To apply the EllipsePointMarker to a {@link IRenderableSeries}, use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * sciChartSurface.renderableSeries.add(new FastLineRenderableSeries(wasmContext, {\r\n * pointMarker: new EllipsePointMarker(wasmContext, {\r\n * width: 9,\r\n * height: 9,\r\n * fill: \"#FF0000\",\r\n * stroke: \"#0000FF\",\r\n * strokeThickness: 1\r\n * })\r\n * }));\r\n * ```\r\n */\r\nvar EllipsePointMarker = /** @class */ (function (_super) {\r\n __extends(EllipsePointMarker, _super);\r\n /**\r\n * Creates an instance of the {@link EllipsePointMarker}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IPointMarkerOptions} used to configure the point-marker at instantiation time\r\n */\r\n function EllipsePointMarker(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = PointMarkerType_1.EPointMarkerType.Ellipse;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n EllipsePointMarker.prototype.drawSprite = function (context, spriteWidth, spriteHeight, stroke, strokeThickness, fill) {\r\n var centerX = context.canvas.width / 2;\r\n var centerY = context.canvas.height / 2;\r\n var halfStroke = strokeThickness / 2;\r\n var radiusX = spriteWidth / 2 - halfStroke < 0 ? 0 : spriteWidth / 2 - halfStroke;\r\n var radiusY = spriteHeight / 2 - halfStroke < 0 ? 0 : spriteHeight / 2 - halfStroke;\r\n context.fillStyle = fill;\r\n context.ellipse(centerX, centerY, radiusX, radiusY, 0, 0, 2 * Math.PI, false);\r\n context.fill();\r\n if (strokeThickness > 0) {\r\n context.strokeStyle = stroke;\r\n context.lineWidth = strokeThickness;\r\n context.stroke();\r\n }\r\n };\r\n return EllipsePointMarker;\r\n}(BasePointMarker_1.BasePointMarker));\r\nexports.EllipsePointMarker = EllipsePointMarker;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SpritePointMarker = void 0;\r\nvar PointMarkerType_1 = require(\"../../../types/PointMarkerType\");\r\nvar CustomPointMarkerStyle_1 = require(\"../RenderableSeries/Animations/CustomPointMarkerStyle\");\r\nvar BasePointMarker_1 = require(\"./BasePointMarker\");\r\nvar Constants_1 = require(\"./Constants\");\r\n/**\r\n * @summary Point-marker type which renders a custom image provided by {@link HTMLImageElement} at each x-y datapoint location\r\n * @remarks\r\n * To apply the SpritePointMarker to a {@link IRenderableSeries}, use the following code:\r\n *\r\n * ```ts\r\n * import {createImageAsync} from \"SCICHART_ROOT/src/utils/imageUtil\";\r\n * import customPointImage from \"./CustomMarkerImage.png\";\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * const imageBitmap = await createImageAsync(customPointImage);\r\n * sciChartSurface.renderableSeries.add(new FastLineRenderableSeries(wasmContext, {\r\n * pointMarker: new SpritePointMarker(wasmContext, {\r\n * image: imageBitmap\r\n * })\r\n * }));\r\n * ```\r\n */\r\nvar SpritePointMarker = /** @class */ (function (_super) {\r\n __extends(SpritePointMarker, _super);\r\n /**\r\n * Creates an instance of the {@link SpritePointMarker}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link ISpritePointMarkerOptions} used to configure the point-marker at instantiation time\r\n */\r\n function SpritePointMarker(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = PointMarkerType_1.EPointMarkerType.Sprite;\r\n _this.image = options === null || options === void 0 ? void 0 : options.image;\r\n // Set the width and height after setting the image\r\n if (options === null || options === void 0 ? void 0 : options.width) {\r\n _this.width = options.width;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.height) {\r\n _this.height = options.height;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(SpritePointMarker.prototype, \"image\", {\r\n /**\r\n * Gets or sets the image to draw at each x-y point as an {@link HTMLImageElement}\r\n */\r\n get: function () {\r\n return this.imageProperty;\r\n },\r\n /**\r\n * Gets or sets the image to draw at each x-y point as an {@link HTMLImageElement}\r\n */\r\n set: function (image) {\r\n var oldValue = this.imageProperty;\r\n this.imageProperty = image;\r\n if (this.imageProperty) {\r\n this.width = this.imageProperty.width;\r\n this.height = this.imageProperty.height;\r\n }\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.IMAGE, image, oldValue);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SpritePointMarker.prototype.drawSprite = function (context, spriteWidth, spriteHeight, stroke, strokeThickness, fill) {\r\n var centerX = context.canvas.width / 2;\r\n var centerY = context.canvas.height / 2;\r\n var halfHeight = this.height / 2;\r\n var halfWidth = this.width / 2;\r\n if (this.image) {\r\n context.drawImage(this.image, centerX - halfWidth, centerY - halfHeight, this.width, this.height);\r\n }\r\n };\r\n SpritePointMarker.prototype.getPointMarkerStyle = function () {\r\n return new CustomPointMarkerStyle_1.CustomPointMarkerStyle({\r\n type: this.type,\r\n width: this.width,\r\n height: this.height,\r\n image: this.image\r\n });\r\n };\r\n SpritePointMarker.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n image: this.image\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return SpritePointMarker;\r\n}(BasePointMarker_1.BasePointMarker));\r\nexports.SpritePointMarker = SpritePointMarker;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SquarePointMarker = void 0;\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar PointMarkerType_1 = require(\"../../../types/PointMarkerType\");\r\nvar BasePointMarker_1 = require(\"./BasePointMarker\");\r\n/**\r\n * @summary Point-marker type which renders a square at each x-y datapoint location\r\n * @remarks\r\n * To apply the SquarePointMarker to a {@link IRenderableSeries}, use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * sciChartSurface.renderableSeries.add(new FastLineRenderableSeries(wasmContext, {\r\n * pointMarker: new SquarePointMarker(wasmContext, {\r\n * width: 9,\r\n * height: 9,\r\n * fill: \"#FF0000\",\r\n * stroke: \"#0000FF\",\r\n * strokeThickness: 1\r\n * })\r\n * }));\r\n * ```\r\n */\r\nvar SquarePointMarker = /** @class */ (function (_super) {\r\n __extends(SquarePointMarker, _super);\r\n /**\r\n * Creates an instance of the {@link SquarePointMarker}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IPointMarkerOptions} used to configure the point-marker at instantiation time\r\n */\r\n function SquarePointMarker(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = PointMarkerType_1.EPointMarkerType.Square;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n SquarePointMarker.prototype.drawSprite = function (context, spriteWidth, spriteHeight, stroke, strokeThickness, fill) {\r\n var centerX = context.canvas.width / 2;\r\n var centerY = context.canvas.height / 2;\r\n var halfHeight = spriteHeight / 2;\r\n var halfWidth = spriteWidth / 2;\r\n var halfStroke = strokeThickness / 2;\r\n var x1y1 = new Point_1.Point(centerX - halfWidth + halfStroke, centerY - halfHeight + halfStroke);\r\n var x2y2 = new Point_1.Point(centerX + halfWidth - halfStroke, centerY + halfHeight - halfStroke);\r\n context.fillStyle = fill;\r\n context.beginPath();\r\n context.moveTo(x1y1.x, x1y1.y);\r\n context.lineTo(x2y2.x, x1y1.y);\r\n context.lineTo(x2y2.x, x2y2.y);\r\n context.lineTo(x1y1.x, x2y2.y);\r\n context.closePath();\r\n context.fill();\r\n if (strokeThickness > 0) {\r\n context.strokeStyle = stroke;\r\n context.lineWidth = strokeThickness;\r\n context.stroke();\r\n }\r\n };\r\n return SquarePointMarker;\r\n}(BasePointMarker_1.BasePointMarker));\r\nexports.SquarePointMarker = SquarePointMarker;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TrianglePointMarker = void 0;\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar PointMarkerType_1 = require(\"../../../types/PointMarkerType\");\r\nvar BasePointMarker_1 = require(\"./BasePointMarker\");\r\n/**\r\n * @summary Point-marker type which renders a triangle at each x-y datapoint location\r\n * @remarks\r\n * To apply the TrianglePointMarker to a {@link IRenderableSeries}, use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * sciChartSurface.renderableSeries.add(new FastLineRenderableSeries(wasmContext, {\r\n * pointMarker: new TrianglePointMarker(wasmContext, {\r\n * width: 9,\r\n * height: 9,\r\n * fill: \"#FF0000\",\r\n * stroke: \"#0000FF\",\r\n * strokeThickness: 1\r\n * })\r\n * }));\r\n * ```\r\n */\r\nvar TrianglePointMarker = /** @class */ (function (_super) {\r\n __extends(TrianglePointMarker, _super);\r\n /**\r\n * Creates an instance of the {@link TrianglePointMarker}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IPointMarkerOptions} used to configure the point-marker at instantiation time\r\n */\r\n function TrianglePointMarker(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = PointMarkerType_1.EPointMarkerType.Triangle;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n TrianglePointMarker.prototype.drawSprite = function (context, spriteWidth, spriteHeight, stroke, strokeThickness, fill) {\r\n var centerX = context.canvas.width / 2;\r\n var centerY = context.canvas.height / 2;\r\n var halfHeight = spriteHeight / 2;\r\n var halfWidth = spriteWidth / 2;\r\n var halfStroke = strokeThickness / 2;\r\n var centerTop = new Point_1.Point(centerX, centerY - halfHeight + halfStroke);\r\n var rightBottom = new Point_1.Point(centerX + halfWidth - halfStroke, centerY + halfHeight - halfStroke);\r\n var leftBottom = new Point_1.Point(centerX - halfWidth + halfStroke, centerY + halfHeight - halfStroke);\r\n context.fillStyle = fill;\r\n context.beginPath();\r\n context.moveTo(centerTop.x, centerTop.y);\r\n context.lineTo(rightBottom.x, rightBottom.y);\r\n context.lineTo(leftBottom.x, leftBottom.y);\r\n context.lineTo(centerTop.x, centerTop.y);\r\n context.closePath();\r\n context.fill();\r\n if (strokeThickness > 0) {\r\n context.strokeStyle = stroke;\r\n context.lineWidth = strokeThickness;\r\n context.stroke();\r\n }\r\n };\r\n return TrianglePointMarker;\r\n}(BasePointMarker_1.BasePointMarker));\r\nexports.TrianglePointMarker = TrianglePointMarker;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPointMarker = void 0;\r\nvar PointMarkerType_1 = require(\"../../../types/PointMarkerType\");\r\nvar BasePointMarker_1 = require(\"./BasePointMarker\");\r\n/**\r\n * @summary Point-marker type which renders an 'x' at each x-y datapoint location\r\n * @remarks\r\n * To apply the XPointMarker to a {@link IRenderableSeries}, use the following code:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * sciChartSurface.renderableSeries.add(new FastLineRenderableSeries(wasmContext, {\r\n * pointMarker: new XPointMarker(wasmContext, {\r\n * width: 9,\r\n * height: 9,\r\n * fill: \"#FF0000\",\r\n * stroke: \"#0000FF\",\r\n * strokeThickness: 1\r\n * })\r\n * }));\r\n * ```\r\n */\r\nvar XPointMarker = /** @class */ (function (_super) {\r\n __extends(XPointMarker, _super);\r\n /**\r\n * Creates an instance of the {@link XPointMarker}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IPointMarkerOptions} used to configure the point-marker at instantiation time\r\n */\r\n function XPointMarker(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = PointMarkerType_1.EPointMarkerType.X;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n XPointMarker.prototype.drawSprite = function (context, spriteWidth, spriteHeight, stroke, strokeThickness, fill) {\r\n var centerX = context.canvas.width / 2;\r\n var centerY = context.canvas.height / 2;\r\n var halfHeight = spriteHeight / 2;\r\n var halfWidth = spriteWidth / 2;\r\n var quarterStroke = strokeThickness / 4;\r\n if (strokeThickness > 0) {\r\n context.strokeStyle = stroke;\r\n context.lineWidth = strokeThickness * 1.5; // For some reason 'X' shape appears smaller\r\n context.beginPath();\r\n context.moveTo(centerX - halfWidth + quarterStroke, centerY - halfHeight + quarterStroke);\r\n context.lineTo(centerX + halfWidth - quarterStroke, centerY + halfHeight - quarterStroke);\r\n context.stroke();\r\n context.beginPath();\r\n context.moveTo(centerX + halfWidth - quarterStroke, centerY - halfHeight + quarterStroke);\r\n context.lineTo(centerX - halfWidth + quarterStroke, centerY + halfHeight - quarterStroke);\r\n context.stroke();\r\n }\r\n };\r\n return XPointMarker;\r\n}(BasePointMarker_1.BasePointMarker));\r\nexports.XPointMarker = XPointMarker;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BandAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar animationHelpers_1 = require(\"./animationHelpers\");\r\nvar BandAnimationStyle_1 = require(\"./BandAnimationStyle\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar BandAnimation = /** @class */ (function (_super) {\r\n __extends(BandAnimation, _super);\r\n function BandAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Style;\r\n _this.duration = (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1000;\r\n _this.styles = (options === null || options === void 0 ? void 0 : options.styles) ? new BandAnimationStyle_1.BandAnimationStyle(options.styles) : _this.styles;\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeries;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n BandAnimation.prototype.getSeriesStyle = function (rs) {\r\n var _a;\r\n if (rs.isStacked)\r\n return undefined;\r\n return new BandAnimationStyle_1.BandAnimationStyle({\r\n stroke: rs.stroke,\r\n strokeY1: rs.strokeY1,\r\n fill: rs.fill,\r\n fillY1: rs.fillY1,\r\n strokeThickness: rs.strokeThickness,\r\n opacity: rs.opacity,\r\n pointMarker: (_a = rs.pointMarker) === null || _a === void 0 ? void 0 : _a.getPointMarkerStyle()\r\n });\r\n };\r\n /** @inheritDoc */\r\n BandAnimation.prototype.updateSeriesProperties = function (renderableSeries, initialStyles, animationProgress) {\r\n _super.prototype.updateSeriesProperties.call(this, renderableSeries, initialStyles, animationProgress);\r\n if (this.isStyleAnimation) {\r\n var bandAnimationStyles = this.styles;\r\n if (bandAnimationStyles.strokeY1 !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.strokeY1ARGB, bandAnimationStyles.strokeY1ARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n renderableSeries.strokeY1 = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n if (bandAnimationStyles.fill !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.fillARGB, bandAnimationStyles.fillARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n renderableSeries.fill = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n if (bandAnimationStyles.fillY1 !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.fillY1ARGB, bandAnimationStyles.fillY1ARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n renderableSeries.fillY1 = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n }\r\n };\r\n return BandAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.BandAnimation = BandAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BandAnimationStyle = void 0;\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar BaseAnimationStyle_1 = require(\"./BaseAnimationStyle\");\r\nvar BandAnimationStyle = /** @class */ (function (_super) {\r\n __extends(BandAnimationStyle, _super);\r\n function BandAnimationStyle(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.strokeY1 = (_a = options === null || options === void 0 ? void 0 : options.strokeY1) !== null && _a !== void 0 ? _a : _this.strokeY1Property;\r\n _this.fill = (_b = options === null || options === void 0 ? void 0 : options.fill) !== null && _b !== void 0 ? _b : _this.fillProperty;\r\n _this.fillY1 = (_c = options === null || options === void 0 ? void 0 : options.fillY1) !== null && _c !== void 0 ? _c : _this.fillY1Property;\r\n return _this;\r\n }\r\n Object.defineProperty(BandAnimationStyle.prototype, \"strokeY1\", {\r\n get: function () {\r\n return this.strokeY1Property;\r\n },\r\n set: function (value) {\r\n this.strokeY1Property = value;\r\n if (value) {\r\n this.strokeY1ARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BandAnimationStyle.prototype, \"strokeY1ARGB\", {\r\n get: function () {\r\n return this.strokeY1ARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BandAnimationStyle.prototype, \"fill\", {\r\n get: function () {\r\n return this.fillProperty;\r\n },\r\n set: function (value) {\r\n this.fillProperty = value;\r\n if (value) {\r\n this.fillARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BandAnimationStyle.prototype, \"fillARGB\", {\r\n get: function () {\r\n return this.fillARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BandAnimationStyle.prototype, \"fillY1\", {\r\n get: function () {\r\n return this.fillY1Property;\r\n },\r\n set: function (value) {\r\n this.fillY1Property = value;\r\n if (value) {\r\n this.fillY1ARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BandAnimationStyle.prototype, \"fillY1ARGB\", {\r\n get: function () {\r\n return this.fillY1ARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BandAnimationStyle;\r\n}(BaseAnimationStyle_1.BaseAnimationStyle));\r\nexports.BandAnimationStyle = BandAnimationStyle;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseAnimationStyle = void 0;\r\nvar PointMarkerType_1 = require(\"../../../../types/PointMarkerType\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar CustomPointMarkerStyle_1 = require(\"./CustomPointMarkerStyle\");\r\nvar PointMarkerStyle_1 = require(\"./PointMarkerStyle\");\r\nvar BaseAnimationStyle = /** @class */ (function () {\r\n function BaseAnimationStyle(options) {\r\n var _a, _b, _c;\r\n this.opacity = undefined;\r\n this.strokeProperty = undefined;\r\n this.strokeThickness = (_a = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _a !== void 0 ? _a : this.strokeThickness;\r\n this.stroke = (_b = options === null || options === void 0 ? void 0 : options.stroke) !== null && _b !== void 0 ? _b : this.strokeProperty;\r\n if (options === null || options === void 0 ? void 0 : options.pointMarker) {\r\n this.pointMarker =\r\n options.pointMarker.type === PointMarkerType_1.EPointMarkerType.Sprite\r\n ? new CustomPointMarkerStyle_1.CustomPointMarkerStyle(options.pointMarker)\r\n : new PointMarkerStyle_1.PointMarkerStyle(options.pointMarker);\r\n }\r\n this.opacity = (_c = options === null || options === void 0 ? void 0 : options.opacity) !== null && _c !== void 0 ? _c : this.opacity;\r\n }\r\n Object.defineProperty(BaseAnimationStyle.prototype, \"stroke\", {\r\n get: function () {\r\n return this.strokeProperty;\r\n },\r\n set: function (value) {\r\n this.strokeProperty = value;\r\n if (value) {\r\n this.strokeARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseAnimationStyle.prototype, \"strokeARGB\", {\r\n get: function () {\r\n return this.strokeARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BaseAnimationStyle;\r\n}());\r\nexports.BaseAnimationStyle = BaseAnimationStyle;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BasePointMarkerStyle = void 0;\r\nvar PointMarkerType_1 = require(\"../../../../types/PointMarkerType\");\r\nvar BasePointMarkerStyle = /** @class */ (function () {\r\n function BasePointMarkerStyle(options) {\r\n var _a, _b, _c;\r\n this.width = 0;\r\n this.height = 0;\r\n this.type = (_a = options === null || options === void 0 ? void 0 : options.type) !== null && _a !== void 0 ? _a : this.type;\r\n this.width = (_b = options === null || options === void 0 ? void 0 : options.width) !== null && _b !== void 0 ? _b : this.width;\r\n this.height = (_c = options === null || options === void 0 ? void 0 : options.height) !== null && _c !== void 0 ? _c : this.height;\r\n }\r\n Object.defineProperty(BasePointMarkerStyle.prototype, \"isCustomPointMarker\", {\r\n get: function () {\r\n return this.type === PointMarkerType_1.EPointMarkerType.Sprite;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BasePointMarkerStyle;\r\n}());\r\nexports.BasePointMarkerStyle = BasePointMarkerStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BubbleAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar BaseAnimationStyle_1 = require(\"./BaseAnimationStyle\");\r\nvar BubbleAnimation = /** @class */ (function (_super) {\r\n __extends(BubbleAnimation, _super);\r\n function BubbleAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Style;\r\n _this.duration = (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1000;\r\n _this.styles = (options === null || options === void 0 ? void 0 : options.styles) ? new BaseAnimationStyle_1.BaseAnimationStyle(options.styles) : _this.styles;\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeries;\r\n return _this;\r\n }\r\n return BubbleAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.BubbleAnimation = BubbleAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CandlestickAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar animationHelpers_1 = require(\"./animationHelpers\");\r\nvar CandlestickAnimationStyle_1 = require(\"./CandlestickAnimationStyle\");\r\nvar OhlcAnimation_1 = require(\"./OhlcAnimation\");\r\nvar CandlestickAnimation = /** @class */ (function (_super) {\r\n __extends(CandlestickAnimation, _super);\r\n function CandlestickAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Style;\r\n _this.duration = (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1000;\r\n _this.styles = (options === null || options === void 0 ? void 0 : options.styles) ? new CandlestickAnimationStyle_1.CandlestickAnimationStyle(options.styles) : _this.styles;\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeries;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n CandlestickAnimation.prototype.getSeriesStyle = function (rs) {\r\n var _a;\r\n if (rs.isStacked)\r\n return undefined;\r\n return new CandlestickAnimationStyle_1.CandlestickAnimationStyle({\r\n stroke: rs.stroke,\r\n strokeThickness: rs.strokeThickness,\r\n opacity: rs.opacity,\r\n strokeUp: rs.strokeUp,\r\n strokeDown: rs.strokeDown,\r\n brushUp: rs.brushUp,\r\n brushDown: rs.brushDown,\r\n pointMarker: (_a = rs.pointMarker) === null || _a === void 0 ? void 0 : _a.getPointMarkerStyle()\r\n });\r\n };\r\n /** @inheritDoc */\r\n CandlestickAnimation.prototype.updateSeriesProperties = function (renderableSeries, initialStyles, animationProgress) {\r\n _super.prototype.updateSeriesProperties.call(this, renderableSeries, initialStyles, animationProgress);\r\n if (this.isStyleAnimation) {\r\n var candlestickAnimationStyles = this.styles;\r\n if (candlestickAnimationStyles.brushUp !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.brushUpARGB, candlestickAnimationStyles.brushUpARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n renderableSeries.brushUp = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n if (candlestickAnimationStyles.brushDown !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.brushDownARGB, candlestickAnimationStyles.brushDownARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n renderableSeries.brushDown = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n }\r\n };\r\n return CandlestickAnimation;\r\n}(OhlcAnimation_1.OhlcAnimation));\r\nexports.CandlestickAnimation = CandlestickAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CandlestickAnimationStyle = void 0;\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar OhlcAnimationStyle_1 = require(\"./OhlcAnimationStyle\");\r\nvar CandlestickAnimationStyle = /** @class */ (function (_super) {\r\n __extends(CandlestickAnimationStyle, _super);\r\n function CandlestickAnimationStyle(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n _this.brushUp = (_a = options === null || options === void 0 ? void 0 : options.brushUp) !== null && _a !== void 0 ? _a : _this.brushUpProperty;\r\n _this.brushDown = (_b = options === null || options === void 0 ? void 0 : options.brushDown) !== null && _b !== void 0 ? _b : _this.brushDownProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(CandlestickAnimationStyle.prototype, \"brushUp\", {\r\n get: function () {\r\n return this.brushUpProperty;\r\n },\r\n set: function (value) {\r\n this.brushUpProperty = value;\r\n if (value) {\r\n this.brushUpARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickAnimationStyle.prototype, \"brushUpARGB\", {\r\n get: function () {\r\n return this.brushUpARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickAnimationStyle.prototype, \"brushDown\", {\r\n get: function () {\r\n return this.brushDownProperty;\r\n },\r\n set: function (value) {\r\n this.brushDownProperty = value;\r\n if (value) {\r\n this.brushDownARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CandlestickAnimationStyle.prototype, \"brushDownARGB\", {\r\n get: function () {\r\n return this.brushDownARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return CandlestickAnimationStyle;\r\n}(OhlcAnimationStyle_1.OhlcAnimationStyle));\r\nexports.CandlestickAnimationStyle = CandlestickAnimationStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ColumnAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar animationHelpers_1 = require(\"./animationHelpers\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar ColumnAnimationStyle_1 = require(\"./ColumnAnimationStyle\");\r\nvar PointMarkerStyle_1 = require(\"./PointMarkerStyle\");\r\nvar ColumnAnimation = /** @class */ (function (_super) {\r\n __extends(ColumnAnimation, _super);\r\n function ColumnAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Style;\r\n _this.duration = (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1000;\r\n _this.styles = (options === null || options === void 0 ? void 0 : options.styles) ? new ColumnAnimationStyle_1.ColumnAnimationStyle(options.styles) : _this.styles;\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeries;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n ColumnAnimation.prototype.getSeriesStyle = function (rs) {\r\n var _a, _b;\r\n if (rs.isStacked)\r\n return undefined;\r\n return new ColumnAnimationStyle_1.ColumnAnimationStyle({\r\n stroke: rs.stroke,\r\n strokeThickness: rs.strokeThickness,\r\n opacity: rs.opacity,\r\n pointMarker: (_b = (_a = rs.pointMarker) === null || _a === void 0 ? void 0 : _a.getPointMarkerStyle()) !== null && _b !== void 0 ? _b : new PointMarkerStyle_1.PointMarkerStyle(),\r\n fill: rs.fill,\r\n zeroLineY: rs.zeroLineY,\r\n dataPointWidth: rs.dataPointWidth\r\n });\r\n };\r\n /** @inheritDoc */\r\n ColumnAnimation.prototype.updateSeriesProperties = function (rs, initialStyles, animationProgress) {\r\n _super.prototype.updateSeriesProperties.call(this, rs, initialStyles, animationProgress);\r\n if (this.isStyleAnimation) {\r\n var animationStyles = this.styles;\r\n if (animationStyles.fill !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.fillARGB, animationStyles.fillARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n rs.fill = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n if (animationStyles.zeroLineY !== undefined) {\r\n rs.zeroLineY = animationHelpers_1.animationHelpers.interpolateNumber(initialStyles.zeroLineY, animationStyles.zeroLineY, animationProgress);\r\n }\r\n if (animationStyles.dataPointWidth !== undefined) {\r\n rs.dataPointWidth = animationHelpers_1.animationHelpers.interpolateNumber(initialStyles.dataPointWidth, animationStyles.dataPointWidth, animationProgress);\r\n }\r\n }\r\n };\r\n return ColumnAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.ColumnAnimation = ColumnAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ColumnAnimationStyle = void 0;\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar BaseAnimationStyle_1 = require(\"./BaseAnimationStyle\");\r\nvar ColumnAnimationStyle = /** @class */ (function (_super) {\r\n __extends(ColumnAnimationStyle, _super);\r\n function ColumnAnimationStyle(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.fill = (_a = options === null || options === void 0 ? void 0 : options.fill) !== null && _a !== void 0 ? _a : _this.fillProperty;\r\n _this.zeroLineY = (_b = options === null || options === void 0 ? void 0 : options.zeroLineY) !== null && _b !== void 0 ? _b : _this.zeroLineY;\r\n _this.dataPointWidth = (_c = options === null || options === void 0 ? void 0 : options.dataPointWidth) !== null && _c !== void 0 ? _c : _this.dataPointWidth;\r\n return _this;\r\n }\r\n Object.defineProperty(ColumnAnimationStyle.prototype, \"fill\", {\r\n get: function () {\r\n return this.fillProperty;\r\n },\r\n set: function (value) {\r\n this.fillProperty = value;\r\n if (value) {\r\n this.fillARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ColumnAnimationStyle.prototype, \"fillARGB\", {\r\n get: function () {\r\n return this.fillARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ColumnAnimationStyle;\r\n}(BaseAnimationStyle_1.BaseAnimationStyle));\r\nexports.ColumnAnimationStyle = ColumnAnimationStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CustomPointMarkerStyle = void 0;\r\nvar BasePointMarkerStyle_1 = require(\"./BasePointMarkerStyle\");\r\nvar CustomPointMarkerStyle = /** @class */ (function (_super) {\r\n __extends(CustomPointMarkerStyle, _super);\r\n function CustomPointMarkerStyle(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n _this.image = (_a = options === null || options === void 0 ? void 0 : options.image) !== null && _a !== void 0 ? _a : _this.image;\r\n return _this;\r\n }\r\n return CustomPointMarkerStyle;\r\n}(BasePointMarkerStyle_1.BasePointMarkerStyle));\r\nexports.CustomPointMarkerStyle = CustomPointMarkerStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FadeAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar FadeAnimation = /** @class */ (function (_super) {\r\n __extends(FadeAnimation, _super);\r\n function FadeAnimation(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Fade;\r\n _this.isFadeEffectAnimation = (_a = options === null || options === void 0 ? void 0 : options.fadeEffect) !== null && _a !== void 0 ? _a : true;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n FadeAnimation.prototype.calculateAnimationValues = function (wasmContext, originalValues, animationValues, progress, noZeroLine) {\r\n if (noZeroLine === void 0) { noZeroLine = false; }\r\n wasmContext.SCRTAnimationHelperFade(originalValues, progress, animationValues);\r\n };\r\n return FadeAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.FadeAnimation = FadeAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LineAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar BaseAnimationStyle_1 = require(\"./BaseAnimationStyle\");\r\nvar LineAnimation = /** @class */ (function (_super) {\r\n __extends(LineAnimation, _super);\r\n function LineAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Style;\r\n _this.duration = (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1000;\r\n _this.styles = (options === null || options === void 0 ? void 0 : options.styles) ? new BaseAnimationStyle_1.BaseAnimationStyle(options.styles) : _this.styles;\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeries;\r\n return _this;\r\n }\r\n return LineAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.LineAnimation = LineAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MountainAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar animationHelpers_1 = require(\"./animationHelpers\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar MountainAnimationStyle_1 = require(\"./MountainAnimationStyle\");\r\nvar PointMarkerStyle_1 = require(\"./PointMarkerStyle\");\r\nvar MountainAnimation = /** @class */ (function (_super) {\r\n __extends(MountainAnimation, _super);\r\n function MountainAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Style;\r\n _this.duration = (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1000;\r\n _this.styles = (options === null || options === void 0 ? void 0 : options.styles) ? new MountainAnimationStyle_1.MountainAnimationStyle(options.styles) : _this.styles;\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeries;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n MountainAnimation.prototype.getSeriesStyle = function (rs) {\r\n var _a, _b;\r\n if (rs.isStacked)\r\n return undefined;\r\n return new MountainAnimationStyle_1.MountainAnimationStyle({\r\n stroke: rs.stroke,\r\n strokeThickness: rs.strokeThickness,\r\n opacity: rs.opacity,\r\n pointMarker: (_b = (_a = rs.pointMarker) === null || _a === void 0 ? void 0 : _a.getPointMarkerStyle()) !== null && _b !== void 0 ? _b : new PointMarkerStyle_1.PointMarkerStyle(),\r\n fill: rs.fill,\r\n zeroLineY: rs.zeroLineY\r\n });\r\n };\r\n /** @inheritDoc */\r\n MountainAnimation.prototype.updateSeriesProperties = function (rs, initialStyles, animationProgress) {\r\n _super.prototype.updateSeriesProperties.call(this, rs, initialStyles, animationProgress);\r\n if (this.isStyleAnimation) {\r\n var animationStyles = this.styles;\r\n if (animationStyles.fill !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.fillARGB, animationStyles.fillARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n rs.fill = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n if (animationStyles.zeroLineY !== undefined) {\r\n rs.zeroLineY = animationHelpers_1.animationHelpers.interpolateNumber(initialStyles.zeroLineY, animationStyles.zeroLineY, animationProgress);\r\n }\r\n }\r\n };\r\n return MountainAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.MountainAnimation = MountainAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MountainAnimationStyle = void 0;\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar BaseAnimationStyle_1 = require(\"./BaseAnimationStyle\");\r\nvar MountainAnimationStyle = /** @class */ (function (_super) {\r\n __extends(MountainAnimationStyle, _super);\r\n function MountainAnimationStyle(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n _this.fill = (_a = options === null || options === void 0 ? void 0 : options.fill) !== null && _a !== void 0 ? _a : _this.fillProperty;\r\n _this.zeroLineY = (_b = options === null || options === void 0 ? void 0 : options.zeroLineY) !== null && _b !== void 0 ? _b : _this.zeroLineY;\r\n return _this;\r\n }\r\n Object.defineProperty(MountainAnimationStyle.prototype, \"fill\", {\r\n get: function () {\r\n return this.fillProperty;\r\n },\r\n set: function (value) {\r\n this.fillProperty = value;\r\n if (value) {\r\n this.fillARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(MountainAnimationStyle.prototype, \"fillARGB\", {\r\n get: function () {\r\n return this.fillARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return MountainAnimationStyle;\r\n}(BaseAnimationStyle_1.BaseAnimationStyle));\r\nexports.MountainAnimationStyle = MountainAnimationStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar animationHelpers_1 = require(\"./animationHelpers\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar OhlcAnimationStyle_1 = require(\"./OhlcAnimationStyle\");\r\nvar OhlcAnimation = /** @class */ (function (_super) {\r\n __extends(OhlcAnimation, _super);\r\n function OhlcAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Style;\r\n _this.duration = (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1000;\r\n _this.styles = (options === null || options === void 0 ? void 0 : options.styles) ? new OhlcAnimationStyle_1.OhlcAnimationStyle(options.styles) : _this.styles;\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeries;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n OhlcAnimation.prototype.getSeriesStyle = function (rs) {\r\n var _a;\r\n if (rs.isStacked)\r\n return undefined;\r\n return new OhlcAnimationStyle_1.OhlcAnimationStyle({\r\n stroke: rs.stroke,\r\n strokeThickness: rs.strokeThickness,\r\n opacity: rs.opacity,\r\n strokeUp: rs.strokeUp,\r\n strokeDown: rs.strokeDown,\r\n dataPointWidth: rs.dataPointWidth,\r\n pointMarker: (_a = rs.pointMarker) === null || _a === void 0 ? void 0 : _a.getPointMarkerStyle()\r\n });\r\n };\r\n /** @inheritDoc */\r\n OhlcAnimation.prototype.updateSeriesProperties = function (rs, initialStyles, animationProgress) {\r\n _super.prototype.updateSeriesProperties.call(this, rs, initialStyles, animationProgress);\r\n if (this.isStyleAnimation) {\r\n var ohlcAnimationStyles = this.styles;\r\n if (ohlcAnimationStyles.strokeUp !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.strokeUpARGB, ohlcAnimationStyles.strokeUpARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n rs.strokeUp = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n if (ohlcAnimationStyles.strokeDown !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.strokeDownARGB, ohlcAnimationStyles.strokeDownARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n rs.strokeDown = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n if (ohlcAnimationStyles.dataPointWidth !== undefined) {\r\n rs.dataPointWidth = animationHelpers_1.animationHelpers.interpolateNumber(initialStyles.dataPointWidth, ohlcAnimationStyles.dataPointWidth, animationProgress);\r\n }\r\n }\r\n };\r\n return OhlcAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.OhlcAnimation = OhlcAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcAnimationStyle = void 0;\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar BaseAnimationStyle_1 = require(\"./BaseAnimationStyle\");\r\nvar OhlcAnimationStyle = /** @class */ (function (_super) {\r\n __extends(OhlcAnimationStyle, _super);\r\n function OhlcAnimationStyle(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.strokeUp = (_a = options === null || options === void 0 ? void 0 : options.strokeUp) !== null && _a !== void 0 ? _a : _this.strokeUpProperty;\r\n _this.strokeDown = (_b = options === null || options === void 0 ? void 0 : options.strokeDown) !== null && _b !== void 0 ? _b : _this.strokeDownProperty;\r\n _this.dataPointWidth = (_c = options === null || options === void 0 ? void 0 : options.dataPointWidth) !== null && _c !== void 0 ? _c : _this.dataPointWidth;\r\n return _this;\r\n }\r\n Object.defineProperty(OhlcAnimationStyle.prototype, \"strokeUp\", {\r\n get: function () {\r\n return this.strokeUpProperty;\r\n },\r\n set: function (value) {\r\n this.strokeUpProperty = value;\r\n if (value) {\r\n this.strokeUpARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcAnimationStyle.prototype, \"strokeUpARGB\", {\r\n get: function () {\r\n return this.strokeUpARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcAnimationStyle.prototype, \"strokeDown\", {\r\n get: function () {\r\n return this.strokeDownProperty;\r\n },\r\n set: function (value) {\r\n this.strokeDownProperty = value;\r\n if (value) {\r\n this.strokeDownARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OhlcAnimationStyle.prototype, \"strokeDownARGB\", {\r\n get: function () {\r\n return this.strokeDownARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return OhlcAnimationStyle;\r\n}(BaseAnimationStyle_1.BaseAnimationStyle));\r\nexports.OhlcAnimationStyle = OhlcAnimationStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PointMarkerStyle = void 0;\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar BasePointMarkerStyle_1 = require(\"./BasePointMarkerStyle\");\r\nvar PointMarkerStyle = /** @class */ (function (_super) {\r\n __extends(PointMarkerStyle, _super);\r\n function PointMarkerStyle(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.strokeThickness = 0;\r\n _this.strokeThickness = (_a = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _a !== void 0 ? _a : _this.strokeThickness;\r\n _this.stroke = (_b = options === null || options === void 0 ? void 0 : options.stroke) !== null && _b !== void 0 ? _b : \"#ffffff00\";\r\n _this.fill = (_c = options === null || options === void 0 ? void 0 : options.fill) !== null && _c !== void 0 ? _c : \"#ffffff00\";\r\n return _this;\r\n }\r\n Object.defineProperty(PointMarkerStyle.prototype, \"stroke\", {\r\n get: function () {\r\n return this.strokeProperty;\r\n },\r\n set: function (value) {\r\n this.strokeProperty = value;\r\n if (value) {\r\n this.strokeARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PointMarkerStyle.prototype, \"strokeARGB\", {\r\n get: function () {\r\n return this.strokeARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PointMarkerStyle.prototype, \"fill\", {\r\n get: function () {\r\n return this.fillProperty;\r\n },\r\n set: function (value) {\r\n this.fillProperty = value;\r\n if (value) {\r\n this.fillARGBProperty = (0, parseColor_1.parseColorToUIntArgb)(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PointMarkerStyle.prototype, \"fillARGB\", {\r\n get: function () {\r\n return this.fillARGBProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return PointMarkerStyle;\r\n}(BasePointMarkerStyle_1.BasePointMarkerStyle));\r\nexports.PointMarkerStyle = PointMarkerStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ScaleAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar ScaleAnimation = /** @class */ (function (_super) {\r\n __extends(ScaleAnimation, _super);\r\n function ScaleAnimation(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Scale;\r\n /**\r\n * The line from which the animation evolves\r\n */\r\n _this.zeroLine = 0;\r\n _this.isOnStartAnimation = true;\r\n _this.zeroLine = (_a = options === null || options === void 0 ? void 0 : options.zeroLine) !== null && _a !== void 0 ? _a : _this.zeroLine;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n ScaleAnimation.prototype.calculateAnimationValues = function (wasmContext, originalValues, animationValues, progress, noZeroLine) {\r\n if (noZeroLine === void 0) { noZeroLine = false; }\r\n var zeroLine = noZeroLine ? 0 : this.zeroLine;\r\n wasmContext.SCRTAnimationHelperScale(originalValues, zeroLine, this.reverse ? 1 - progress : progress, animationValues);\r\n };\r\n ScaleAnimation.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n zeroLine: this.zeroLine\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return ScaleAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.ScaleAnimation = ScaleAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ScatterAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar BaseAnimationStyle_1 = require(\"./BaseAnimationStyle\");\r\nvar ScatterAnimation = /** @class */ (function (_super) {\r\n __extends(ScatterAnimation, _super);\r\n function ScatterAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Style;\r\n _this.duration = (_a = options === null || options === void 0 ? void 0 : options.duration) !== null && _a !== void 0 ? _a : 1000;\r\n _this.styles = (options === null || options === void 0 ? void 0 : options.styles) ? new BaseAnimationStyle_1.BaseAnimationStyle(options.styles) : _this.styles;\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeries;\r\n return _this;\r\n }\r\n return ScatterAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.ScatterAnimation = ScatterAnimation;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesAnimation = void 0;\r\nvar classFactory_1 = require(\"../../../../Builder/classFactory\");\r\nvar EasingFunctions_1 = require(\"../../../../Core/Animations/EasingFunctions\");\r\nvar BaseType_1 = require(\"../../../../types/BaseType\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar animationHelpers_1 = require(\"./animationHelpers\");\r\nvar BaseAnimationStyle_1 = require(\"./BaseAnimationStyle\");\r\nvar PointMarkerStyle_1 = require(\"./PointMarkerStyle\");\r\n/**\r\n * @summary Defines the base class for Renderable Series Animations in SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * An Animation defines the animation that should take place on the start up e.g. as a Wave, Sweep, Fade animation etc...\r\n */\r\nvar SeriesAnimation = /** @class */ (function () {\r\n function SeriesAnimation(options) {\r\n var _a, _b, _c, _d, _e;\r\n /**\r\n * The animation delay in ms\r\n */\r\n this.delay = 0;\r\n /**\r\n * The animation duration in ms\r\n */\r\n this.duration = 3000;\r\n /**\r\n * Sets the animation easing function\r\n */\r\n this.ease = EasingFunctions_1.easing.linear;\r\n /**\r\n * Enables fade effect animation\r\n */\r\n this.isFadeEffectAnimation = false;\r\n /**\r\n * Enables the animation for the effects like Wave, Sweep etc.\r\n */\r\n this.isOnStartAnimation = false;\r\n // used to track if registered types were used for function properties, so they can be serialized\r\n this.typeMap = new Map();\r\n this.delay = (_a = options === null || options === void 0 ? void 0 : options.delay) !== null && _a !== void 0 ? _a : this.delay;\r\n this.duration = (_b = options === null || options === void 0 ? void 0 : options.duration) !== null && _b !== void 0 ? _b : this.duration;\r\n this.isFadeEffectAnimation = (_c = options === null || options === void 0 ? void 0 : options.fadeEffect) !== null && _c !== void 0 ? _c : this.isFadeEffectAnimation;\r\n if ((options === null || options === void 0 ? void 0 : options.ease) && typeof options.ease === \"string\") {\r\n options.ease = EasingFunctions_1.easing[options.ease];\r\n }\r\n this.ease = (_d = options === null || options === void 0 ? void 0 : options.ease) !== null && _d !== void 0 ? _d : this.ease;\r\n this.reverse = (_e = options === null || options === void 0 ? void 0 : options.reverse) !== null && _e !== void 0 ? _e : this.reverse;\r\n if (options === null || options === void 0 ? void 0 : options.onCompleted) {\r\n if (typeof options.onCompleted === \"string\") {\r\n this.typeMap.set(\"onCompleted\", options.onCompleted);\r\n var onCompleted = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onCompleted);\r\n this.onCompleted = onCompleted;\r\n }\r\n else {\r\n this.onCompleted = options.onCompleted;\r\n }\r\n }\r\n }\r\n /** Convert the object to a definition that can be serialized to JSON, or used directly with the builder api */\r\n SeriesAnimation.prototype.toJSON = function () {\r\n var options = {\r\n delay: this.delay,\r\n duration: this.duration,\r\n ease: this.ease.name,\r\n fadeEffect: this.isFadeEffectAnimation,\r\n reverse: this.reverse,\r\n onCompleted: this.typeMap.get(\"onCompleted\")\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n /**\r\n * Runs on start up animation to update animation vectors\r\n * @param wasmContext\r\n * @param originalValues - original values\r\n * @param animationValues - calculated values used for the animation\r\n * @param progress Current animation progress\r\n * @param noZeroLine Sets zeroLine = 0, is used for XyzDataSeries\r\n */\r\n SeriesAnimation.prototype.calculateAnimationValues = function (wasmContext, originalValues, animationValues, progress, noZeroLine) {\r\n if (noZeroLine === void 0) { noZeroLine = false; }\r\n // TODO: override in child class\r\n };\r\n /**\r\n * Runs for data animation to update animation vectors\r\n * @param wasmContext\r\n * @param initialValues The initial vector\r\n * @param finalValues The final vector\r\n * @param interpolatedValues The vector which will be updated with interpolated values\r\n * @param progress Current animation progress\r\n */\r\n SeriesAnimation.prototype.calculateDataSeriesAnimationValues = function (wasmContext, initialValues, finalValues, interpolatedValues, progress) {\r\n var size = initialValues.size();\r\n if (size !== finalValues.size()) {\r\n throw new Error(\"DoubleVectors with initialValues and finalValues must have the same length\");\r\n }\r\n // @ts-ignore\r\n if (typeof interpolatedValues.getRaw !== \"function\") {\r\n interpolatedValues.resize(size, 0);\r\n }\r\n for (var i = 0; i < size; i++) {\r\n interpolatedValues.set(i, animationHelpers_1.animationHelpers.interpolateNumber(initialValues.get(i), finalValues.get(i), progress));\r\n }\r\n };\r\n /**\r\n * Returns {@link BaseAnimationStyle} object which is being used to create initial styles\r\n * @param renderableSeries The renderable series\r\n */\r\n SeriesAnimation.prototype.getSeriesStyle = function (renderableSeries) {\r\n var _a, _b;\r\n var rs = renderableSeries;\r\n if (rs.isStacked)\r\n return undefined;\r\n return new BaseAnimationStyle_1.BaseAnimationStyle({\r\n stroke: rs.stroke,\r\n strokeThickness: rs.strokeThickness,\r\n opacity: rs.opacity,\r\n pointMarker: (_b = (_a = rs.pointMarker) === null || _a === void 0 ? void 0 : _a.getPointMarkerStyle()) !== null && _b !== void 0 ? _b : new PointMarkerStyle_1.PointMarkerStyle()\r\n });\r\n };\r\n /**\r\n * Updates properties of {@link IRenderableSeries}\r\n * @param renderableSeries The renderable series to be animated\r\n * @param initialStyles The initial styles\r\n * @param animationProgress The animation progress, should be between 0 and 1\r\n */\r\n SeriesAnimation.prototype.updateSeriesProperties = function (renderableSeries, initialStyles, animationProgress) {\r\n var _a, _b, _c, _d, _e;\r\n if (this.reverse) {\r\n animationProgress = 1 - animationProgress;\r\n }\r\n var rs = renderableSeries;\r\n var pointMarker = rs.pointMarker;\r\n if (this.isStyleAnimation) {\r\n if (this.styles.strokeThickness !== undefined) {\r\n var startThickness = initialStyles === null || initialStyles === void 0 ? void 0 : initialStyles.strokeThickness;\r\n var endThickness = this.styles.strokeThickness;\r\n rs.strokeThickness = startThickness + (endThickness - startThickness) * animationProgress;\r\n }\r\n if (this.styles.stroke !== undefined) {\r\n var newColor = animationHelpers_1.animationHelpers.interpolateColor(initialStyles.strokeARGB, this.styles.strokeARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n rs.stroke = (0, parseColor_1.parseArgbToHtmlColor)(newColor);\r\n }\r\n if (this.styles.opacity !== undefined) {\r\n rs.opacity = animationHelpers_1.animationHelpers.interpolateNumber(initialStyles.opacity, this.styles.opacity, animationProgress);\r\n }\r\n if (this.styles.pointMarker !== undefined) {\r\n rs.pointMarker.suspendUpdates();\r\n var initialWidth = (_b = (_a = initialStyles.pointMarker) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0;\r\n var initialHeight = (_d = (_c = initialStyles.pointMarker) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0;\r\n rs.pointMarker.width = animationHelpers_1.animationHelpers.interpolateNumber(initialWidth, this.styles.pointMarker.width, animationProgress);\r\n rs.pointMarker.height = animationHelpers_1.animationHelpers.interpolateNumber(initialHeight, this.styles.pointMarker.height, animationProgress);\r\n if (!this.styles.pointMarker.isCustomPointMarker) {\r\n var initialPointMarkerStyle = initialStyles.pointMarker;\r\n var endPointMarkerStyle = this.styles.pointMarker;\r\n var initialStrokeThickness = (_e = initialPointMarkerStyle === null || initialPointMarkerStyle === void 0 ? void 0 : initialPointMarkerStyle.strokeThickness) !== null && _e !== void 0 ? _e : 0;\r\n rs.pointMarker.strokeThickness = animationHelpers_1.animationHelpers.interpolateNumber(initialStrokeThickness, endPointMarkerStyle.strokeThickness, animationProgress);\r\n var fill = animationHelpers_1.animationHelpers.interpolateColor(initialPointMarkerStyle.fillARGB, endPointMarkerStyle.fillARGB, animationProgress);\r\n // TODO optimise to use ARGB color\r\n rs.pointMarker.fill = (0, parseColor_1.parseArgbToHtmlColor)(fill);\r\n var stroke = animationHelpers_1.animationHelpers.interpolateColor(initialPointMarkerStyle.strokeARGB, endPointMarkerStyle.strokeARGB, animationProgress);\r\n rs.pointMarker.stroke = (0, parseColor_1.parseArgbToHtmlColor)(stroke);\r\n }\r\n rs.pointMarker.resumeUpdates();\r\n }\r\n }\r\n if (this.isFadeEffectAnimation) {\r\n var currentOpacity = initialStyles.opacity * animationProgress;\r\n rs.opacity = currentOpacity;\r\n if (pointMarker) {\r\n pointMarker.opacity = currentOpacity;\r\n }\r\n }\r\n };\r\n Object.defineProperty(SeriesAnimation.prototype, \"isStyleAnimation\", {\r\n /**\r\n * Return flag if it is styles animation\r\n */\r\n get: function () {\r\n return !!this.styles;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SeriesAnimation.prototype, \"isDataSeriesAnimation\", {\r\n /**\r\n * Return flag if it is dataSeries animation\r\n */\r\n get: function () {\r\n return !!this.dataSeries;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return SeriesAnimation;\r\n}());\r\nexports.SeriesAnimation = SeriesAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SweepAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar SweepAnimation = /** @class */ (function (_super) {\r\n __extends(SweepAnimation, _super);\r\n function SweepAnimation(options) {\r\n var _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Sweep;\r\n _this.isOnStartAnimation = true;\r\n return _this;\r\n }\r\n SweepAnimation.prototype.updateSeriesProperties = function (renderableSeries, initialStyles, animationProgress) {\r\n _super.prototype.updateSeriesProperties.call(this, renderableSeries, initialStyles, animationProgress);\r\n if (animationProgress === 0) {\r\n renderableSeries.dataSeries.containsNaN = true;\r\n }\r\n else if (animationProgress === 1) {\r\n renderableSeries.dataSeries.containsNaN = false;\r\n }\r\n };\r\n /** @inheritDoc */\r\n SweepAnimation.prototype.calculateAnimationValues = function (wasmContext, originalValues, animationValues, progress, noZeroLine) {\r\n if (noZeroLine === void 0) { noZeroLine = false; }\r\n wasmContext.SCRTAnimationHelperSweep(originalValues, this.reverse ? 1 - progress : progress, animationValues);\r\n };\r\n return SweepAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.SweepAnimation = SweepAnimation;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WaveAnimation = void 0;\r\nvar AnimationType_1 = require(\"../../../../types/AnimationType\");\r\nvar SeriesAnimation_1 = require(\"./SeriesAnimation\");\r\nvar WaveAnimation = /** @class */ (function (_super) {\r\n __extends(WaveAnimation, _super);\r\n function WaveAnimation(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = AnimationType_1.EAnimationType.Wave;\r\n /**\r\n * The value that specifies a relative duration of a point animation as a fraction of an overall animation\r\n */\r\n _this.pointDurationFraction = 0.2;\r\n /**\r\n * The line from which the animation evolves\r\n */\r\n _this.zeroLine = 0;\r\n _this.isOnStartAnimation = true;\r\n _this.pointDurationFraction = (_a = options === null || options === void 0 ? void 0 : options.pointDurationFraction) !== null && _a !== void 0 ? _a : _this.pointDurationFraction;\r\n _this.zeroLine = (_b = options === null || options === void 0 ? void 0 : options.zeroLine) !== null && _b !== void 0 ? _b : _this.zeroLine;\r\n return _this;\r\n }\r\n WaveAnimation.prototype.updateSeriesProperties = function (renderableSeries, initialStyles, animationProgress) {\r\n _super.prototype.updateSeriesProperties.call(this, renderableSeries, initialStyles, animationProgress);\r\n if (animationProgress === 0) {\r\n renderableSeries.dataSeries.containsNaN = true;\r\n }\r\n else if (animationProgress === 1) {\r\n renderableSeries.dataSeries.containsNaN = false;\r\n }\r\n };\r\n /** @inheritDoc */\r\n WaveAnimation.prototype.calculateAnimationValues = function (wasmContext, originalValues, animationValues, progress, noZeroLine) {\r\n if (noZeroLine === void 0) { noZeroLine = false; }\r\n var pointDurationFraction = this.pointDurationFraction;\r\n var zeroLine = noZeroLine ? 0 : this.zeroLine;\r\n wasmContext.SCRTAnimationHelperWave(originalValues, pointDurationFraction, zeroLine, this.reverse ? 1 - progress : progress, animationValues);\r\n };\r\n WaveAnimation.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n zeroLine: this.zeroLine,\r\n pointDurationFraction: this.pointDurationFraction\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return WaveAnimation;\r\n}(SeriesAnimation_1.SeriesAnimation));\r\nexports.WaveAnimation = WaveAnimation;\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.animationHelpers = void 0;\r\nvar AnimationFiniteStateMachine_1 = require(\"../../../../Core/Animations/AnimationFiniteStateMachine\");\r\nvar PointMarkerType_1 = require(\"../../../../types/PointMarkerType\");\r\nvar colorUtil_1 = require(\"../../../../utils/colorUtil\");\r\nvar CrossPointMarker_1 = require(\"../../PointMarkers/CrossPointMarker\");\r\nvar EllipsePointMarker_1 = require(\"../../PointMarkers/EllipsePointMarker\");\r\nvar SpritePointMarker_1 = require(\"../../PointMarkers/SpritePointMarker\");\r\nvar SquarePointMarker_1 = require(\"../../PointMarkers/SquarePointMarker\");\r\nvar TrianglePointMarker_1 = require(\"../../PointMarkers/TrianglePointMarker\");\r\nvar XPointMarker_1 = require(\"../../PointMarkers/XPointMarker\");\r\n/**\r\n * Checks if can draw, is used not to draw when {@link BaseAnimation} has delay\r\n * @param animationFSM\r\n */\r\nvar checkCanDraw = function (animationFSM) {\r\n return animationFSM ? animationFSM.is([AnimationFiniteStateMachine_1.EAnimationState.Running, AnimationFiniteStateMachine_1.EAnimationState.Completed]) : true;\r\n};\r\n/**\r\n * Checks if the animation is running\r\n * @param animationQueue The animation queue\r\n * @param animationFSM The animation finate state machine\r\n */\r\nvar checkIsAnimationRunning = function (animationQueue, animationFSM) {\r\n if (animationQueue.length > 0) {\r\n return true;\r\n }\r\n if (!animationFSM) {\r\n return false;\r\n }\r\n return !animationFSM.is([AnimationFiniteStateMachine_1.EAnimationState.Completed]);\r\n};\r\n/**\r\n * Runs update for the animation\r\n * @param animationFSM\r\n * @param timeElapsed\r\n * @param beforeAnimationStart\r\n * @param afterAnimationComplete\r\n * @param updateAnimationProperties\r\n */\r\nvar animationUpdate = function (animationFSM, timeElapsed, beforeAnimationStart, afterAnimationComplete, updateAnimationProperties) {\r\n var transition = animationFSM.update(timeElapsed);\r\n if (animationFSM.animation.isOnStartAnimation && transition === AnimationFiniteStateMachine_1.EAnimationStateTransition.InitialState_Delayed) {\r\n beforeAnimationStart();\r\n updateAnimationProperties(0, animationFSM);\r\n }\r\n if (transition === AnimationFiniteStateMachine_1.EAnimationStateTransition.InitialState_Running ||\r\n (!animationFSM.animation.isOnStartAnimation && transition === AnimationFiniteStateMachine_1.EAnimationStateTransition.Delayed_Running)) {\r\n beforeAnimationStart();\r\n }\r\n if (animationFSM.is([AnimationFiniteStateMachine_1.EAnimationState.Running, AnimationFiniteStateMachine_1.EAnimationState.Completed])) {\r\n updateAnimationProperties(animationFSM.animationProgress, animationFSM);\r\n }\r\n if ([AnimationFiniteStateMachine_1.EAnimationStateTransition.Running_Completed, AnimationFiniteStateMachine_1.EAnimationStateTransition.InitialState_Completed].includes(transition)) {\r\n if (animationFSM.animation.onCompleted)\r\n animationFSM.animation.onCompleted();\r\n }\r\n if (transition === AnimationFiniteStateMachine_1.EAnimationStateTransition.Running_Completed) {\r\n afterAnimationComplete();\r\n }\r\n};\r\n/**\r\n * Creates the point marker\r\n * @param wasmContext\r\n * @param pointMarkerStyle\r\n */\r\nvar createPointMarker = function (wasmContext, pointMarkerStyle) {\r\n if (!pointMarkerStyle)\r\n return undefined;\r\n if (pointMarkerStyle.type === PointMarkerType_1.EPointMarkerType.Sprite) {\r\n var _a = pointMarkerStyle, type = _a.type, options = __rest(_a, [\"type\"]);\r\n return new SpritePointMarker_1.SpritePointMarker(wasmContext, __assign({}, options));\r\n }\r\n else {\r\n var _b = pointMarkerStyle, type = _b.type, options = __rest(_b, [\"type\"]);\r\n switch (type) {\r\n case PointMarkerType_1.EPointMarkerType.Cross:\r\n return new CrossPointMarker_1.CrossPointMarker(wasmContext, __assign({}, options));\r\n case PointMarkerType_1.EPointMarkerType.Ellipse:\r\n return new EllipsePointMarker_1.EllipsePointMarker(wasmContext, __assign({}, options));\r\n case PointMarkerType_1.EPointMarkerType.X:\r\n return new XPointMarker_1.XPointMarker(wasmContext, __assign({}, options));\r\n case PointMarkerType_1.EPointMarkerType.Square:\r\n return new SquarePointMarker_1.SquarePointMarker(wasmContext, __assign({}, options));\r\n case PointMarkerType_1.EPointMarkerType.Triangle:\r\n return new TrianglePointMarker_1.TrianglePointMarker(wasmContext, __assign({}, options));\r\n }\r\n }\r\n return undefined;\r\n};\r\n/**\r\n * Interpolates numbers\r\n * @param from\r\n * @param to\r\n * @param progress\r\n */\r\nvar interpolateNumber = function (from, to, progress) {\r\n if (progress < 0)\r\n return from;\r\n if (progress > 1)\r\n return to;\r\n return from + (to - from) * progress;\r\n};\r\n/**\r\n * Interpolates colors\r\n * @param from\r\n * @param to\r\n * @param progress\r\n */\r\nvar interpolateColor = function (from, to, progress) {\r\n if (progress < 0)\r\n return from;\r\n if (progress > 1)\r\n return to;\r\n return (0, colorUtil_1.uintArgbColorLerp)(from, to, progress);\r\n};\r\n/** @deprecated Use copyDoubleVector instead */\r\nvar copyVector = function (sourceVector, targetVector) {\r\n var size = sourceVector.size();\r\n targetVector.resize(size, 0);\r\n for (var i = 0; i < size; i++) {\r\n targetVector.set(i, sourceVector.get(i));\r\n }\r\n};\r\nexports.animationHelpers = {\r\n checkCanDraw: checkCanDraw,\r\n checkIsAnimationRunning: checkIsAnimationRunning,\r\n animationUpdate: animationUpdate,\r\n createPointMarker: createPointMarker,\r\n interpolateNumber: interpolateNumber,\r\n interpolateColor: interpolateColor,\r\n copyVector: copyVector\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseBandRenderableSeries = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar XyyPointSeriesResampled_1 = require(\"../../Model/PointSeries/XyyPointSeriesResampled\");\r\nvar XyyPointSeriesWrapped_1 = require(\"../../Model/PointSeries/XyyPointSeriesWrapped\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar BandSeriesDataLabelProvider_1 = require(\"./DataLabels/BandSeriesDataLabelProvider\");\r\nvar BandSeriesDrawingProvider_1 = require(\"./DrawingProviders/BandSeriesDrawingProvider\");\r\nvar PointMarkerDrawingProvider_1 = require(\"./DrawingProviders/PointMarkerDrawingProvider\");\r\nvar BandSeriesHitTestProvider_1 = require(\"./HitTest/BandSeriesHitTestProvider\");\r\nvar BaseBandRenderableSeries = /** @class */ (function (_super) {\r\n __extends(BaseBandRenderableSeries, _super);\r\n function BaseBandRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.stroke = (_a = options === null || options === void 0 ? void 0 : options.stroke) !== null && _a !== void 0 ? _a : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.downBandSeriesLineColor;\r\n _this.strokeY1Property = (_b = options === null || options === void 0 ? void 0 : options.strokeY1) !== null && _b !== void 0 ? _b : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.upBandSeriesLineColor;\r\n _this.fillProperty = (_c = options === null || options === void 0 ? void 0 : options.fill) !== null && _c !== void 0 ? _c : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.upBandSeriesFillColor;\r\n _this.fillY1Property = (_d = options === null || options === void 0 ? void 0 : options.fillY1) !== null && _d !== void 0 ? _d : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.downBandSeriesFillColor;\r\n _this.fillLinearGradient = options === null || options === void 0 ? void 0 : options.fillLinearGradient;\r\n _this.fillLinearGradientY1 = options === null || options === void 0 ? void 0 : options.fillLinearGradientY1;\r\n _this.strokeY1DashArrayProperty = options === null || options === void 0 ? void 0 : options.strokeY1DashArray;\r\n _this.strokeDashArrayProperty = options === null || options === void 0 ? void 0 : options.strokeDashArray;\r\n _this.drawingProviders.push(new BandSeriesDrawingProvider_1.BandSeriesDrawingProvider(webAssemblyContext, _this));\r\n _this.drawingProviders.push(new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this));\r\n _this.drawingProviders.push(new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this, function (ps) { return ps.y1Values; }, function (rs) { return rs.y1SplineValues; }));\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new BandSeriesDataLabelProvider_1.BandSeriesDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseBandRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.stroke === previousThemeProvider.downBandSeriesLineColor) {\r\n this.stroke = themeProvider.downBandSeriesLineColor;\r\n }\r\n if (this.strokeY1 === previousThemeProvider.upBandSeriesLineColor) {\r\n this.strokeY1 = themeProvider.upBandSeriesLineColor;\r\n }\r\n if (this.fill === previousThemeProvider.upBandSeriesFillColor) {\r\n this.fill = themeProvider.upBandSeriesFillColor;\r\n }\r\n if (this.fillY1 === previousThemeProvider.downBandSeriesFillColor) {\r\n this.fillY1 = themeProvider.downBandSeriesFillColor;\r\n }\r\n };\r\n Object.defineProperty(BaseBandRenderableSeries.prototype, \"fill\", {\r\n /**\r\n * Gets or sets the fill color for when Y is less than Y as an HTML Color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.fillProperty);\r\n },\r\n /**\r\n * Gets or sets the fill color for when Y is less than Y1 as an HTML Color code\r\n */\r\n set: function (fill) {\r\n if (this.fillProperty !== fill) {\r\n this.fillProperty = fill;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseBandRenderableSeries.prototype, \"strokeY1\", {\r\n /**\r\n * Gets or sets the stroke color the Y1 values in the data-series.\r\n * See associated {@link XyyDataSeries} for further information\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.strokeY1Property);\r\n },\r\n /**\r\n * Gets or sets the stroke color the Y1 values in the data-series.\r\n * See associated {@link XyyDataSeries} for further information\r\n */\r\n set: function (strokeY1) {\r\n if (this.strokeY1Property !== strokeY1) {\r\n this.strokeY1Property = strokeY1;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_Y1);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseBandRenderableSeries.prototype, \"fillY1\", {\r\n /**\r\n * Gets or sets the fill color for when Y1 is less than Y as an HTML Color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.fillY1Property);\r\n },\r\n /**\r\n * Gets or sets the fill color for when Y1 is less than Y as an HTML Color code\r\n */\r\n set: function (fillY1) {\r\n if (this.fillY1Property !== fillY1) {\r\n this.fillY1Property = fillY1;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL_Y1);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseBandRenderableSeries.prototype, \"strokeDashArray\", {\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the Y0 line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n get: function () {\r\n return this.strokeDashArrayProperty;\r\n },\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the Y0 line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n set: function (strokeDashArray) {\r\n this.strokeDashArrayProperty = strokeDashArray;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_DASH_ARRAY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseBandRenderableSeries.prototype, \"strokeY1DashArray\", {\r\n /**\r\n * The strokeY1DashArray defines the stroke or dash pattern for the Y1 line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n get: function () {\r\n return this.strokeY1DashArrayProperty;\r\n },\r\n /**\r\n * The strokeY1DashArray defines the stroke or dash pattern for the Y1 line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n set: function (strokeY1DashArray) {\r\n this.strokeY1DashArrayProperty = strokeY1DashArray;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_Y1_DASH_ARRAY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseBandRenderableSeries.prototype, \"fillLinearGradient\", {\r\n /**\r\n * Gets or sets the fill as a gradient brush\r\n */\r\n get: function () {\r\n return this.fillLinearGradientProperty;\r\n },\r\n /**\r\n * Gets or sets the fill as a gradient brush\r\n */\r\n set: function (gradientBrushParams) {\r\n // We need this check, to prevent creating new Texture if we set the same value\r\n if (gradientBrushParams !== this.fillLinearGradientProperty) {\r\n this.fillLinearGradientProperty = gradientBrushParams;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL_LINEAR_GRADIENT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseBandRenderableSeries.prototype, \"fillLinearGradientY1\", {\r\n /**\r\n * Gets or sets the fill as a gradient brush\r\n */\r\n get: function () {\r\n return this.fillLinearGradientY1Property;\r\n },\r\n /**\r\n * Gets or sets the fill as a gradient brush\r\n */\r\n set: function (gradientBrushParams) {\r\n // We need this check, to prevent creating new Texture if we set the same value\r\n if (gradientBrushParams !== this.fillLinearGradientY1Property) {\r\n this.fillLinearGradientY1Property = gradientBrushParams;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL_LINEAR_GRADIENT_Y1);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns the {@link XyyDataSeries.getNativeY1Values} for the associated {@link dataSeries}\r\n */\r\n BaseBandRenderableSeries.prototype.getNativeY1Values = function () {\r\n return this.dataSeries.getNativeY1Values();\r\n };\r\n /** @inheritDoc */\r\n BaseBandRenderableSeries.prototype.delete = function () {\r\n this.xyyTempPointSeries = (0, Deleter_1.deleteSafe)(this.xyyTempPointSeries);\r\n _super.prototype.delete.call(this);\r\n };\r\n /** @inheritDoc */\r\n BaseBandRenderableSeries.prototype.toPointSeries = function (rp) {\r\n if (rp) {\r\n if (!this.xyyTempPointSeries) {\r\n this.xyyTempPointSeries = new XyyPointSeriesResampled_1.XyyPointSeriesResampled(this.webAssemblyContext, rp.xVisibleRange);\r\n }\r\n else {\r\n this.xyyTempPointSeries.xRange = rp.xVisibleRange;\r\n }\r\n if (!this.pointSeries) {\r\n this.pointSeries = new XyyPointSeriesResampled_1.XyyPointSeriesResampled(this.webAssemblyContext, rp.xVisibleRange);\r\n }\r\n else {\r\n this.pointSeries.xRange = rp.xVisibleRange;\r\n }\r\n var ps = this.pointSeries;\r\n var ds = this.dataSeries;\r\n var xValues = ds.getNativeXValues();\r\n var yValues = ds.getNativeYValues();\r\n var y1Values = ds.getNativeY1Values();\r\n var result = this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rp, xValues, yValues, this.xyyTempPointSeries.intIndexes, undefined, this.xyyTempPointSeries.xValues, this.xyyTempPointSeries.yValues, false);\r\n this.pointSeries.fifoStartIndex = result.OutputSplitIndex;\r\n var xySize = this.xyyTempPointSeries.intIndexes.size();\r\n this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rp, xValues, y1Values, this.xyyTempPointSeries.intIndexes, undefined, this.xyyTempPointSeries.xValues, this.xyyTempPointSeries.y1Values);\r\n // Because intIndexes vector is not cleared indexes for rpLow are appended at the end of rpHigh indexes\r\n var xy1Size = this.xyyTempPointSeries.intIndexes.size() - xySize;\r\n // We merge indexes excluding duplicates for Y and Y1 into one vector\r\n var mergedSize = this.resamplerHelper.mergeIndexes(this.xyyTempPointSeries.intIndexes, xySize, xy1Size, ps.intIndexes);\r\n // Clear the intIndexes as long as we do not need them any more\r\n this.xyyTempPointSeries.intIndexes.clear();\r\n if (rp.dataIsFifo) {\r\n ps.indexes.resizeFast(mergedSize);\r\n }\r\n else {\r\n ps.indexes.resizeFast(mergedSize + 1);\r\n }\r\n // Get values by indexes for Y and Y1 values\r\n this.resamplerHelper.copyValuesByIndexes(ps.intIndexes, xValues, yValues, y1Values, mergedSize, rp.isCategoryAxis, this.dataSeries.fifoSweeping, ps.indexes, ps.xValues, ps.yValues, ps.y1Values);\r\n // This is now done in the copy step above\r\n //ps.updateIndexes();\r\n ps.clearIntIndexes();\r\n // ps.debugOutputForUnitTests();\r\n return ps;\r\n }\r\n else {\r\n return new XyyPointSeriesWrapped_1.XyyPointSeriesWrapped(this.dataSeries);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseBandRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n fill: this.fill,\r\n fillY1: this.fillY1,\r\n strokeDashArray: this.strokeDashArray,\r\n strokeY1: this.strokeY1,\r\n strokeY1DashArray: this.strokeY1DashArray\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n BaseBandRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n _super.prototype.resolveAutoColors.call(this, index, maxSeries, theme);\r\n if (this.fillProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(index, maxSeries, this.webAssemblyContext);\r\n this.fill = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"fill\", color);\r\n }\r\n var y1Index = (index + Math.floor(maxSeries / 2)) % maxSeries;\r\n if (this.strokeY1Property.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getStrokeColor(y1Index, maxSeries, this.webAssemblyContext);\r\n this.strokeY1 = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"strokeY1\", color);\r\n }\r\n if (this.fillY1Property.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(y1Index, maxSeries, this.webAssemblyContext);\r\n this.fillY1 = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"fillY1\", color);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseBandRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new BandSeriesHitTestProvider_1.BandSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return BaseBandRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.BaseBandRenderableSeries = BaseBandRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseHeatmapRenderableSeries = exports.COLOR_MAP_PREFIX = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar AxisCore_1 = require(\"../Axis/AxisCore\");\r\nvar NumericLabelProvider_1 = require(\"../Axis/LabelProvider/NumericLabelProvider\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar HeatmapColorMap_1 = require(\"./HeatmapColorMap\");\r\n/** @ignore */\r\nexports.COLOR_MAP_PREFIX = \"colorMap.\";\r\n/**\r\n * @summary A JavaScript Heatmap chart type rendering a 2-dimensional array of data as color values between X,Y bounds in\r\n * SciChart's High Performance Real-time {@link https://www.scichart.com/javascript-chart-features | JavaScript Chart Library}\r\n * @description\r\n * Heatmaps are 2-dimensional arrays of data, rendered as a color-map on the chart. The {@link UniformHeatmapRenderableSeries}\r\n * assumes the cells are equal size, and spaced along the X,Y axis according to properties on the {@link UniformHeatmapDataSeries}.\r\n *\r\n * For a code sample how to initialize a uniform heatmap, see below\r\n *\r\n * ```ts\r\n * // Create an empty 2D array using the helper function zeroArray2D\r\n * const zValues: number[][] = zeroArray2D([height, width]);\r\n * // todo: fill the zValues 2d array with values\r\n *\r\n * // Create a UniformHeatmapDataSeries passing in zValues\r\n * const heatmapDataSeries = new UniformHeatmapDataSeries(wasmContext, 0, 1, 0, 1, zValues);\r\n *\r\n * // Create a Heatmap RenderableSeries with the color map. ColorMap.minimum/maximum defines the values in\r\n * // HeatmapDataSeries which correspond to gradient stops at 0..1\r\n * const heatmapSeries = new UniformHeatmapRenderableSeries(wasmContext, {\r\n * dataSeries: heatmapDataSeries,\r\n * colorMap: new HeatmapColorMap({\r\n * minimum: 0,\r\n * maximum: 200,\r\n * gradientStops: [\r\n * { offset: 0, color: \"#00008B\" },\r\n * { offset: 0.2, color: \"#6495ED\" },\r\n * { offset: 0.4, color: \"#006400\" },\r\n * { offset: 0.6, color: \"#7FFF00\" },\r\n * { offset: 0.8, color: \"#FFFF00\" },\r\n * { offset: 1.0, color: \"#FF0000\" }\r\n * ]\r\n * })\r\n * });\r\n *\r\n * // Add heatmap to the chart\r\n * sciChartSurface.renderableSeries.add(heatmapSeries);\r\n * ```\r\n */\r\nvar BaseHeatmapRenderableSeries = /** @class */ (function (_super) {\r\n __extends(BaseHeatmapRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link UniformHeatmapRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IHeatmapRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function BaseHeatmapRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.useLinearTextureFilteringProperty = false;\r\n _this.fillValuesOutOfRangeProperty = true;\r\n _this.colorMapPropertyChanged = _this.colorMapPropertyChanged.bind(_this);\r\n if (options === null || options === void 0 ? void 0 : options.colorMap) {\r\n if (!(\"toJSON\" in options.colorMap)) {\r\n options.colorMap = new HeatmapColorMap_1.HeatmapColorMap(options.colorMap);\r\n }\r\n }\r\n _this.colorMap = options === null || options === void 0 ? void 0 : options.colorMap;\r\n _this.dataSeries = options === null || options === void 0 ? void 0 : options.dataSeries;\r\n _this.xAxisId = (_a = options === null || options === void 0 ? void 0 : options.xAxisId) !== null && _a !== void 0 ? _a : AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.yAxisId = (_b = options === null || options === void 0 ? void 0 : options.yAxisId) !== null && _b !== void 0 ? _b : AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.useLinearTextureFilteringProperty =\r\n (_c = options === null || options === void 0 ? void 0 : options.useLinearTextureFiltering) !== null && _c !== void 0 ? _c : _this.useLinearTextureFilteringProperty;\r\n _this.fillValuesOutOfRangeProperty = (_d = options === null || options === void 0 ? void 0 : options.fillValuesOutOfRange) !== null && _d !== void 0 ? _d : _this.fillValuesOutOfRangeProperty;\r\n // Must be called here for the series type to be available\r\n if ((_e = _this.paletteProvider) === null || _e === void 0 ? void 0 : _e.onAttached) {\r\n (_f = _this.paletteProvider) === null || _f === void 0 ? void 0 : _f.onAttached(_this);\r\n }\r\n _this.zLabelProviderProperty = new NumericLabelProvider_1.NumericLabelProvider({ labelPrecision: 2 });\r\n return _this;\r\n }\r\n Object.defineProperty(BaseHeatmapRenderableSeries.prototype, \"colorMap\", {\r\n /**\r\n * Gets or sets the {@link HeatmapColorMap}, which maps heatmap z-values to colors\r\n */\r\n get: function () {\r\n return this.colorMapProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link HeatmapColorMap}, which maps heatmap z-values to colors\r\n */\r\n set: function (colorMap) {\r\n var _a, _b;\r\n (_a = this.colorMapProperty) === null || _a === void 0 ? void 0 : _a.propertyChanged.unsubscribe(this.colorMapPropertyChanged);\r\n this.colorMapProperty = colorMap;\r\n (_b = this.colorMapProperty) === null || _b === void 0 ? void 0 : _b.propertyChanged.subscribe(this.colorMapPropertyChanged);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COLOR_MAP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapRenderableSeries.prototype, \"useLinearTextureFiltering\", {\r\n /**\r\n * Gets or sets whether to make the heatmap linearly interpolated or smoothed between cells\r\n */\r\n get: function () {\r\n return this.useLinearTextureFilteringProperty;\r\n },\r\n /**\r\n * Gets or sets whether to make the heatmap linearly interpolated or smoothed between cells\r\n */\r\n set: function (value) {\r\n this.useLinearTextureFilteringProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.USE_LINEAR_TEXTURE_FILTERING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseHeatmapRenderableSeries.prototype.checkIsOutOfDataRange = function (xValue, yValue) {\r\n var dataSeries = this.dataSeries;\r\n return (!dataSeries ||\r\n xValue <= dataSeries.xRange.min ||\r\n xValue >= dataSeries.xRange.max ||\r\n yValue <= dataSeries.yRange.min ||\r\n yValue >= dataSeries.yRange.max);\r\n };\r\n Object.defineProperty(BaseHeatmapRenderableSeries.prototype, \"zLabelProvider\", {\r\n get: function () {\r\n return this.zLabelProviderProperty;\r\n },\r\n set: function (labelProvider) {\r\n this.zLabelProviderProperty = labelProvider;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Z_LABEL_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseHeatmapRenderableSeries.prototype, \"fillValuesOutOfRange\", {\r\n /**\r\n * Gets or sets whether to fill cells with edge color if its value is outside of {@link colorMap.minimum} to {@link colorMap.maximum} range\r\n */\r\n get: function () {\r\n return this.fillValuesOutOfRangeProperty;\r\n },\r\n /**\r\n * Gets or sets whether to fill cells with edge color if its value is outside of {@link colorMap.minimum} to {@link colorMap.maximum} range\r\n */\r\n set: function (value) {\r\n this.fillValuesOutOfRangeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL_VALUES_OUT_OF_RANGE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseHeatmapRenderableSeries.prototype.toPointSeries = function (resamplingParams) {\r\n // not used for Heatmap\r\n return undefined;\r\n };\r\n /** @inheritDoc */\r\n BaseHeatmapRenderableSeries.prototype.toJSON = function (excludeData) {\r\n var _a;\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n colorMap: (_a = this.colorMap) === null || _a === void 0 ? void 0 : _a.toJSON(),\r\n fillValuesOutOfRange: this.fillValuesOutOfRange,\r\n useLinearTextureFiltering: this.useLinearTextureFiltering\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n BaseHeatmapRenderableSeries.prototype.delete = function () {\r\n this.zLabelProviderProperty = (0, Deleter_1.deleteSafe)(this.zLabelProviderProperty);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * Called when a property changes on {@link HeatmapColorMap}, and notifies the parent {@link SciChartSurface}\r\n * that a redraw is required.\r\n * @param args\r\n */\r\n BaseHeatmapRenderableSeries.prototype.colorMapPropertyChanged = function (args) {\r\n this.notifyPropertyChanged(exports.COLOR_MAP_PREFIX + args.propertyName);\r\n };\r\n return BaseHeatmapRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.BaseHeatmapRenderableSeries = BaseHeatmapRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseLineRenderableSeries = exports.ELineType = void 0;\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar LineSeriesDataLabelProvider_1 = require(\"./DataLabels/LineSeriesDataLabelProvider\");\r\nvar LineSeriesDrawingProvider_1 = require(\"./DrawingProviders/LineSeriesDrawingProvider\");\r\nvar PointMarkerDrawingProvider_1 = require(\"./DrawingProviders/PointMarkerDrawingProvider\");\r\nvar LineSeriesHitTestProvider_1 = require(\"./HitTest/LineSeriesHitTestProvider\");\r\nvar ELineType;\r\n(function (ELineType) {\r\n ELineType[\"Normal\"] = \"Normal\";\r\n ELineType[\"Digital\"] = \"Digital\";\r\n /** Horizontal line from the point to the x value of the next point */\r\n ELineType[\"DigitalNoEdge\"] = \"DigitalNoEdge\";\r\n /** Digital Line that goes Up then across, instead of Across then Up */\r\n ELineType[\"DigitalYX\"] = \"DigitalYX\";\r\n})(ELineType = exports.ELineType || (exports.ELineType = {}));\r\nvar BaseLineRenderableSeries = /** @class */ (function (_super) {\r\n __extends(BaseLineRenderableSeries, _super);\r\n function BaseLineRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.strokeDashArrayProperty = [];\r\n _this.lineTypeProperty = ELineType.Normal;\r\n _this.strokeDashArrayProperty = options === null || options === void 0 ? void 0 : options.strokeDashArray;\r\n _this.lineTypeProperty = (_a = options === null || options === void 0 ? void 0 : options.lineType) !== null && _a !== void 0 ? _a : _this.lineTypeProperty;\r\n _this.drawingProviders = [];\r\n _this.drawingProviders.push(new LineSeriesDrawingProvider_1.LineSeriesDrawingProvider(webAssemblyContext, _this));\r\n _this.drawingProviders.push(new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this));\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new LineSeriesDataLabelProvider_1.LineSeriesDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n BaseLineRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.stroke === previousThemeProvider.lineSeriesColor) {\r\n this.stroke = themeProvider.lineSeriesColor;\r\n }\r\n };\r\n Object.defineProperty(BaseLineRenderableSeries.prototype, \"strokeDashArray\", {\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n get: function () {\r\n return this.strokeDashArrayProperty;\r\n },\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n set: function (strokeDashArray) {\r\n this.strokeDashArrayProperty = strokeDashArray;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_DASH_ARRAY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseLineRenderableSeries.prototype, \"lineType\", {\r\n /**\r\n * The type of line to draw. One of {@link ELineType}. Replaces isDigitalLine\r\n */\r\n get: function () {\r\n return this.lineTypeProperty;\r\n },\r\n /**\r\n * The type of line to draw. One of {@link ELineType}. Replaces isDigitalLine\r\n */\r\n set: function (lineType) {\r\n this.lineTypeProperty = lineType;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LINE_TYPE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseLineRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n strokeDashArray: this.strokeDashArray,\r\n lineType: this.lineTypeProperty\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseLineRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new LineSeriesHitTestProvider_1.LineSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return BaseLineRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.BaseLineRenderableSeries = BaseLineRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseMountainRenderableSeries = void 0;\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar DataLabelProvider_1 = require(\"./DataLabels/DataLabelProvider\");\r\nvar MountainSeriesDrawingProvider_1 = require(\"./DrawingProviders/MountainSeriesDrawingProvider\");\r\nvar PointMarkerDrawingProvider_1 = require(\"./DrawingProviders/PointMarkerDrawingProvider\");\r\nvar MountainSeriesHitTestProvider_1 = require(\"./HitTest/MountainSeriesHitTestProvider\");\r\nvar BaseMountainRenderableSeries = /** @class */ (function (_super) {\r\n __extends(BaseMountainRenderableSeries, _super);\r\n function BaseMountainRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.zeroLineYProperty = 0;\r\n _this.fillProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.mountainAreaBrush;\r\n _this.strokeDashArrayProperty = [];\r\n _this.stroke = (_a = options === null || options === void 0 ? void 0 : options.stroke) !== null && _a !== void 0 ? _a : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.mountainLineColor;\r\n _this.strokeDashArrayProperty = (_b = options === null || options === void 0 ? void 0 : options.strokeDashArray) !== null && _b !== void 0 ? _b : _this.strokeDashArrayProperty;\r\n _this.fillProperty = (_c = options === null || options === void 0 ? void 0 : options.fill) !== null && _c !== void 0 ? _c : _this.fillProperty;\r\n _this.zeroLineYProperty = (_d = options === null || options === void 0 ? void 0 : options.zeroLineY) !== null && _d !== void 0 ? _d : _this.zeroLineYProperty;\r\n _this.fillLinearGradientProperty = (_e = options === null || options === void 0 ? void 0 : options.fillLinearGradient) !== null && _e !== void 0 ? _e : _this.fillLinearGradientProperty;\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new DataLabelProvider_1.DataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n _this.drawingProviders.push(new MountainSeriesDrawingProvider_1.MountainSeriesDrawingProvider(webAssemblyContext, _this));\r\n _this.drawingProviders.push(new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this));\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseMountainRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.fill === previousThemeProvider.mountainAreaBrush) {\r\n this.fill = themeProvider.mountainAreaBrush;\r\n }\r\n if (this.stroke === previousThemeProvider.mountainLineColor) {\r\n this.stroke = themeProvider.mountainLineColor;\r\n }\r\n };\r\n Object.defineProperty(BaseMountainRenderableSeries.prototype, \"fill\", {\r\n /**\r\n * Gets or sets the fill color as an HTML Color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.fillProperty);\r\n },\r\n /**\r\n * Gets or sets the fill color as an HTML Color code\r\n */\r\n set: function (htmlColorCode) {\r\n this.fillProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseMountainRenderableSeries.prototype, \"zeroLineY\", {\r\n /**\r\n * Gets or sets the Zero-line Y, the Y-value where the mountain crosses zero and inverts. Default is 0\r\n */\r\n get: function () {\r\n return this.zeroLineYProperty;\r\n },\r\n /**\r\n * Gets or sets the Zero-line Y, the Y-value where the mountain crosses zero and inverts. Default is 0\r\n */\r\n set: function (zeroLineY) {\r\n this.zeroLineYProperty = zeroLineY;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ZERO_LINE_Y);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseMountainRenderableSeries.prototype, \"fillLinearGradient\", {\r\n /**\r\n * Gets or sets the fill as a gradient brush\r\n */\r\n get: function () {\r\n return this.fillLinearGradientProperty;\r\n },\r\n /**\r\n * Gets or sets the fill as a gradient brush\r\n */\r\n set: function (gradientBrushParams) {\r\n // We need this check, to prevent creating new Texture if we set the same value\r\n if (gradientBrushParams !== this.fillLinearGradientProperty) {\r\n this.fillLinearGradientProperty = gradientBrushParams;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL_LINEAR_GRADIENT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseMountainRenderableSeries.prototype, \"strokeDashArray\", {\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n get: function () {\r\n return this.strokeDashArrayProperty;\r\n },\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n set: function (strokeDashArray) {\r\n this.strokeDashArrayProperty = strokeDashArray;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_DASH_ARRAY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseMountainRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n fill: this.fill,\r\n fillLinearGradient: this.fillLinearGradient,\r\n strokeDashArray: this.strokeDashArray,\r\n zeroLineY: this.zeroLineY\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n BaseMountainRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n _super.prototype.resolveAutoColors.call(this, index, maxSeries, theme);\r\n if (this.fillProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(index, maxSeries, this.webAssemblyContext);\r\n this.fill = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"fill\", color);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseMountainRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new MountainSeriesHitTestProvider_1.MountainSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return BaseMountainRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.BaseMountainRenderableSeries = BaseMountainRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseOhlcRenderableSeries = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar IDataSeries_1 = require(\"../../Model/IDataSeries\");\r\nvar OhlcPointSeriesResampled_1 = require(\"../../Model/PointSeries/OhlcPointSeriesResampled\");\r\nvar OhlcPointSeriesWrapped_1 = require(\"../../Model/PointSeries/OhlcPointSeriesWrapped\");\r\nvar XyyPointSeriesResampled_1 = require(\"../../Model/PointSeries/XyyPointSeriesResampled\");\r\nvar ResamplingMode_1 = require(\"../../Numerics/Resamplers/ResamplingMode\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar OhlcSeriesHitTestProvider_1 = require(\"./HitTest/OhlcSeriesHitTestProvider\");\r\nvar BaseOhlcRenderableSeries = /** @class */ (function (_super) {\r\n __extends(BaseOhlcRenderableSeries, _super);\r\n function BaseOhlcRenderableSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.strokeUp = (options === null || options === void 0 ? void 0 : options.strokeUp) || SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.upWickColor;\r\n _this.strokeDown = (options === null || options === void 0 ? void 0 : options.strokeDown) || SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.downWickColor;\r\n _this.dataPointWidth = (options === null || options === void 0 ? void 0 : options.dataPointWidth) || 0.5;\r\n _this.strokeThickness = (options === null || options === void 0 ? void 0 : options.strokeThickness) || 1;\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n BaseOhlcRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.stroke === previousThemeProvider.lineSeriesColor) {\r\n this.stroke = themeProvider.lineSeriesColor;\r\n }\r\n if (this.strokeUp === previousThemeProvider.upWickColor) {\r\n this.strokeUp = themeProvider.upWickColor;\r\n }\r\n if (this.strokeDown === previousThemeProvider.downWickColor) {\r\n this.strokeDown = themeProvider.downWickColor;\r\n }\r\n };\r\n Object.defineProperty(BaseOhlcRenderableSeries.prototype, \"strokeUp\", {\r\n /**\r\n * Gets or sets the stoke when candlestick close is greater than open, as an HTML color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.strokeUpProperty);\r\n },\r\n /**\r\n * Gets or sets the stoke when candlestick close is greater than open, as an HTML color code\r\n */\r\n set: function (htmlColorCode) {\r\n this.strokeUpProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_UP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseOhlcRenderableSeries.prototype, \"strokeDown\", {\r\n /**\r\n * Gets or sets the stoke when candlestick close is less than open, as an HTML color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.strokeDownProperty);\r\n },\r\n /**\r\n * Gets or sets the stoke when candlestick close is less than open, as an HTML color code\r\n */\r\n set: function (htmlColorCode) {\r\n this.strokeDownProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_DOWN);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseOhlcRenderableSeries.prototype, \"dataPointWidth\", {\r\n /**\r\n * Gets or sets the width of candles as a fraction of available space. Valid values range from 0.0 - 1.0\r\n */\r\n get: function () {\r\n return this.dataPointWidthProperty;\r\n },\r\n /**\r\n * Gets or sets the width of candles as a fraction of available space. Valid values range from 0.0 - 1.0\r\n */\r\n set: function (value) {\r\n this.dataPointWidthProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DATA_POINT_WIDTH);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseOhlcRenderableSeries.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n if (propertyName === constants_1.PROPERTY.DATA_SERIES) {\r\n if (this.dataSeries !== undefined && this.dataSeries.type !== IDataSeries_1.EDataSeriesType.Ohlc) {\r\n throw new Error(\"DataSeries for Candlestick or Ohlc series must be type OhlcDataSeries\");\r\n }\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseOhlcRenderableSeries.prototype.getXRange = function () {\r\n var range = _super.prototype.getXRange.call(this);\r\n var count = this.dataSeries.count();\r\n if (count > 1) {\r\n var additionalValue = ((range.diff / (count - 1)) * this.dataPointWidth) / 2;\r\n return new NumberRange_1.NumberRange(range.min - additionalValue, range.max + additionalValue);\r\n }\r\n // TODO: figure out what to do if we have only one point\r\n return range;\r\n };\r\n /** @inheritDoc */\r\n BaseOhlcRenderableSeries.prototype.delete = function () {\r\n this.resamplerHelper = (0, Deleter_1.deleteSafe)(this.resamplerHelper);\r\n this.xyyTempPointSeries = (0, Deleter_1.deleteSafe)(this.xyyTempPointSeries);\r\n this.pointSeries = (0, Deleter_1.deleteSafe)(this.pointSeries);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * Returns the {@link IDataSeries.getNativeOpenValues} for the associated {@link dataSeries}\r\n */\r\n BaseOhlcRenderableSeries.prototype.getNativeOpenValues = function () {\r\n return this.dataSeries.getNativeOpenValues();\r\n };\r\n /**\r\n * Returns the {@link IDataSeries.getNativeHighValues} for the associated {@link dataSeries}\r\n */\r\n BaseOhlcRenderableSeries.prototype.getNativeHighValues = function () {\r\n return this.dataSeries.getNativeHighValues();\r\n };\r\n /**\r\n * Returns the {@link IDataSeries.getNativeLowValues} for the associated {@link dataSeries}\r\n */\r\n BaseOhlcRenderableSeries.prototype.getNativeLowValues = function () {\r\n return this.dataSeries.getNativeLowValues();\r\n };\r\n /**\r\n * Returns the {@link IDataSeries.getNativeCloseValues} for the associated {@link dataSeries}\r\n */\r\n BaseOhlcRenderableSeries.prototype.getNativeCloseValues = function () {\r\n return this.dataSeries.getNativeYValues();\r\n };\r\n /** @inheritDoc */\r\n BaseOhlcRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n if (this.strokeUpProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getStrokeColor(index, maxSeries, this.webAssemblyContext);\r\n this.strokeUp = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"strokeUp\", color);\r\n }\r\n var y1Index = (index + Math.floor(maxSeries / 2)) % maxSeries;\r\n if (this.strokeDownProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getStrokeColor(y1Index, maxSeries, this.webAssemblyContext);\r\n this.strokeDown = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"strokeDown\", color);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseOhlcRenderableSeries.prototype.toPointSeries = function (rp) {\r\n if (rp) {\r\n if (!this.xyyTempPointSeries) {\r\n this.xyyTempPointSeries = new XyyPointSeriesResampled_1.XyyPointSeriesResampled(this.webAssemblyContext, rp.xVisibleRange);\r\n }\r\n else {\r\n this.xyyTempPointSeries.xRange = rp.xVisibleRange;\r\n }\r\n if (!this.pointSeries) {\r\n this.pointSeries = new OhlcPointSeriesResampled_1.OhlcPointSeriesResampled(this.webAssemblyContext, rp.xVisibleRange);\r\n }\r\n else {\r\n this.pointSeries.xRange = rp.xVisibleRange;\r\n }\r\n var ps = this.pointSeries;\r\n var ds = this.dataSeries;\r\n var xValues = ds.getNativeXValues();\r\n var openValues = ds.getNativeOpenValues();\r\n var highValues = ds.getNativeHighValues();\r\n var lowValues = ds.getNativeLowValues();\r\n var closeValues = ds.getNativeCloseValues();\r\n var originalIndexes = ds.getNativeIndexes();\r\n // 1) calc ps.highValues\r\n var rpHigh = rp.clone({\r\n resamplingMode: rp.resamplingMode === ResamplingMode_1.EResamplingMode.None ? ResamplingMode_1.EResamplingMode.None : ResamplingMode_1.EResamplingMode.Max\r\n });\r\n var result = this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rpHigh, xValues, highValues, this.xyyTempPointSeries.intIndexes, // don't care\r\n undefined, this.xyyTempPointSeries.xValues, // don't care\r\n ps.highValues);\r\n this.pointSeries.fifoStartIndex = result.OutputSplitIndex;\r\n // console.log(\"high count \", ps.highValues.size());\r\n this.xyyTempPointSeries.clearIntIndexes();\r\n // 2) calc ps.lowValues\r\n var rpLow = rp.clone({\r\n resamplingMode: rp.resamplingMode === ResamplingMode_1.EResamplingMode.None ? ResamplingMode_1.EResamplingMode.None : ResamplingMode_1.EResamplingMode.Min\r\n });\r\n this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rpLow, xValues, lowValues, this.xyyTempPointSeries.intIndexes, // don't care\r\n undefined, this.xyyTempPointSeries.xValues, ps.lowValues);\r\n // console.log(\"low count \", ps.lowValues.size());\r\n // We don't want the indexes for high/low\r\n this.xyyTempPointSeries.clearIntIndexes();\r\n this.xyyTempPointSeries.y1Values.clear();\r\n // 3) Get batch indexes\r\n // Resample indexes to get start and end of batch\r\n var rpOpenClose = rp.clone({\r\n resamplingMode: rp.resamplingMode === ResamplingMode_1.EResamplingMode.None ? ResamplingMode_1.EResamplingMode.None : ResamplingMode_1.EResamplingMode.Min\r\n });\r\n this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rpOpenClose, xValues, originalIndexes, ps.intIndexes, undefined, this.xyyTempPointSeries.xValues, // don't care\r\n this.xyyTempPointSeries.y1Values // don't care\r\n );\r\n var openCloseSize = ps.intIndexes.size();\r\n this.xyyTempPointSeries.y1Values.clear();\r\n // 4) calc ps.openValues, ps.closeValues\r\n // console.log(\"open/close count \", openCloseSize);\r\n // indexes 0, 1, 2, 3, 4, 5, 6, 7\r\n // opens 3, 4, 7, 8, 3, 5, 9, 6\r\n // closes 8, 3, 5, 9, 6, 3\r\n // batch 0, 3, 6\r\n // batch 0 - open 3 (index 0), close 8 (index 2)\r\n var lastIndexOfFirstBatch = ps.intIndexes.get(3) - ps.intIndexes.get(2) - 1;\r\n // console.log(\r\n // \"indexes \",\r\n // ps.intIndexes.get(0),\r\n // ps.intIndexes.get(1),\r\n // ps.intIndexes.get(2),\r\n // ps.intIndexes.get(3),\r\n // ps.intIndexes.get(4),\r\n // ps.intIndexes.get(5),\r\n // ps.intIndexes.get(6)\r\n // );\r\n // console.log(\r\n // \"x values \",\r\n // xValues.get(0),\r\n // xValues.get(1),\r\n // xValues.get(2),\r\n // xValues.get(3),\r\n // xValues.get(4),\r\n // xValues.get(5),\r\n // xValues.get(6)\r\n // );\r\n // console.log(\"Max index\", rp.indexesRange.max);\r\n // const batchWidth = rp.xVisibleRange.diff / rp.viewportRect.width;\r\n // console.log(\r\n // \"Batch width \",\r\n // batchWidth,\r\n // Math.floor(Math.log2(batchWidth)),\r\n // Math.pow(2, Math.floor(Math.log2(batchWidth)))\r\n // );\r\n // console.log(\"X Spacing \", rp.xVisibleRange.diff / rp.indexesRange.max);\r\n // console.log(\"original points / resampled points \", xValues.size() / openCloseSize);\r\n // console.log(\"lastIndexOfFirstBatch \", lastIndexOfFirstBatch);\r\n ps.indexes.resizeFast(openCloseSize + 1);\r\n // Get values by indexes for Open values\r\n this.resamplerHelper.copyValuesByIndexes(ps.intIndexes, xValues, openValues, closeValues, openCloseSize, rp.isCategoryAxis, this.dataSeries.fifoSweeping, ps.indexes, ps.xValues, ps.openValues, ps.closeValues, lastIndexOfFirstBatch);\r\n // Last close value is handled in c++;\r\n // This is now done in the copy step above\r\n //ps.updateIndexes();\r\n ps.clearIntIndexes();\r\n // ps.debugOutputForUnitTests();\r\n return ps;\r\n }\r\n else {\r\n return new OhlcPointSeriesWrapped_1.OhlcPointSeriesWrapped(this.dataSeries);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseOhlcRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new OhlcSeriesHitTestProvider_1.OhlcSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return BaseOhlcRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.BaseOhlcRenderableSeries = BaseOhlcRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getDelta = exports.getDataPointWidth = exports.BaseRenderableSeries = void 0;\r\nvar classFactory_1 = require(\"../../../Builder/classFactory\");\r\nvar AnimationFiniteStateMachine_1 = require(\"../../../Core/Animations/AnimationFiniteStateMachine\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\nvar Rect_1 = require(\"../../../Core/Rect\");\r\nvar AnimationType_1 = require(\"../../../types/AnimationType\");\r\nvar BaseType_1 = require(\"../../../types/BaseType\");\r\nvar DataLabelProviderType_1 = require(\"../../../types/DataLabelProviderType\");\r\nvar PaletteProviderType_1 = require(\"../../../types/PaletteProviderType\");\r\nvar PointMarkerType_1 = require(\"../../../types/PointMarkerType\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar guid_1 = require(\"../../../utils/guid\");\r\nvar WebGlRenderContext2D_1 = require(\"../../Drawing/WebGlRenderContext2D\");\r\nvar BaseDataSeries_1 = require(\"../../Model/BaseDataSeries\");\r\nvar HeatmapSeriesInfo_1 = require(\"../../Model/ChartData/HeatmapSeriesInfo\");\r\nvar HlcSeriesInfo_1 = require(\"../../Model/ChartData/HlcSeriesInfo\");\r\nvar OhlcSeriesInfo_1 = require(\"../../Model/ChartData/OhlcSeriesInfo\");\r\nvar XySeriesInfo_1 = require(\"../../Model/ChartData/XySeriesInfo\");\r\nvar XyySeriesInfo_1 = require(\"../../Model/ChartData/XyySeriesInfo\");\r\nvar XyzSeriesInfo_1 = require(\"../../Model/ChartData/XyzSeriesInfo\");\r\nvar IDataSeries_1 = require(\"../../Model/IDataSeries\");\r\nvar IPaletteProvider_1 = require(\"../../Model/IPaletteProvider\");\r\nvar XyPointSeriesResampled_1 = require(\"../../Model/PointSeries/XyPointSeriesResampled\");\r\nvar XyPointSeriesWrapped_1 = require(\"../../Model/PointSeries/XyPointSeriesWrapped\");\r\nvar ExtremeResamplerHelper_1 = require(\"../../Numerics/Resamplers/ExtremeResamplerHelper\");\r\nvar ResamplingMode_1 = require(\"../../Numerics/Resamplers/ResamplingMode\");\r\nvar RenderPassData_1 = require(\"../../Services/RenderPassData\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar AxisCore_1 = require(\"../Axis/AxisCore\");\r\nvar SciChartDefaults_1 = require(\"../SciChartDefaults\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar animationHelpers_1 = require(\"./Animations/animationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\nvar RolloverModifierRenderableSeriesProps_1 = require(\"./RolloverModifier/RolloverModifierRenderableSeriesProps\");\r\nvar SeriesHoveredArgs_1 = require(\"./SeriesHoveredArgs\");\r\nvar SeriesSelectedArgs_1 = require(\"./SeriesSelectedArgs\");\r\nvar SeriesVisibleChangedArgs_1 = require(\"./SeriesVisibleChangedArgs\");\r\nvar YRangeMode_1 = require(\"../../../types/YRangeMode\");\r\n/**\r\n * @summary Defines the base class to a Render Series (or Chart Type) in SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * A RenderableSeries defines how data should be rendered. e.g. as a Line Chart, Mountain Chart, Candlestick Chart etc...\r\n * This is independent from the {@link BaseDataSeries | DataSeries} which stores the data to render\r\n *\r\n * See derived types of {@link BaseDataSeries} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.\r\n */\r\nvar BaseRenderableSeries = /** @class */ (function (_super) {\r\n __extends(BaseRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link BaseRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IBaseRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function BaseRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\r\n _this = _super.call(this) || this;\r\n /** @inheritDoc */\r\n _this.rolloverModifierProps = new RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps(_this);\r\n /** @inheritDoc */\r\n _this.rolloverModifierProps1 = new RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps(_this, true);\r\n /** @inheritDoc */\r\n _this.selected = new EventHandler_1.EventHandler();\r\n /** @inheritDoc */\r\n _this.hovered = new EventHandler_1.EventHandler();\r\n /** @inheritDoc */\r\n _this.isVisibleChanged = new EventHandler_1.EventHandler();\r\n _this.animationQueue = [];\r\n _this.paletteProviderProperty = IPaletteProvider_1.DefaultPaletteProvider.createEmpty();\r\n // used to track if registered types were used for function properties, so they can be serialized\r\n _this.typeMap = new Map();\r\n _this.opacityProperty = 1;\r\n _this.drawingProvidersProperty = [];\r\n _this.xAxisIdProperty = AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.yAxisIdProperty = AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.strokeThicknessProperty = 2;\r\n _this.strokeProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.lineSeriesColor;\r\n _this.drawNaNAsProperty = WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine;\r\n _this.isVisibleProperty = true;\r\n _this.isDigitalLineProperty = false;\r\n _this.resamplingModeProperty = ResamplingMode_1.EResamplingMode.Auto;\r\n _this.resamplingPrecisionProperty = 0;\r\n _this.clipToYRangeProperty = false;\r\n _this.yRangeModeProperty = YRangeMode_1.EYRangeMode.Drawn;\r\n _this.isStacked = false;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n // It is very important to add bind(this) first line in constructor,\r\n // otherwise dataSeries passed through the options does not work!\r\n _this.dataSeriesDataChanged = _this.dataSeriesDataChanged.bind(_this);\r\n _this.effectPropertyChanged = _this.effectPropertyChanged.bind(_this);\r\n _this.invalidateParent = _this.invalidateParent.bind(_this);\r\n _this.getDataPointWidth = _this.getDataPointWidth.bind(_this);\r\n _this.updateAnimationProperties = _this.updateAnimationProperties.bind(_this);\r\n _this.beforeAnimationStart = _this.beforeAnimationStart.bind(_this);\r\n _this.afterAnimationComplete = _this.afterAnimationComplete.bind(_this);\r\n // Need to set dataSeries (not just dataSeriesProperty) because of dataChanged.subscribe\r\n _this.dataSeries = (_b = options === null || options === void 0 ? void 0 : options.dataSeries) !== null && _b !== void 0 ? _b : _this.dataSeriesProperty;\r\n if (options === null || options === void 0 ? void 0 : options.pointMarker) {\r\n if (!(\"drawSprite\" in options.pointMarker)) {\r\n if (options.pointMarker.type === PointMarkerType_1.EPointMarkerType.Custom) {\r\n options.pointMarker = (0, classFactory_1.createType)(BaseType_1.EBaseType.PointMarker, options.pointMarker.customType, webAssemblyContext, options.pointMarker.options);\r\n }\r\n else {\r\n options.pointMarker = (0, classFactory_1.createType)(BaseType_1.EBaseType.PointMarker, options.pointMarker.type, webAssemblyContext, options.pointMarker.options);\r\n }\r\n }\r\n }\r\n _this.pointMarkerProperty = (_c = options === null || options === void 0 ? void 0 : options.pointMarker) !== null && _c !== void 0 ? _c : _this.pointMarkerProperty;\r\n _this.strokeProperty = (_d = options === null || options === void 0 ? void 0 : options.stroke) !== null && _d !== void 0 ? _d : _this.strokeProperty;\r\n _this.strokeThicknessProperty = (_e = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _e !== void 0 ? _e : _this.strokeThicknessProperty;\r\n _this.opacityProperty = (_f = options === null || options === void 0 ? void 0 : options.opacity) !== null && _f !== void 0 ? _f : _this.opacityProperty;\r\n _this.xAxisIdProperty = (_g = options === null || options === void 0 ? void 0 : options.xAxisId) !== null && _g !== void 0 ? _g : _this.xAxisIdProperty;\r\n _this.yAxisIdProperty = (_h = options === null || options === void 0 ? void 0 : options.yAxisId) !== null && _h !== void 0 ? _h : _this.yAxisIdProperty;\r\n _this.isVisibleProperty = (_j = options === null || options === void 0 ? void 0 : options.isVisible) !== null && _j !== void 0 ? _j : _this.isVisibleProperty;\r\n _this.isDigitalLineProperty = (_k = options === null || options === void 0 ? void 0 : options.isDigitalLine) !== null && _k !== void 0 ? _k : _this.isDigitalLineProperty;\r\n _this.resamplingModeProperty = (_l = options === null || options === void 0 ? void 0 : options.resamplingMode) !== null && _l !== void 0 ? _l : _this.resamplingModeProperty;\r\n _this.resamplingPrecisionProperty = (_m = options === null || options === void 0 ? void 0 : options.resamplingPrecision) !== null && _m !== void 0 ? _m : _this.resamplingPrecisionProperty;\r\n if (options === null || options === void 0 ? void 0 : options.effect) {\r\n if (!(\"getNativeEffect\" in options.effect)) {\r\n options.effect = (0, classFactory_1.createType)(BaseType_1.EBaseType.ShaderEffect, options.effect.type, webAssemblyContext, options.effect.options);\r\n }\r\n }\r\n _this.effectProperty = options === null || options === void 0 ? void 0 : options.effect;\r\n if (options === null || options === void 0 ? void 0 : options.paletteProvider) {\r\n if (!(\"onAttached\" in options.paletteProvider)) {\r\n if (options.paletteProvider.type === PaletteProviderType_1.EPaletteProviderType.Custom) {\r\n options.paletteProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.PaletteProvider, options.paletteProvider.customType, webAssemblyContext, options.paletteProvider.options);\r\n }\r\n else {\r\n options.paletteProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.PaletteProvider, options.paletteProvider.type, webAssemblyContext, options.paletteProvider.options);\r\n }\r\n }\r\n }\r\n _this.paletteProviderProperty = (_o = options === null || options === void 0 ? void 0 : options.paletteProvider) !== null && _o !== void 0 ? _o : _this.paletteProviderProperty;\r\n // PaletteProvider.onAttached must be called by the top level series, as the series type is not available here\r\n _this.drawNaNAsProperty = (_p = options === null || options === void 0 ? void 0 : options.drawNaNAs) !== null && _p !== void 0 ? _p : _this.drawNaNAsProperty;\r\n _this.hitTestProvider = _this.newHitTestProvider();\r\n _this.isSelected = (_q = options === null || options === void 0 ? void 0 : options.isSelected) !== null && _q !== void 0 ? _q : false;\r\n _this.isHovered = (_r = options === null || options === void 0 ? void 0 : options.isHovered) !== null && _r !== void 0 ? _r : false;\r\n _this.clipToYRangeProperty = (_s = options === null || options === void 0 ? void 0 : options.clipToYRange) !== null && _s !== void 0 ? _s : _this.clipToYRangeProperty;\r\n _this.yRangeModeProperty = (_t = options === null || options === void 0 ? void 0 : options.yRangeMode) !== null && _t !== void 0 ? _t : _this.yRangeModeProperty;\r\n if (options === null || options === void 0 ? void 0 : options.onIsVisibleChanged) {\r\n if (typeof options.onIsVisibleChanged === \"string\") {\r\n _this.typeMap.set(\"onIsVisibleChanged\", options.onIsVisibleChanged);\r\n var visibleChanged_1 = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onIsVisibleChanged);\r\n _this.isVisibleChanged.subscribe(function (args) {\r\n return visibleChanged_1(args.sourceSeries, args.isVisible);\r\n });\r\n }\r\n else {\r\n var onIsVisibleChangedCallback_1 = options === null || options === void 0 ? void 0 : options.onIsVisibleChanged;\r\n _this.isVisibleChanged.subscribe(function (args) {\r\n return onIsVisibleChangedCallback_1(args.sourceSeries, args.isVisible);\r\n });\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.onSelectedChanged) {\r\n if (typeof options.onSelectedChanged === \"string\") {\r\n _this.typeMap.set(\"onSelectedChanged\", options.onSelectedChanged);\r\n var selectionChanged_1 = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onSelectedChanged);\r\n _this.selected.subscribe(function (args) {\r\n return selectionChanged_1(args.sourceSeries, args.isSelected);\r\n });\r\n }\r\n else {\r\n var onSelectedChangedCallback_1 = options === null || options === void 0 ? void 0 : options.onSelectedChanged;\r\n _this.selected.subscribe(function (args) {\r\n return onSelectedChangedCallback_1(args.sourceSeries, args.isSelected);\r\n });\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.onHoveredChanged) {\r\n if (typeof options.onHoveredChanged === \"string\") {\r\n _this.typeMap.set(\"onHoveredChanged\", options.onHoveredChanged);\r\n var hoveredChanged_1 = (0, classFactory_1.getFunction)(BaseType_1.EBaseType.OptionFunction, options.onHoveredChanged);\r\n _this.hovered.subscribe(function (args) { return hoveredChanged_1(args.sourceSeries, args.hovered); });\r\n }\r\n else {\r\n var hoveredChanged_2 = options === null || options === void 0 ? void 0 : options.onHoveredChanged;\r\n _this.hovered.subscribe(function (args) { return hoveredChanged_2(args.sourceSeries, args.hovered); });\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n if (!(\"toJSON\" in options.animation)) {\r\n if (options.animation.type === AnimationType_1.EAnimationType.Custom) {\r\n options.animation = (0, classFactory_1.createType)(BaseType_1.EBaseType.Animation, options.animation.customType, webAssemblyContext, options.animation.options);\r\n }\r\n else {\r\n options.animation = (0, classFactory_1.createType)(BaseType_1.EBaseType.Animation, options.animation.type, webAssemblyContext, options.animation.options);\r\n }\r\n }\r\n }\r\n _this.onDpiChanged = _this.onDpiChanged.bind(_this);\r\n _this.resamplerHelper = new ExtremeResamplerHelper_1.ExtremeResamplerHelper(webAssemblyContext);\r\n if (options === null || options === void 0 ? void 0 : options.dataLabelProvider) {\r\n if (!(\"draw\" in options.dataLabelProvider)) {\r\n if (options.dataLabelProvider.type === DataLabelProviderType_1.EDataLabelProviderType.Custom) {\r\n options.dataLabelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.DataLabelProvider, options.dataLabelProvider.customType, webAssemblyContext, options.dataLabelProvider.options);\r\n }\r\n else {\r\n options.dataLabelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.DataLabelProvider, options.dataLabelProvider.type, webAssemblyContext, options.dataLabelProvider.options);\r\n }\r\n }\r\n }\r\n _this.dataLabelProviderProperty = options === null || options === void 0 ? void 0 : options.dataLabelProvider;\r\n if (_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty.onAttach(webAssemblyContext, _this);\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.rolloverModifierProps.tooltipTextColor === previousThemeProvider.textAnnotationForeground) {\r\n this.rolloverModifierProps.tooltipTextColor = themeProvider.textAnnotationForeground;\r\n }\r\n if (this.rolloverModifierProps.tooltipColor === previousThemeProvider.textAnnotationBackground) {\r\n this.rolloverModifierProps.tooltipColor = themeProvider.textAnnotationBackground;\r\n }\r\n if (this.rolloverModifierProps.markerColor === previousThemeProvider.textAnnotationBackground) {\r\n this.rolloverModifierProps.markerColor = themeProvider.textAnnotationBackground;\r\n }\r\n };\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"parentSurface\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.parentSurfaceProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n this.parentSurfaceProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PARENT_SURFACE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"drawingProviders\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.drawingProvidersProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n this.drawingProvidersProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAWING_PROVIDERS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"isSelected\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isSelectedProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isSelected) {\r\n var _a;\r\n if (this.valueChanged(this.isSelectedProperty, isSelected)) {\r\n this.isSelectedProperty = isSelected;\r\n (_a = this.selected) === null || _a === void 0 ? void 0 : _a.raiseEvent(new SeriesSelectedArgs_1.SeriesSelectedArgs(this, isSelected));\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_SELECTED);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"isHovered\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isHoveredProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isHovered) {\r\n var _a;\r\n if (this.valueChanged(this.isHoveredProperty, isHovered)) {\r\n this.isHoveredProperty = isHovered;\r\n (_a = this.hovered) === null || _a === void 0 ? void 0 : _a.raiseEvent(new SeriesHoveredArgs_1.SeriesHoveredArgs(this, isHovered));\r\n this.notifyPropertyChanged(constants_1.PROPERTY.HOVERED);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"paletteProvider\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.paletteProviderProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (paletteProvider) {\r\n this.setPaletteProvider(paletteProvider);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"isDigitalLine\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isDigitalLineProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isDigitalLine) {\r\n this.isDigitalLineProperty = isDigitalLine;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_DIGITAL_LINE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"isVisible\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isVisibleProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isVisible) {\r\n var _a;\r\n if (this.valueChanged(this.isVisibleProperty, isVisible)) {\r\n this.isVisibleProperty = isVisible;\r\n if (!isVisible) {\r\n if (this.rolloverModifierProps.marker && this.rolloverModifierProps.tooltip) {\r\n this.rolloverModifierProps.marker.suspendInvalidate();\r\n this.rolloverModifierProps.tooltip.suspendInvalidate();\r\n this.rolloverModifierProps.marker.isHidden = true;\r\n this.rolloverModifierProps.tooltip.isHidden = true;\r\n this.rolloverModifierProps.tooltip.x1 = undefined;\r\n this.rolloverModifierProps.tooltip.y1 = undefined;\r\n }\r\n // TODO should be more general than looking at series type\r\n if (this.type === SeriesType_1.ESeriesType.BandSeries &&\r\n this.rolloverModifierProps1.marker &&\r\n this.rolloverModifierProps1.tooltip) {\r\n this.rolloverModifierProps1.marker.suspendInvalidate();\r\n this.rolloverModifierProps1.tooltip.suspendInvalidate();\r\n this.rolloverModifierProps1.marker.isHidden = true;\r\n this.rolloverModifierProps1.tooltip.isHidden = true;\r\n this.rolloverModifierProps1.tooltip.x1 = undefined;\r\n this.rolloverModifierProps1.tooltip.y1 = undefined;\r\n }\r\n }\r\n (_a = this.isVisibleChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new SeriesVisibleChangedArgs_1.SeriesVisibleChangedArgs(this, isVisible));\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_VISIBLE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"pointMarker\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.pointMarkerProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (pointMarker) {\r\n if (this.pointMarkerProperty) {\r\n this.pointMarkerProperty.invalidateParentCallback = undefined;\r\n }\r\n this.pointMarkerProperty = pointMarker;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.POINT_MARKER);\r\n if (this.pointMarkerProperty) {\r\n this.pointMarkerProperty.invalidateParentCallback = this.invalidateParent;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"drawNaNAs\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.drawNaNAsProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (drawNaNAs) {\r\n this.drawNaNAsProperty = drawNaNAs;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_NAN_AS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"stroke\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.strokeProperty);\r\n },\r\n /** @inheritDoc */\r\n set: function (htmlColorCode) {\r\n if (this.strokeProperty !== htmlColorCode) {\r\n this.strokeProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"strokeThickness\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.strokeThicknessProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (this.strokeThicknessProperty !== value) {\r\n this.strokeThicknessProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_THICKNESS);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"opacity\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.opacityProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n if (this.opacityProperty !== value) {\r\n this.opacityProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.OPACITY);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"xAxisId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.xAxisIdProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (id) {\r\n this.xAxisIdProperty = id;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.XAXIS_ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"xAxis\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n var _this = this;\r\n var _a;\r\n return (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.xAxes.asArray().find(function (el) { return el.id === _this.xAxisId; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"yAxis\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n var _this = this;\r\n var _a;\r\n return (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.yAxes.asArray().find(function (el) { return el.id === _this.yAxisId; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"yAxisId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.yAxisIdProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (id) {\r\n this.yAxisIdProperty = id;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.YAXIS_ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"dataSeries\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.dataSeriesProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (dataSeries) {\r\n var _a, _b, _c;\r\n if (this.dataSeriesProperty) {\r\n var xAxis = (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.getXAxisById(this.xAxisId);\r\n if (xAxis && xAxis.isCategoryAxis) {\r\n xAxis.clearCoordCalcCache();\r\n }\r\n }\r\n (_b = this.dataSeriesProperty) === null || _b === void 0 ? void 0 : _b.dataChanged.unsubscribe(this.dataSeriesDataChanged);\r\n this.dataSeriesProperty = dataSeries;\r\n (_c = this.dataSeriesProperty) === null || _c === void 0 ? void 0 : _c.dataChanged.subscribe(this.dataSeriesDataChanged);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DATA_SERIES);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"enableDrawingOptimisations\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.resamplingModeProperty !== ResamplingMode_1.EResamplingMode.None;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"effect\", {\r\n /**\r\n * Gets an optional {@link ShaderEffect} for modifying the render output of this {@link IRenderableSeries}\r\n * @remarks Options include {@link GlowEffect} and {@link ShadowEffect}. Apply an effect to see how it modifies rendering!\r\n */\r\n get: function () {\r\n return this.effectProperty;\r\n },\r\n /**\r\n * Sets an optional {@link ShaderEffect} for modifying the render output of this {@link IRenderableSeries}\r\n * @remarks Options include {@link GlowEffect} and {@link ShadowEffect}. Apply an effect to see how it modifies rendering!\r\n */\r\n set: function (effect) {\r\n var _a, _b;\r\n (_a = this.effectProperty) === null || _a === void 0 ? void 0 : _a.propertyChanged.unsubscribe(this.effectPropertyChanged);\r\n this.effectProperty = effect;\r\n (_b = this.effectProperty) === null || _b === void 0 ? void 0 : _b.propertyChanged.subscribe(this.effectPropertyChanged);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.EFFECT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"resamplingMode\", {\r\n /**\r\n * Gets or Sets the resamplingMode {@link EResamplingMode}\r\n */\r\n get: function () {\r\n return this.resamplingModeProperty;\r\n },\r\n set: function (value) {\r\n this.resamplingModeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.RESAMPLING_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"resamplingPrecision\", {\r\n /**\r\n * Gets or Sets the resamplingPrecision\r\n */\r\n get: function () {\r\n return this.resamplingPrecisionProperty;\r\n },\r\n set: function (value) {\r\n this.resamplingPrecisionProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.RESAMPLING_PRECISION);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"clipToYRange\", {\r\n /**\r\n * If true, the drawing will be clipped to the visibleRange of the associated Y Axis.\r\n * This is only really relevant if you are using Stacked Y Axes and do not want the series to be drawn outside that axis range\r\n */\r\n get: function () {\r\n return this.clipToYRangeProperty;\r\n },\r\n set: function (value) {\r\n if (this.clipToYRangeProperty !== value) {\r\n this.clipToYRangeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CLIPTOYRANGE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"yRangeMode\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.yRangeModeProperty;\r\n },\r\n set: function (value) {\r\n if (this.yRangeModeProperty !== value) {\r\n this.yRangeModeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.YRANGEMODE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"isSpline\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return [SeriesType_1.ESeriesType.SplineBandSeries, SeriesType_1.ESeriesType.SplineLineSeries, SeriesType_1.ESeriesType.SplineMountainSeries].includes(this.type);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.draw = function (renderContext, renderPassData) {\r\n var _this = this;\r\n var _a, _b;\r\n this.currentRenderPassData = renderPassData;\r\n (_a = this.hitTestProvider) === null || _a === void 0 ? void 0 : _a.update(renderPassData);\r\n if (this.canDraw) {\r\n var nativeContext = renderContext.getNativeContext();\r\n var viewRect = (_b = this.parentSurface) === null || _b === void 0 ? void 0 : _b.seriesViewRect;\r\n try {\r\n renderContext.pushShaderEffect(this.effect);\r\n if (this.clipToYRange) {\r\n var _c = renderPassData.xCoordinateCalculator, x = _c.offset, width = _c.viewportDimension;\r\n var _d = renderPassData.yCoordinateCalculator, y = _d.offset, height = _d.viewportDimension;\r\n if (renderPassData.isVerticalChart) {\r\n var clipRect = new Rect_1.Rect(viewRect.x + y, viewRect.y + x, height, width);\r\n nativeContext.SetClipRect(clipRect.x, clipRect.y, clipRect.width, clipRect.height);\r\n }\r\n else {\r\n var clipRect = new Rect_1.Rect(viewRect.x + x, viewRect.y + y, width, height);\r\n nativeContext.SetClipRect(clipRect.x, clipRect.y, clipRect.width, clipRect.height);\r\n }\r\n }\r\n this.drawingProviders.forEach(function (dp) {\r\n if (_this.renderDataTransform && _this.renderDataTransform.drawingProviders.includes(dp)) {\r\n var transformedRPD = _this.renderDataTransform.runTransform(renderPassData);\r\n dp.draw(renderContext, transformedRPD);\r\n }\r\n else {\r\n dp.draw(renderContext, renderPassData);\r\n }\r\n });\r\n }\r\n finally {\r\n if (this.clipToYRange) {\r\n // Reset clip rect\r\n nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n }\r\n renderContext.popShaderEffect();\r\n }\r\n if (this.dataLabelProvider) {\r\n this.dataLabelProvider.generateDataLabels(renderContext, renderPassData);\r\n // Don't draw Text here. Renderer will call draw once all text has been created to allow for global layout adjustments\r\n }\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.delete = function () {\r\n this.drawingProviders.forEach(function (dp) { return dp.delete(); });\r\n this.drawingProviders = [];\r\n this.dataSeries = (0, Deleter_1.deleteSafe)(this.dataSeries);\r\n this.effect = (0, Deleter_1.deleteSafe)(this.effect);\r\n this.pointMarker = (0, Deleter_1.deleteSafe)(this.pointMarker);\r\n this.resamplerHelper = (0, Deleter_1.deleteSafe)(this.resamplerHelper);\r\n this.pointSeries = (0, Deleter_1.deleteSafe)(this.pointSeries);\r\n this.dataLabelProviderProperty = (0, Deleter_1.deleteSafe)(this.dataLabelProvider);\r\n this.renderDataTransformProperty = (0, Deleter_1.deleteSafe)(this.renderDataTransform);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.getXRange = function () {\r\n return this.dataSeries.getXRange(IDataSeries_1.EDataSeriesValueType.Default);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.getYRange = function (xVisibleRange, isXCategoryAxis) {\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n var dataSeriesValueType = this.isRunningDataAnimation\r\n ? IDataSeries_1.EDataSeriesValueType.FinalAnimationValues\r\n : IDataSeries_1.EDataSeriesValueType.Default;\r\n if (this.renderDataTransform && this.renderDataTransform.useForYRange) {\r\n this.updateTransformedValues(dataSeriesValueType);\r\n return (0, BaseDataSeries_1.getWindowedYRange)(this.webAssemblyContext, this.transformedRenderPassData.pointSeries.xValues, this.transformedRenderPassData.pointSeries.yValues, xVisibleRange, true, isXCategoryAxis, this.dataSeries.dataDistributionCalculator.isSortedAscending);\r\n }\r\n return this.dataSeries.getWindowedYRange(xVisibleRange, true, isXCategoryAxis, dataSeriesValueType, this.yRangeMode);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.notifyPropertyChanged = function (propertyName) {\r\n this.drawingProviders.forEach(function (dp) { return dp.onSeriesPropertyChange(propertyName); });\r\n this.invalidateParent();\r\n };\r\n /**\r\n * @description Calculates data point width in pixels\r\n * @param xCoordCalc\r\n * @param widthFraction\r\n */\r\n BaseRenderableSeries.prototype.getDataPointWidth = function (xCoordCalc, widthFraction) {\r\n var xValues = this.dataSeries.getNativeXValues();\r\n var seriesViewRectWidth = xCoordCalc.viewportDimension;\r\n var isCategoryAxis = xCoordCalc.isCategoryCoordinateCalculator;\r\n return (0, exports.getDataPointWidth)(xValues, xCoordCalc, seriesViewRectWidth, widthFraction, isCategoryAxis, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.onDetach = function () {\r\n this.invalidateParentCallback = undefined;\r\n this.parentSurface = undefined;\r\n this.drawingProviders.forEach(function (dp) { return dp.onDetachSeries(); });\r\n this.rolloverModifierProps.setInvalidateParentCallback(undefined);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.onAttach = function (scs) {\r\n this.parentSurface = scs;\r\n if (this.invalidateParentCallback) {\r\n throw new Error(\"Invalid operation in sciChartSurface.attachSeries, this series has already been attached to a SciChartSurface. Please detach it from a SciChartSurface before attaching to another\");\r\n }\r\n this.invalidateParentCallback = scs.invalidateElement;\r\n this.drawingProviders.forEach(function (dp) { return dp.onAttachSeries(); });\r\n this.rolloverModifierProps.setInvalidateParentCallback(scs.invalidateElement);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.hasStrokePaletteProvider = function () {\r\n var strokePalette = this.paletteProvider;\r\n return (strokePalette === null || strokePalette === void 0 ? void 0 : strokePalette.overrideStrokeArgb) !== undefined;\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.hasFillPaletteProvider = function () {\r\n var fillPalette = this.paletteProvider;\r\n return (fillPalette === null || fillPalette === void 0 ? void 0 : fillPalette.overrideFillArgb) !== undefined;\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.hasPointMarkerPaletteProvider = function () {\r\n var pointMarkerPalette = this.paletteProvider;\r\n return (pointMarkerPalette === null || pointMarkerPalette === void 0 ? void 0 : pointMarkerPalette.overridePointMarkerArgb) !== undefined;\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.hasDataSeriesValues = function () {\r\n var _a;\r\n return (_a = this.dataSeries) === null || _a === void 0 ? void 0 : _a.hasValues;\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.hasDataSeries = function () {\r\n return !!this.dataSeries;\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.getDataSeriesValuesCount = function () {\r\n return this.dataSeries.count();\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.getDataSeriesName = function () {\r\n var _a;\r\n return (_a = this.dataSeries) === null || _a === void 0 ? void 0 : _a.dataSeriesName;\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.getNativeXValues = function () {\r\n return this.dataSeries.getNativeXValues();\r\n };\r\n /**\r\n * Returns the {@link IDataSeries.getNativeYValues} for the associated {@link dataSeries}\r\n */\r\n BaseRenderableSeries.prototype.getNativeYValues = function () {\r\n return this.dataSeries.getNativeYValues();\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.checkIsOutOfDataRange = function (xValue, yValue) {\r\n var length = this.getDataSeriesValuesCount();\r\n var isCategoryAxis = this.xAxis.getCurrentCoordinateCalculator().isCategoryCoordinateCalculator;\r\n var min = isCategoryAxis ? 0 : this.getNativeXValues().get(0);\r\n var max = isCategoryAxis ? length - 1 : this.getNativeXValues().get(length - 1);\r\n return xValue < min || xValue > max;\r\n };\r\n /**\r\n * adds palette colors\r\n */\r\n BaseRenderableSeries.prototype.pushPalettedColors = function (color, palettingState) {\r\n palettingState.palettedColors.push_back(color);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.getSeriesInfo = function (hitTestInfo) {\r\n switch (hitTestInfo.dataSeriesType) {\r\n case IDataSeries_1.EDataSeriesType.Ohlc:\r\n return new OhlcSeriesInfo_1.OhlcSeriesInfo(this, hitTestInfo);\r\n case IDataSeries_1.EDataSeriesType.Xyy:\r\n return new XyySeriesInfo_1.XyySeriesInfo(this, hitTestInfo);\r\n case IDataSeries_1.EDataSeriesType.Xyz:\r\n return new XyzSeriesInfo_1.XyzSeriesInfo(this, hitTestInfo);\r\n case IDataSeries_1.EDataSeriesType.HeatmapUniform:\r\n return new HeatmapSeriesInfo_1.HeatmapSeriesInfo(this, hitTestInfo);\r\n case IDataSeries_1.EDataSeriesType.HeatmapNonUniform:\r\n return new HeatmapSeriesInfo_1.HeatmapSeriesInfo(this, hitTestInfo);\r\n case IDataSeries_1.EDataSeriesType.Hlc:\r\n return new HlcSeriesInfo_1.HlcSeriesInfo(this, hitTestInfo);\r\n default:\r\n return new XySeriesInfo_1.XySeriesInfo(this, hitTestInfo);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.onDpiChanged = function (args) {\r\n var _a, _b;\r\n (_a = this.drawingProviders) === null || _a === void 0 ? void 0 : _a.forEach(function (dp) {\r\n // Pass down to drawingProviders to invalidate caches\r\n dp.onDpiChanged(args);\r\n });\r\n (_b = this.pointMarker) === null || _b === void 0 ? void 0 : _b.onDpiChanged(args);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.toJSON = function (excludeData) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n if (excludeData === void 0) { excludeData = false; }\r\n var paletteProvider;\r\n if (this.paletteProvider) {\r\n if (\"toJSON\" in this.paletteProvider) {\r\n paletteProvider = this.paletteProvider.toJSON();\r\n }\r\n else {\r\n throw new Error(\"Series contains a palletProvider. This must implement toJSON to be correctly serialized\");\r\n }\r\n }\r\n var options = {\r\n id: this.id,\r\n drawNaNAs: this.drawNaNAs,\r\n effect: (_a = this.effect) === null || _a === void 0 ? void 0 : _a.toJSON(),\r\n isDigitalLine: this.isDigitalLine,\r\n isHovered: this.isHovered,\r\n isSelected: this.isSelected,\r\n isVisible: this.isVisible,\r\n opacity: this.opacity,\r\n paletteProvider: paletteProvider,\r\n pointMarker: (_b = this.pointMarker) === null || _b === void 0 ? void 0 : _b.toJSON(),\r\n stroke: this.stroke,\r\n strokeThickness: this.strokeThickness,\r\n xAxisId: this.xAxisId,\r\n yAxisId: this.yAxisId,\r\n animation: this.animation,\r\n resamplingMode: this.resamplingMode,\r\n resamplingPrecision: this.resamplingPrecision,\r\n clipToYRange: this.clipToYRange,\r\n yRangeMode: this.yRangeMode,\r\n onIsVisibleChanged: this.typeMap.get(\"onIsVisibleChanged\"),\r\n onSelectedChanged: this.typeMap.get(\"onSelectedChanged\"),\r\n onHoveredChanged: this.typeMap.get(\"onHoveredChanged\"),\r\n // @ts-ignore\r\n dataLabelProvider: (_c = this.dataLabelProvider) === null || _c === void 0 ? void 0 : _c.toJSON()\r\n // onSelectedChanged: this.onSelectedChanged\r\n };\r\n var dataSeriesDefinition = (_d = this.dataSeries) === null || _d === void 0 ? void 0 : _d.toJSON(excludeData);\r\n var dataSeriesOptions = dataSeriesDefinition === null || dataSeriesDefinition === void 0 ? void 0 : dataSeriesDefinition.options;\r\n if (((_e = this.dataSeries) === null || _e === void 0 ? void 0 : _e.type) === IDataSeries_1.EDataSeriesType.Xy) {\r\n return { type: this.type, options: options, xyData: dataSeriesOptions };\r\n }\r\n else if (((_f = this.dataSeries) === null || _f === void 0 ? void 0 : _f.type) === IDataSeries_1.EDataSeriesType.Xyy) {\r\n return { type: this.type, options: options, xyyData: dataSeriesOptions };\r\n }\r\n else if (((_g = this.dataSeries) === null || _g === void 0 ? void 0 : _g.type) === IDataSeries_1.EDataSeriesType.Xyz) {\r\n return { type: this.type, options: options, xyzData: dataSeriesOptions };\r\n }\r\n else if (((_h = this.dataSeries) === null || _h === void 0 ? void 0 : _h.type) === IDataSeries_1.EDataSeriesType.Ohlc) {\r\n return { type: this.type, options: options, ohlcData: dataSeriesOptions };\r\n }\r\n else if (((_j = this.dataSeries) === null || _j === void 0 ? void 0 : _j.type) === IDataSeries_1.EDataSeriesType.Hlc) {\r\n return { type: this.type, options: options, hlcData: dataSeriesOptions };\r\n }\r\n else if (((_k = this.dataSeries) === null || _k === void 0 ? void 0 : _k.type) === IDataSeries_1.EDataSeriesType.XyText) {\r\n return { type: this.type, options: options, xyTextData: dataSeriesOptions };\r\n }\r\n else if (((_l = this.dataSeries) === null || _l === void 0 ? void 0 : _l.type) === IDataSeries_1.EDataSeriesType.HeatmapUniform) {\r\n return {\r\n type: this.type,\r\n options: options,\r\n heatmapData: dataSeriesOptions\r\n };\r\n }\r\n else if (((_m = this.dataSeries) === null || _m === void 0 ? void 0 : _m.type) === IDataSeries_1.EDataSeriesType.HeatmapNonUniform) {\r\n return {\r\n type: this.type,\r\n options: options,\r\n heatmapData: dataSeriesOptions\r\n };\r\n }\r\n else {\r\n return { type: this.type, options: options };\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.enqueueAnimation = function (animation) {\r\n this.animationQueue.push(animation);\r\n this.invalidateParent();\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.runAnimation = function (animation) {\r\n var _a;\r\n this.animationQueue = [];\r\n (_a = this.animationFSM) === null || _a === void 0 ? void 0 : _a.toCompleted();\r\n this.enqueueAnimation(animation);\r\n };\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"animation\", {\r\n /**\r\n * Sets a start up animation class, a child class for {@link SeriesAnimation}\r\n */\r\n set: function (value) {\r\n if (value) {\r\n this.animationQueue.push(value);\r\n }\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"isRunningAnimation\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return animationHelpers_1.animationHelpers.checkIsAnimationRunning(this.animationQueue, this.animationFSM);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"isRunningDataAnimation\", {\r\n /**\r\n * gets if a data animation is currently running\r\n */\r\n get: function () {\r\n return (this.isRunningAnimation &&\r\n this.animationFSM &&\r\n (this.animationFSM.animation.isDataSeriesAnimation || this.animationFSM.animation.isOnStartAnimation));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.onAnimate = function (timeElapsed) {\r\n var _a;\r\n if (!this.animationFSM || ((_a = this.animationFSM) === null || _a === void 0 ? void 0 : _a.is([AnimationFiniteStateMachine_1.EAnimationState.Completed]))) {\r\n if (this.animationQueue.length >= 1) {\r\n var animation = this.animationQueue.shift();\r\n this.animationFSM = new AnimationFiniteStateMachine_1.SeriesAnimationFiniteStateMachine(animation, this);\r\n }\r\n else {\r\n this.animationFSM = undefined;\r\n }\r\n }\r\n if (!this.animationFSM)\r\n return;\r\n if (!this.dataSeries.xInitialAnimationValues) {\r\n this.dataSeries.createAnimationVectors();\r\n }\r\n animationHelpers_1.animationHelpers.animationUpdate(this.animationFSM, timeElapsed, this.beforeAnimationStart, this.afterAnimationComplete, this.updateAnimationProperties);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.toPointSeries = function (rp) {\r\n if (rp) {\r\n if (!this.pointSeries) {\r\n this.pointSeries = new XyPointSeriesResampled_1.XyPointSeriesResampled(this.webAssemblyContext, rp.xVisibleRange);\r\n }\r\n else {\r\n this.pointSeries.xRange = rp.xVisibleRange;\r\n }\r\n var result = this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rp, this.dataSeries.getNativeXValues(), this.dataSeries.getNativeYValues(), this.pointSeries.intIndexes, this.pointSeries.indexes, this.pointSeries.xValues, this.pointSeries.yValues, false);\r\n this.pointSeries.fifoStartIndex = result.OutputSplitIndex;\r\n // This is now done in the resampling above\r\n //this.pointSeries.updateIndexes();\r\n this.pointSeries.clearIntIndexes();\r\n //console.log(\"resampling \", this.type, this.pointSeries.count);\r\n // this.pointSeries.debugOutputForUnitTests();\r\n return this.pointSeries;\r\n }\r\n else {\r\n //console.log(\"NOT resampling \", this.type, this.dataSeries.count());\r\n return new XyPointSeriesWrapped_1.XyPointSeriesWrapped(this.dataSeries);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.getIndicesRange = function (xRange, isCategoryData) {\r\n var _a;\r\n if (isCategoryData === void 0) { isCategoryData = false; }\r\n return (_a = this.dataSeries) === null || _a === void 0 ? void 0 : _a.getIndicesRange(xRange, isCategoryData);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.getCurrentRenderPassData = function () {\r\n return this.currentRenderPassData;\r\n };\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"supportsResampling\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n var seriesTypeSupportsResampling = ![\r\n SeriesType_1.ESeriesType.UniformContoursSeries,\r\n SeriesType_1.ESeriesType.UniformHeatmapSeries,\r\n SeriesType_1.ESeriesType.NonUniformHeatmapSeries,\r\n SeriesType_1.ESeriesType.BubbleSeries,\r\n // ESeriesType.ScatterSeries,\r\n SeriesType_1.ESeriesType.ErrorBarsSeries\r\n ].includes(this.type);\r\n return (seriesTypeSupportsResampling &&\r\n SciChartDefaults_1.SciChartDefaults.enableResampling &&\r\n this.enableDrawingOptimisations &&\r\n !this.isStacked &&\r\n this.dataSeries &&\r\n this.dataSeries.count() > 0 &&\r\n (this.dataSeries.dataDistributionCalculator.isSortedAscending || this.xAxis.isCategoryAxis)\r\n //!this.dataSeries.fifoSweeping\r\n );\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Used internally to check if resampling is needed for the renderable series\r\n * @protected\r\n */\r\n BaseRenderableSeries.prototype.needsResampling = function (rp) {\r\n return this.resamplerHelper.needsResampling(rp, this.getNativeXValues());\r\n };\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"dataLabelProvider\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.dataLabelProviderProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (provider) {\r\n this.dataLabelProviderProperty = provider;\r\n provider.onAttach(this.webAssemblyContext, this);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_TEXT_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"renderDataTransform\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.renderDataTransformProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (transform) {\r\n if (transform.parentSeries !== this) {\r\n throw new Error(\"renderDataTransform can only be added to the series it was created with\");\r\n }\r\n this.renderDataTransformProperty = transform;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_TEXT_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n if (this.strokeProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = this.parentSurface.themeProvider.getStrokeColor(index, maxSeries, this.webAssemblyContext);\r\n this.stroke = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"stroke\", color);\r\n }\r\n if (this.pointMarker) {\r\n this.pointMarker.resolveAutoColors(index, maxSeries, theme);\r\n }\r\n if (this.dataLabelProvider) {\r\n this.dataLabelProvider.resolveAutoColors(index, maxSeries, theme);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries.prototype.adjustAutoColor = function (propertyName, color) {\r\n return color;\r\n };\r\n /**\r\n * Runs renderdataTransform to set transformedRenderPassData, usually for use with ranging.\r\n */\r\n BaseRenderableSeries.prototype.updateTransformedValues = function (valueType) {\r\n if (!this.dataSeries || !this.parentSurface) {\r\n return;\r\n }\r\n if (!this.currentRenderPassData) {\r\n this.currentRenderPassData = new RenderPassData_1.RenderPassData(this.getIndicesRange(this.xAxis.visibleRange, this.xAxis.isCategoryAxis), this.xAxis.getCurrentCoordinateCalculator, this.yAxis.getCurrentCoordinateCalculator, this.xAxis.isVerticalChart, new XyPointSeriesWrapped_1.XyPointSeriesWrapped(this.dataSeries, undefined, valueType));\r\n }\r\n this.transformedRenderPassData = this.renderDataTransform.runTransform(this.currentRenderPassData);\r\n };\r\n /**\r\n * Sets initial and end animation vectors\r\n * @param animation\r\n * @protected\r\n */\r\n BaseRenderableSeries.prototype.setAnimationVectors = function (animation) {\r\n var ds = this.dataSeries;\r\n if (animation.isOnStartAnimation) {\r\n ds.setFinalAnimationVectors(ds);\r\n }\r\n else if (animation.isDataSeriesAnimation) {\r\n ds.setInitialAnimationVectors(ds);\r\n ds.setFinalAnimationVectors(animation.dataSeries);\r\n ds.validateAnimationVectors();\r\n }\r\n };\r\n /**\r\n * Runs before the animation starts\r\n * @protected\r\n */\r\n BaseRenderableSeries.prototype.beforeAnimationStart = function () {\r\n var _a;\r\n var animation = this.animationFSM.animation;\r\n this.setAnimationVectors(animation);\r\n var animationPointMarkerStyle = (_a = animation === null || animation === void 0 ? void 0 : animation.styles) === null || _a === void 0 ? void 0 : _a.pointMarker;\r\n if (animationPointMarkerStyle) {\r\n this.pointMarker = animationHelpers_1.animationHelpers.createPointMarker(this.webAssemblyContext, animationPointMarkerStyle);\r\n }\r\n };\r\n /**\r\n * Runs after the animation is complete\r\n * @protected\r\n */\r\n BaseRenderableSeries.prototype.afterAnimationComplete = function () {\r\n if (this.dataSeries) {\r\n var ds = this.dataSeries;\r\n ds.setInitialAnimationVectors(undefined);\r\n ds.setFinalAnimationVectors(undefined);\r\n }\r\n };\r\n /**\r\n * Internal method that runs on each animation tick\r\n * @param progress The current animation progress, a value from 0 to 1\r\n * @param animationFSM The animation finite state machine\r\n * @protected\r\n */\r\n BaseRenderableSeries.prototype.updateAnimationProperties = function (progress, animationFSM) {\r\n var animation = animationFSM.animation;\r\n animation.updateSeriesProperties(this, animationFSM.initialStyles, animationFSM.animationProgress);\r\n var dataSeries = this.dataSeries;\r\n if (dataSeries) {\r\n dataSeries.updateAnimationProperties(progress, animation);\r\n // force pointseries to be recreated otherwise animations will not work for resampled data\r\n this.currentRenderPassData = undefined;\r\n }\r\n if (this.renderDataTransform) {\r\n this.renderDataTransform.requiresTransform = true;\r\n }\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n /**\r\n * Is being called when the data for the underlying DataSeries changes\r\n * @protected\r\n */\r\n BaseRenderableSeries.prototype.dataSeriesDataChanged = function (args) {\r\n if (this.renderDataTransform) {\r\n this.renderDataTransform.onDataChange(args);\r\n }\r\n this.invalidateParent();\r\n };\r\n BaseRenderableSeries.prototype.valueChanged = function (oldValue, newValue) {\r\n return oldValue !== newValue;\r\n };\r\n BaseRenderableSeries.prototype.setPaletteProvider = function (paletteProvider) {\r\n var _a, _b;\r\n if ((_a = this.paletteProviderProperty) === null || _a === void 0 ? void 0 : _a.onDetached) {\r\n this.paletteProviderProperty.onDetached();\r\n }\r\n this.paletteProviderProperty = paletteProvider;\r\n if ((_b = this.paletteProviderProperty) === null || _b === void 0 ? void 0 : _b.onAttached) {\r\n this.paletteProviderProperty.onAttached(this);\r\n }\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PALETTE_PROVIDER);\r\n };\r\n BaseRenderableSeries.prototype.invalidateParent = function () {\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n BaseRenderableSeries.prototype.effectPropertyChanged = function () {\r\n this.invalidateParent();\r\n };\r\n Object.defineProperty(BaseRenderableSeries.prototype, \"canDraw\", {\r\n get: function () {\r\n return animationHelpers_1.animationHelpers.checkCanDraw(this.animationFSM);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BaseRenderableSeries;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BaseRenderableSeries = BaseRenderableSeries;\r\n/** @ignore */\r\nvar getDataPointWidth = function (xValues, xCoordCalc, seriesViewRectWidth, widthFraction, isCategoryAxis, wasmContext) {\r\n if (widthFraction < 0 || widthFraction > 1) {\r\n throw new Error(\"WidthFraction should be between 0.0 and 1.0 inclusive\");\r\n }\r\n // TODO: vertical chart\r\n var count = xValues.size();\r\n var dataPointWidth = seriesViewRectWidth;\r\n var barsAmount = count;\r\n // TODO: logarithmic axis\r\n if (barsAmount > 1) {\r\n var max = Number.MIN_VALUE;\r\n var min = Number.MAX_VALUE;\r\n if (isCategoryAxis) {\r\n max = xCoordCalc.getCoordinate(count - 1);\r\n min = xCoordCalc.getCoordinate(0);\r\n }\r\n else {\r\n var minMax = void 0;\r\n try {\r\n minMax = wasmContext.NumberUtil.MinMax(xValues);\r\n // if (!isRealNumber(minMax.minD) || !isRealNumber(minMax.maxD)) {\r\n // return new NumberRange(0, 0);\r\n // }\r\n min = minMax.minD;\r\n max = minMax.maxD;\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n }\r\n max = xCoordCalc.getCoordinate(max);\r\n min = xCoordCalc.getCoordinate(min);\r\n }\r\n dataPointWidth = Math.abs(max - min) / (barsAmount - 1);\r\n }\r\n else if (barsAmount === 1) {\r\n dataPointWidth = Math.min(dataPointWidth, xCoordCalc.getCoordinate(xValues.get(0)) * 2);\r\n }\r\n var candleWidth = Math.floor(dataPointWidth * widthFraction);\r\n if (candleWidth % 2 !== 0) {\r\n candleWidth -= 1;\r\n }\r\n if (candleWidth <= 1) {\r\n candleWidth = 1;\r\n }\r\n return candleWidth;\r\n};\r\nexports.getDataPointWidth = getDataPointWidth;\r\n/** @ignore */\r\nvar getDelta = function (_a) {\r\n var pointSize = _a.pointSize, areaSize = _a.areaSize, range = _a.range;\r\n if (areaSize === 0) {\r\n return 0;\r\n }\r\n var pointScaled = pointSize * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var k = areaSize / (areaSize - pointScaled);\r\n return (Math.abs(range.diff) * (k - 1)) / 2;\r\n};\r\nexports.getDelta = getDelta;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseStackedCollection = void 0;\r\nvar AnimationFiniteStateMachine_1 = require(\"../../../Core/Animations/AnimationFiniteStateMachine\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar ObservableArray_1 = require(\"../../../Core/ObservableArray\");\r\nvar SearchMode_1 = require(\"../../../types/SearchMode\");\r\nvar YRangeMode_1 = require(\"../../../types/YRangeMode\");\r\nvar guid_1 = require(\"../../../utils/guid\");\r\nvar MemoryUsageHelper_1 = require(\"../../../utils/MemoryUsageHelper\");\r\nvar BaseDataSeries_1 = require(\"../../Model/BaseDataSeries\");\r\nvar AxisCore_1 = require(\"../Axis/AxisCore\");\r\nvar animationHelpers_1 = require(\"./Animations/animationHelpers\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * A base class for stacked collections, which are used to create stacked mountain or column chart types.\r\n * Concrete types are {@link StackedColumnCollection} and {@link StackedMountainCollection}\r\n */\r\nvar BaseStackedCollection = /** @class */ (function (_super) {\r\n __extends(BaseStackedCollection, _super);\r\n /**\r\n * Creates an instance of the {@link BaseStackedCollection}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IBaseStackedCollectionOptions} to configure the series\r\n */\r\n function BaseStackedCollection(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e;\r\n _this = _super.call(this) || this;\r\n /** @inheritDoc */\r\n _this.id = (0, guid_1.generateGuid)();\r\n /** @inheritDoc */\r\n _this.isStacked = true;\r\n /** @inheritDoc */\r\n _this.supportsResampling = false;\r\n /** @inheritDoc */\r\n _this.isSpline = false;\r\n /** @inheritDoc */\r\n _this.enableDrawingOptimisations = true;\r\n _this.isAccumulatedVectorDirty = true;\r\n _this.firstAnimationRender = false;\r\n _this.isVisibleProperty = true;\r\n _this.xAxisIdProperty = AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.yAxisIdProperty = AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.isOneHundredPercentProperty = false;\r\n _this.animationQueue = [];\r\n _this.yRangeModeProperty = YRangeMode_1.EYRangeMode.Drawn;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.isVisibleProperty = (_a = options === null || options === void 0 ? void 0 : options.isVisible) !== null && _a !== void 0 ? _a : _this.isVisibleProperty;\r\n _this.xAxisIdProperty = (_b = options === null || options === void 0 ? void 0 : options.xAxisId) !== null && _b !== void 0 ? _b : _this.xAxisIdProperty;\r\n _this.yAxisIdProperty = (_c = options === null || options === void 0 ? void 0 : options.yAxisId) !== null && _c !== void 0 ? _c : _this.yAxisIdProperty;\r\n _this.isOneHundredPercentProperty = (_d = options === null || options === void 0 ? void 0 : options.isOneHundredPercent) !== null && _d !== void 0 ? _d : _this.isOneHundredPercentProperty;\r\n _this.yRangeModeProperty = (_e = options === null || options === void 0 ? void 0 : options.yRangeMode) !== null && _e !== void 0 ? _e : _this.yRangeModeProperty;\r\n _this.updateAnimationProperties = _this.updateAnimationProperties.bind(_this);\r\n _this.notifyPropertyChanged = _this.notifyPropertyChanged.bind(_this);\r\n _this.getParentSurface = _this.getParentSurface.bind(_this);\r\n _this.beforeAnimationStart = _this.beforeAnimationStart.bind(_this);\r\n _this.afterAnimationComplete = _this.afterAnimationComplete.bind(_this);\r\n _this.updateAnimationProperties = _this.updateAnimationProperties.bind(_this);\r\n _this.accumulatedValues0 = new _this.webAssemblyContext.SCRTDoubleVector();\r\n _this.accumulatedFinalAnimationValues0 = new _this.webAssemblyContext.SCRTDoubleVector();\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {\r\n return (0, DeletableEntity_1.createTrackableProxy)(_this);\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(BaseStackedCollection.prototype, \"isVisibleChanged\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n throw new Error(\"getting visibleChanged event is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"selected\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n throw new Error(\"getting selected event is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"hovered\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n throw new Error(\"getting hovered event is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"isSelected\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return false;\r\n },\r\n /** @inheritDoc */\r\n set: function (isSelected) {\r\n throw new Error(\"Setting isSelected is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"isHovered\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return false;\r\n },\r\n /** @inheritDoc */\r\n set: function (isHovered) {\r\n throw new Error(\"Setting isHovered is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"isDigitalLine\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n throw new Error(\"Setting or getting isDigitalLine is not supported for BaseStackedCollection\");\r\n },\r\n /** @inheritDoc */\r\n set: function (isDigitalLine) {\r\n throw new Error(\"Setting or getting isDigitalLine is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"isVisible\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isVisibleProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isVisible) {\r\n this.isVisibleProperty = isVisible;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_VISIBLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"xAxis\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n var _this = this;\r\n return this.parentSurface.xAxes.asArray().find(function (el) { return el.id === _this.xAxisId; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"xAxisId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.xAxisIdProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (id) {\r\n this.xAxisIdProperty = id;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.XAXIS_ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"yAxis\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n var _this = this;\r\n return this.parentSurface.yAxes.asArray().find(function (el) { return el.id === _this.yAxisId; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"yAxisId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.yAxisIdProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (id) {\r\n this.yAxisIdProperty = id;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.YAXIS_ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"isOneHundredPercent\", {\r\n /**\r\n * Gets or sets 100% mode. When true, the stacked group becomes a 100% stacked chart\r\n */\r\n get: function () {\r\n return this.isOneHundredPercentProperty;\r\n },\r\n /**\r\n * Gets or sets 100% mode. When true, the stacked group becomes a 100% stacked chart\r\n */\r\n set: function (value) {\r\n this.isOneHundredPercentProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_ONE_HUNDRED_PERCENT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"yRangeMode\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.yRangeModeProperty;\r\n },\r\n set: function (value) {\r\n if (this.yRangeModeProperty !== value) {\r\n this.yRangeModeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.YRANGEMODE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"dataSeries\", {\r\n // PROPERTIES END\r\n // Un-Supported PROPERTIES\r\n /**\r\n * dataSeries property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"dataSeries property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * dataSeries property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"dataSeries property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"drawNaNAs\", {\r\n /**\r\n * drawNaNAs property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"drawNaNAs property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * drawNaNAs property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"drawNaNAs property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"drawingProviders\", {\r\n /**\r\n * drawingProviders property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"drawingProviders property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * drawingProviders property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"drawingProviders property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"hitTestProvider\", {\r\n /**\r\n * hitTestProvider property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"hitTestProvider property is not supported for BaseStackedCollection, call hitTestProvider on BaseStackedRenderableSeries instead\");\r\n },\r\n /**\r\n * hitTestProvider property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"hitTestProvider property is not supported for BaseStackedCollection, call hitTestProvider on BaseStackedRenderableSeries instead\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"paletteProvider\", {\r\n /**\r\n * paletteProvider property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"paletteProvider property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * paletteProvider property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"paletteProvider property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"pointMarker\", {\r\n /**\r\n * pointMarker property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"pointMarker property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * pointMarker property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"pointMarker property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"rolloverModifierProps\", {\r\n /**\r\n * rolloverModifierProps property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"rolloverModifierProps property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * rolloverModifierProps property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"rolloverModifierProps property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"stroke\", {\r\n /**\r\n * stroke property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"stroke property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * stroke property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"stroke property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"strokeThickness\", {\r\n /**\r\n * strokeThickness property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"strokeThickness property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * strokeThickness property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"strokeThickness property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"effect\", {\r\n /**\r\n * effect property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"effect property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * effect property is not supported for BaseStackedCollection\r\n */\r\n set: function (effect) {\r\n throw Error(\"effect property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"opacity\", {\r\n /**\r\n * opacity property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"opacity property is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * opacity property is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"effect property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"rolloverModifierProps1\", {\r\n /**\r\n * rolloverModifierProps1() is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"rolloverModifierProps1() method is not supported for BaseStackedCollection\");\r\n },\r\n /**\r\n * rolloverModifierProps1() is not supported for BaseStackedCollection\r\n */\r\n set: function (value) {\r\n throw Error(\"rolloverModifierProps1() method is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"resamplingMode\", {\r\n /**\r\n * resamplingMode property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"resamplingMode property is not supported for BaseStackedCollection\");\r\n },\r\n set: function (value) {\r\n throw Error(\"resamplingMode property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"resamplingPrecision\", {\r\n /**\r\n * resamplingPrecision property is not supported for BaseStackedCollection\r\n */\r\n get: function () {\r\n throw Error(\"resamplingPrecision property is not supported for BaseStackedCollection\");\r\n },\r\n set: function (value) {\r\n throw Error(\"resamplingPrecision property is not supported for BaseStackedCollection\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Notify the collection that the accumulated values need to be recalculated\r\n */\r\n BaseStackedCollection.prototype.setAccumulatedValuesDirty = function () {\r\n this.isAccumulatedVectorDirty = true;\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.getIndicesRange = function (xRange) {\r\n throw Error(\"getIndicesRange() method is not supported for BaseStackedCollection\");\r\n };\r\n Object.defineProperty(BaseStackedCollection.prototype, \"canDraw\", {\r\n get: function () {\r\n return animationHelpers_1.animationHelpers.checkCanDraw(this.animationFSM);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.pushPalettedColors = function (color, palettingState) {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.getSeriesInfo = function (hitTestInfo) {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.applyTheme = function (themeProvider) {\r\n this.asArray().forEach(function (rs) {\r\n rs.applyTheme(themeProvider);\r\n });\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.delete = function () {\r\n this.accumulatedValues0 = (0, Deleter_1.deleteSafe)(this.accumulatedValues0);\r\n this.accumulatedFinalAnimationValues0 = (0, Deleter_1.deleteSafe)(this.accumulatedFinalAnimationValues0);\r\n this.dataLabelProviderProperty = (0, Deleter_1.deleteSafe)(this.dataLabelProvider);\r\n this.asArray().forEach(function (series) {\r\n series.delete();\r\n });\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.notifyPropertyChanged = function (propertyName) {\r\n this.invalidateParent();\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.onDpiChanged = function (args) {\r\n this.asArray().forEach(function (rs) { return rs.onDpiChanged(args); });\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.getBaseXValues = function () {\r\n // TODO: find out do we need this method at all\r\n return [];\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.getDataSeriesName = function () {\r\n // TODO: come up with some better name\r\n return \"Stacked Collection\";\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.getDataSeriesValuesCount = function () {\r\n if (!this.getNativeXValues()) {\r\n return undefined;\r\n }\r\n return this.getNativeXValues().size();\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.getNativeXValues = function () {\r\n var _a;\r\n if (this.size() === 0) {\r\n return undefined;\r\n }\r\n return (_a = this.get(0).dataSeries) === null || _a === void 0 ? void 0 : _a.getNativeXValues();\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.getYRange = function (xVisibleRange, isXCategoryAxis) {\r\n var _this = this;\r\n if (!this.isEnoughDataToDraw()) {\r\n return new NumberRange_1.NumberRange();\r\n }\r\n var maxRange;\r\n this.getVisibleSeries().forEach(function (rs) {\r\n if (rs.accumulatedValues.size() === _this.getNativeXValues().size()) {\r\n // TODO: calc isSorted flag\r\n var range = (0, BaseDataSeries_1.getWindowedYRange)(_this.webAssemblyContext, _this.getNativeXValues(), rs.accumulatedValues, xVisibleRange, true, isXCategoryAxis, true, _this.yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, _this.yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);\r\n if (range) {\r\n maxRange = maxRange ? maxRange.union(range) : range;\r\n }\r\n }\r\n });\r\n if (maxRange)\r\n return maxRange;\r\n return new NumberRange_1.NumberRange();\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.hasDataSeries = function () {\r\n return !!this.getNativeXValues();\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.hasStrokePaletteProvider = function () {\r\n // TODO: implement\r\n return false;\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.hasFillPaletteProvider = function () {\r\n // TODO: implement\r\n return false;\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.hasPointMarkerPaletteProvider = function () {\r\n // TODO: implement\r\n return false;\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.onAttach = function (scs) {\r\n this.parentSurface = scs;\r\n if (this.invalidateParentCallback) {\r\n throw new Error(\"Invalid operation in sciChartSurface.attachSeries, this series has already been attached to a SciChartSurface. Please detach it from a SciChartSurface before attaching to another\");\r\n }\r\n this.invalidateParentCallback = scs.invalidateElement;\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.onDetach = function () {\r\n this.invalidateParentCallback = undefined;\r\n this.parentSurface = undefined;\r\n };\r\n /**\r\n * Gets visible renderable series array\r\n */\r\n BaseStackedCollection.prototype.getVisibleSeries = function () {\r\n return this.asArray().filter(function (el) { return el.isVisible; });\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.enqueueAnimation = function (animation) {\r\n this.animationQueue.push(animation);\r\n this.invalidateParent();\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.runAnimation = function (animation) {\r\n this.animationQueue = [];\r\n this.animationFSM.toCompleted();\r\n this.afterAnimationComplete();\r\n };\r\n Object.defineProperty(BaseStackedCollection.prototype, \"animation\", {\r\n /**\r\n * Sets a start up animation class, a child class for {@link BaseAnimation}\r\n */\r\n set: function (value) {\r\n if (value) {\r\n this.animationQueue.push(value);\r\n }\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedCollection.prototype, \"isRunningAnimation\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n if (animationHelpers_1.animationHelpers.checkIsAnimationRunning(this.animationQueue, this.animationFSM)) {\r\n return true;\r\n }\r\n if (this.getVisibleSeries().some(function (s) { return s.isRunningAnimation; })) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.onAnimate = function (timeElapsed) {\r\n var _a;\r\n if (!this.animationFSM || ((_a = this.animationFSM) === null || _a === void 0 ? void 0 : _a.is([AnimationFiniteStateMachine_1.EAnimationState.Completed]))) {\r\n if (this.animationQueue.length >= 1) {\r\n var animation = this.animationQueue.shift();\r\n this.animationFSM = new AnimationFiniteStateMachine_1.SeriesAnimationFiniteStateMachine(animation, undefined);\r\n }\r\n else {\r\n this.animationFSM = undefined;\r\n }\r\n }\r\n this.getVisibleSeries().forEach(function (rs) {\r\n if (rs.isRunningAnimation) {\r\n rs.onAnimate(timeElapsed);\r\n }\r\n });\r\n if (!this.animationFSM)\r\n return;\r\n animationHelpers_1.animationHelpers.animationUpdate(this.animationFSM, timeElapsed, this.beforeAnimationStart, this.afterAnimationComplete, this.updateAnimationProperties);\r\n };\r\n /**\r\n * checkIsOutOfDataRange() is not supported for BaseStackedCollection\r\n * @param xValue\r\n * @param yValue\r\n */\r\n BaseStackedCollection.prototype.checkIsOutOfDataRange = function (xValue, yValue) {\r\n throw Error(\"checkIsOutOfDataRange() method is not supported for BaseStackedCollection\");\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.toPointSeries = function (resamplingParams) {\r\n // not used for BaseStackedCollection\r\n return undefined;\r\n };\r\n /**\r\n * getCurrentRenderPassData method is not supported for BaseStackedCollection\r\n */\r\n BaseStackedCollection.prototype.getCurrentRenderPassData = function () {\r\n throw Error(\"getCurrentRenderPassData method is not supported for BaseStackedCollection\");\r\n };\r\n Object.defineProperty(BaseStackedCollection.prototype, \"dataLabelProvider\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.dataLabelProviderProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (provider) {\r\n this.dataLabelProviderProperty = provider;\r\n provider.onAttach(this.webAssemblyContext, this);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_TEXT_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.toJSON = function (excludeData) {\r\n var _a;\r\n if (excludeData === void 0) { excludeData = false; }\r\n var series = [];\r\n for (var _i = 0, _b = this.asArray(); _i < _b.length; _i++) {\r\n var subSeries = _b[_i];\r\n series.push(subSeries.toJSON(excludeData));\r\n }\r\n var options = {\r\n isVisible: this.isVisible,\r\n isOneHundredPercent: this.isOneHundredPercent,\r\n xAxisId: this.xAxisId,\r\n yAxisId: this.yAxisId,\r\n yRangeMode: this.yRangeMode,\r\n // @ts-ignore\r\n dataLabelProvider: (_a = this.dataLabelProvider) === null || _a === void 0 ? void 0 : _a.toJSON()\r\n };\r\n // @ts-ignore\r\n return { type: this.type, series: series, options: options };\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n for (var i = 0; i < this.size(); i++) {\r\n var rs = this.get(i);\r\n rs.resolveAutoColors(index + i, maxSeries, theme);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseStackedCollection.prototype.adjustAutoColor = function (propertyName, color) {\r\n return color;\r\n };\r\n BaseStackedCollection.prototype.isAllDataSeriesSet = function () {\r\n var isDataSeriesSet = true;\r\n this.asArray().forEach(function (el) {\r\n if (!el.dataSeries) {\r\n isDataSeriesSet = false;\r\n }\r\n });\r\n return isDataSeriesSet;\r\n };\r\n /**\r\n * notifies listeners to {@link invalidateParentCallback} and redraws the {@link SciChartSurface}\r\n */\r\n BaseStackedCollection.prototype.invalidateParent = function () {\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n /**\r\n * Gets the first series in the collection, else undefined\r\n */\r\n BaseStackedCollection.prototype.getFirstSeries = function () {\r\n if (this.size() === 0) {\r\n return undefined;\r\n }\r\n return this.get(0);\r\n };\r\n /**\r\n * Gets the parent {@link SciChartSurface}\r\n */\r\n BaseStackedCollection.prototype.getParentSurface = function () {\r\n return this.parentSurface;\r\n };\r\n /**\r\n * Runs before the animation starts\r\n * @protected\r\n */\r\n BaseStackedCollection.prototype.beforeAnimationStart = function () {\r\n this.updateAccumulatedVectors();\r\n var size = this.accumulatedValues0.size();\r\n this.accumulatedFinalAnimationValues0.resize(size, 0);\r\n for (var i = 0; i < size; i++) {\r\n this.accumulatedFinalAnimationValues0.set(i, this.accumulatedValues0.get(i));\r\n }\r\n this.getVisibleSeries().forEach(function (rs) {\r\n rs.beforeAnimationStart();\r\n });\r\n };\r\n /**\r\n * Runs after the animation is complete\r\n * @protected\r\n */\r\n BaseStackedCollection.prototype.afterAnimationComplete = function () {\r\n this.getVisibleSeries().forEach(function (rs) {\r\n rs.afterAnimationComplete();\r\n });\r\n };\r\n /**\r\n * Internal method that runs on each animation tick\r\n * @param progress The current animation progress, a value from 0 to 1\r\n * @param animationFSM The animation finite state machine\r\n * @protected\r\n */\r\n BaseStackedCollection.prototype.updateAnimationProperties = function (progress, animationFSM) {\r\n if (this.isAllDataSeriesSet()) {\r\n animationFSM.animation.calculateAnimationValues(this.webAssemblyContext, this.accumulatedFinalAnimationValues0, this.accumulatedValues0, progress);\r\n this.getVisibleSeries().forEach(function (rs) {\r\n rs.updateAnimationProperties(progress, animationFSM);\r\n });\r\n }\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n BaseStackedCollection.prototype.updateHitTestProviders = function (renderPassData) {\r\n this.getVisibleSeries().forEach(function (el) {\r\n var _a;\r\n (_a = el.hitTestProvider) === null || _a === void 0 ? void 0 : _a.update(renderPassData);\r\n });\r\n };\r\n BaseStackedCollection.prototype.isEnoughDataToDraw = function () {\r\n var stackedSeriesCount = this.getVisibleSeries().length;\r\n if (stackedSeriesCount < 1) {\r\n return false;\r\n }\r\n // All renderableSeries should have dataSeries property\r\n for (var i = 0; i < stackedSeriesCount; i++) {\r\n if (!this.get(i).dataSeries) {\r\n return false;\r\n }\r\n }\r\n // All dataSeries should have some values\r\n for (var i = 0; i < stackedSeriesCount; i++) {\r\n if (this.get(i).dataSeries.count() === 0) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return BaseStackedCollection;\r\n}(ObservableArray_1.ObservableArray));\r\nexports.BaseStackedCollection = BaseStackedCollection;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseStackedRenderableSeries = void 0;\r\nvar classFactory_1 = require(\"../../../Builder/classFactory\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar BaseType_1 = require(\"../../../types/BaseType\");\r\nvar DataLabelProviderType_1 = require(\"../../../types/DataLabelProviderType\");\r\nvar StackedXySeriesInfo_1 = require(\"../../Model/ChartData/StackedXySeriesInfo\");\r\nvar IDataSeries_1 = require(\"../../Model/IDataSeries\");\r\nvar ResamplingMode_1 = require(\"../../Numerics/Resamplers/ResamplingMode\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar RolloverModifierRenderableSeriesProps_1 = require(\"./RolloverModifier/RolloverModifierRenderableSeriesProps\");\r\n/**\r\n * Base class for stacked mountain, column series in SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * See derived types {@link StackedMountainRenderableSeries} and {@link StackedColumnRenderableSeries} for\r\n * details on how to implement stacked column and mountain charts in SciChart\r\n */\r\nvar BaseStackedRenderableSeries = /** @class */ (function (_super) {\r\n __extends(BaseStackedRenderableSeries, _super);\r\n /**\r\n * Creates an instance of a {@link BaseStackedRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n */\r\n function BaseStackedRenderableSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /** @inheritDoc */\r\n _this.isStacked = true;\r\n _this.rolloverModifierProps = new RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps(_this);\r\n // used to track if registered types were used for function properties, so they can be serialized\r\n _this.typeMap = new Map();\r\n _this.opacityOriginalValue = 1;\r\n _this.isStacked = true;\r\n _this.accumulatedValues = new webAssemblyContext.SCRTDoubleVector();\r\n _this.accumulatedFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();\r\n if (options === null || options === void 0 ? void 0 : options.dataLabelProvider) {\r\n if (!(\"draw\" in options.dataLabelProvider)) {\r\n if (options.dataLabelProvider.type === DataLabelProviderType_1.EDataLabelProviderType.Custom) {\r\n options.dataLabelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.DataLabelProvider, options.dataLabelProvider.customType, webAssemblyContext, options.dataLabelProvider.options);\r\n }\r\n else {\r\n options.dataLabelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.DataLabelProvider, options.dataLabelProvider.type, webAssemblyContext, options.dataLabelProvider.options);\r\n }\r\n }\r\n }\r\n _this.dataLabelProviderProperty = options === null || options === void 0 ? void 0 : options.dataLabelProvider;\r\n if (_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty.onAttach(webAssemblyContext, _this);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n BaseStackedRenderableSeries.prototype.dataSeriesDataChanged = function () {\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DATA_SERIES);\r\n };\r\n // PUBLIC\r\n /** @inheritdoc */\r\n BaseStackedRenderableSeries.prototype.draw = function (renderContext, renderPassData) {\r\n var _a;\r\n this.currentRenderPassData = renderPassData;\r\n (_a = this.hitTestProvider) === null || _a === void 0 ? void 0 : _a.update(renderPassData);\r\n if (this.dataLabelProvider) {\r\n this.dataLabelProvider.generateDataLabels(renderContext, renderPassData);\r\n // Don't draw Text here. Renderer will call draw once all text has been created to allow for global layout adjustments\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseStackedRenderableSeries.prototype.delete = function () {\r\n this.accumulatedValues = (0, Deleter_1.deleteSafe)(this.accumulatedValues);\r\n this.accumulatedFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.accumulatedFinalAnimationValues);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * Called when the {@link BaseStackedRenderableSeries} is detached from its parent {@link BaseStackedCollection}\r\n */\r\n BaseStackedRenderableSeries.prototype.onDetachFromParentCollection = function () {\r\n // console.log(\"onDetachFromParentCollection\");\r\n this.parentCollection = undefined;\r\n this.getParentSurfaceFn = undefined;\r\n this.notifyParentPropertyChangedFn = undefined;\r\n this.delete();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseStackedRenderableSeries.prototype.notifyPropertyChanged = function (propertyName) {\r\n this.drawingProviders.forEach(function (dp) { return dp.onSeriesPropertyChange(propertyName); });\r\n if (this.notifyParentPropertyChangedFn) {\r\n this.notifyParentPropertyChangedFn(propertyName);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseStackedRenderableSeries.prototype.checkIsOutOfDataRange = function (xValue, yValue) {\r\n var length = this.getDataSeriesValuesCount();\r\n var isCategoryAxis = this.xAxis.getCurrentCoordinateCalculator().isCategoryCoordinateCalculator;\r\n var min = isCategoryAxis ? 0 : this.getNativeXValues().get(0);\r\n var max = isCategoryAxis ? length - 1 : this.getNativeXValues().get(length - 1);\r\n return xValue < min || xValue > max;\r\n };\r\n // NOT SUPPORTED METHODS BEGIN\r\n /**\r\n * getBaseXValues() is not supported for BaseStackedRenderableSeries\r\n */\r\n BaseStackedRenderableSeries.prototype.getBaseXValues = function () {\r\n throw Error(\"getBaseXValues() is not supported for BaseStackedRenderableSeries\");\r\n };\r\n /**\r\n * hasStrokePaletteProvider() is not supported for BaseStackedRenderableSeries\r\n */\r\n BaseStackedRenderableSeries.prototype.hasStrokePaletteProvider = function () {\r\n throw Error(\"hasStrokePaletteProvider() method is not supported for BaseStackedRenderableSeries\");\r\n };\r\n /**\r\n * hasPointMarkerPaletteProvider() is not supported for BaseStackedRenderableSeries\r\n */\r\n BaseStackedRenderableSeries.prototype.hasPointMarkerPaletteProvider = function () {\r\n throw Error(\"hasFillPaletteProvider() method is not supported for BaseStackedRenderableSeries\");\r\n };\r\n /**\r\n * hasFillPaletteProvider() is not supported for BaseStackedRenderableSeries\r\n */\r\n BaseStackedRenderableSeries.prototype.hasFillPaletteProvider = function () {\r\n throw Error(\"hasFillPaletteProvider() method is not supported for BaseStackedRenderableSeries\");\r\n };\r\n /**\r\n * onAttach() is not supported for BaseStackedRenderableSeries\r\n */\r\n BaseStackedRenderableSeries.prototype.onAttach = function (scs) {\r\n throw Error(\"onAttach() method is not supported for BaseStackedRenderableSeries\");\r\n };\r\n /**\r\n * onDetach() is not supported for BaseStackedRenderableSeries\r\n */\r\n BaseStackedRenderableSeries.prototype.onDetach = function () {\r\n throw Error(\"onDetach() method is not supported for BaseStackedRenderableSeries\");\r\n };\r\n Object.defineProperty(BaseStackedRenderableSeries.prototype, \"resamplingMode\", {\r\n /**\r\n * resamplingMode property is not supported for BaseStackedRenderableSeries\r\n */\r\n get: function () {\r\n return ResamplingMode_1.EResamplingMode.None;\r\n },\r\n set: function (value) {\r\n throw Error(\"Setting resamplingMode property is not supported for BaseStackedRenderableSeries\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedRenderableSeries.prototype, \"resamplingPrecision\", {\r\n /**\r\n * resamplingPrecision property is not supported for BaseStackedRenderableSeries\r\n */\r\n get: function () {\r\n throw Error(\"resamplingPrecision property is not supported for BaseStackedRenderableSeries\");\r\n },\r\n set: function (value) {\r\n throw Error(\"resamplingPrecision property is not supported for BaseStackedRenderableSeries\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedRenderableSeries.prototype, \"dataLabelProvider\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.dataLabelProviderProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (provider) {\r\n this.dataLabelProviderProperty = provider;\r\n provider.onAttach(this.webAssemblyContext, this);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_TEXT_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedRenderableSeries.prototype, \"parentSurface\", {\r\n // NOT SUPPORTED METHODS END\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n if (this.getParentSurfaceFn) {\r\n return this.getParentSurfaceFn();\r\n }\r\n else {\r\n return undefined;\r\n }\r\n },\r\n /**\r\n * set parentSurface property is not supported for BaseStackedRenderableSeries\r\n */\r\n set: function (value) {\r\n throw Error(\"set parentSurface property is not supported for BaseStackedRenderableSeries\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedRenderableSeries.prototype, \"xAxis\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.parentCollection.xAxis;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedRenderableSeries.prototype, \"yAxis\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.parentCollection.yAxis;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Runs before the animation starts\r\n * @protected\r\n */\r\n BaseStackedRenderableSeries.prototype.beforeAnimationStart = function () {\r\n this.opacityOriginalValue = this.opacity;\r\n if (this.isRunningAnimation) {\r\n _super.prototype.beforeAnimationStart.call(this);\r\n return;\r\n }\r\n var size = this.accumulatedValues.size();\r\n this.accumulatedFinalAnimationValues.resize(size, 0);\r\n for (var i = 0; i < size; i++) {\r\n this.accumulatedFinalAnimationValues.set(i, this.accumulatedValues.get(i));\r\n }\r\n };\r\n /**\r\n * Runs after the animation is complete\r\n * @protected\r\n */\r\n BaseStackedRenderableSeries.prototype.afterAnimationComplete = function () {\r\n this.opacityProperty = this.opacityOriginalValue;\r\n if (this.isRunningAnimation) {\r\n _super.prototype.afterAnimationComplete.call(this);\r\n }\r\n };\r\n /**\r\n * Internal method that runs on each animation tick\r\n * @param progress The current animation progress, a value from 0 to 1\r\n * @param animationFSM The animation finite state machine\r\n * @protected\r\n */\r\n BaseStackedRenderableSeries.prototype.updateAnimationProperties = function (progress, animationFSM) {\r\n if (this.isRunningAnimation) {\r\n _super.prototype.updateAnimationProperties.call(this, progress, this.animationFSM);\r\n this.parentCollection.setAccumulatedValuesDirty();\r\n return;\r\n }\r\n if (animationFSM.animation.isFadeEffectAnimation) {\r\n this.opacity = progress * this.opacityOriginalValue;\r\n }\r\n else {\r\n this.opacity = this.opacityOriginalValue;\r\n }\r\n animationFSM.animation.calculateAnimationValues(this.webAssemblyContext, this.accumulatedFinalAnimationValues, this.accumulatedValues, progress);\r\n if (this.renderDataTransform) {\r\n this.renderDataTransform.requiresTransform = true;\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseStackedRenderableSeries.prototype.getSeriesInfo = function (hitTestInfo) {\r\n return new StackedXySeriesInfo_1.StackedXySeriesInfo(this, hitTestInfo);\r\n };\r\n /** @inheritDoc */\r\n BaseStackedRenderableSeries.prototype.toJSON = function (excludeData) {\r\n var _a, _b;\r\n if (excludeData === void 0) { excludeData = false; }\r\n var options = {\r\n id: this.id,\r\n opacity: this.opacity,\r\n animation: this.animation,\r\n // @ts-ignore\r\n dataLabelProvider: (_a = this.dataLabelProvider) === null || _a === void 0 ? void 0 : _a.toJSON()\r\n };\r\n if (((_b = this.dataSeries) === null || _b === void 0 ? void 0 : _b.type) === IDataSeries_1.EDataSeriesType.Xy) {\r\n // @ts-ignore\r\n return { type: this.type, options: options, xyData: this.dataSeries.toJSON(excludeData).options };\r\n }\r\n else {\r\n // @ts-ignore\r\n return { type: this.type, options: options };\r\n }\r\n };\r\n /**\r\n * toPointSeries method is not supported for BaseStackedRenderableSeries\r\n * @param resamplingParams\r\n */\r\n BaseStackedRenderableSeries.prototype.toPointSeries = function (resamplingParams) {\r\n throw Error(\"toPointSeries method is not supported for BaseStackedRenderableSeries\");\r\n };\r\n /**\r\n * getCurrentRenderPassData method is not supported for BaseStackedRenderableSeries\r\n */\r\n BaseStackedRenderableSeries.prototype.getCurrentRenderPassData = function () {\r\n throw Error(\"getCurrentRenderPassData method is not supported for BaseStackedRenderableSeries\");\r\n };\r\n Object.defineProperty(BaseStackedRenderableSeries.prototype, \"xAxisId\", {\r\n /**\r\n * xAxisId property is not supported for BaseStackedRenderableSeries,\r\n * instead set on the {@link StackedColumnCollection} or {@link StackedMountainCollection}\r\n */\r\n get: function () {\r\n var _a;\r\n return (_a = this.parentCollection) === null || _a === void 0 ? void 0 : _a.xAxisId;\r\n },\r\n /**\r\n * xAxisId property is not supported for BaseStackedRenderableSeries,\r\n * instead set on the {@link StackedColumnCollection} or {@link StackedMountainCollection}\r\n */\r\n set: function (value) {\r\n throw Error(\"Setting xAxisId property is not supported for BaseStackedRenderableSeries\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseStackedRenderableSeries.prototype, \"yAxisId\", {\r\n /**\r\n * yAxisId property is not supported for BaseStackedRenderableSeries,\r\n * instead set on the {@link StackedColumnCollection} or {@link StackedMountainCollection}\r\n */\r\n get: function () {\r\n var _a;\r\n return (_a = this.parentCollection) === null || _a === void 0 ? void 0 : _a.yAxisId;\r\n },\r\n /**\r\n * yAxisId property is not supported for BaseStackedRenderableSeries,\r\n * instead set on the {@link StackedColumnCollection} or {@link StackedMountainCollection}\r\n */\r\n set: function (value) {\r\n throw Error(\"yAxisId property is not supported for BaseStackedRenderableSeries\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BaseStackedRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.BaseStackedRenderableSeries = BaseStackedRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BandSeriesDataLabelProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar TextPosition_1 = require(\"../../../../types/TextPosition\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar DataLabelState_1 = require(\"./DataLabelState\");\r\nvar LineSeriesDataLabelProvider_1 = require(\"./LineSeriesDataLabelProvider\");\r\nvar BandSeriesDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(BandSeriesDataLabelProvider, _super);\r\n function BandSeriesDataLabelProvider(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Band;\r\n _this.singleLabelProperty = false;\r\n _this.singleLabelProperty = (_a = options === null || options === void 0 ? void 0 : options.singleLabel) !== null && _a !== void 0 ? _a : _this.singleLabelProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(BandSeriesDataLabelProvider.prototype, \"singleLabel\", {\r\n /**\r\n * Gets or Sets whether to render a single label with both y and y1 values, in the center of the band, or separate labels for each line.\r\n * Default false.\r\n */\r\n get: function () {\r\n return this.singleLabelProperty;\r\n },\r\n set: function (value) {\r\n this.singleLabelProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BandSeriesDataLabelProvider.prototype.getText = function (state) {\r\n if (this.singleLabel) {\r\n this.state1.index = state.index;\r\n if (this.metaDataSelector) {\r\n var index = state.renderPassData.pointSeries.indexes.get(state.index);\r\n return this.metaDataSelector(state.parentSeries.dataSeries.getMetadataAt(index));\r\n }\r\n var usefinal = !this.updateTextInAnimation && state.parentSeries.isRunningAnimation;\r\n var yval = usefinal ? state.yValAfterAnimation() : state.yVal();\r\n var y1val = usefinal ? this.state1.yValAfterAnimation() : this.state1.yVal();\r\n return this.getSingleLabelText(state.xVal(), yval, y1val);\r\n }\r\n else {\r\n return _super.prototype.getText.call(this, state);\r\n }\r\n };\r\n BandSeriesDataLabelProvider.prototype.getSingleLabelText = function (xVal, yVal, y1Val) {\r\n var _a, _b, _c, _d;\r\n if (yVal === yVal || y1Val === y1Val) {\r\n var text = \"\";\r\n if (yVal === yVal)\r\n text = (0, number_1.formatNumber)(yVal, (_a = this.numericFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Decimal, (_b = this.precision) !== null && _b !== void 0 ? _b : 1);\r\n if (yVal === yVal && y1Val === y1Val)\r\n text += \"\\n\";\r\n if (y1Val === y1Val)\r\n text += (0, number_1.formatNumber)(y1Val, (_c = this.numericFormat) !== null && _c !== void 0 ? _c : NumericFormat_1.ENumericFormat.Decimal, (_d = this.precision) !== null && _d !== void 0 ? _d : 1);\r\n return text;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n };\r\n BandSeriesDataLabelProvider.prototype.getPosition = function (state, textBounds) {\r\n var _a, _b, _c, _d;\r\n if (this.singleLabel) {\r\n var x = state.xCoord();\r\n if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Center) {\r\n x -= textBounds.m_fWidth / 2;\r\n }\r\n else if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Left) {\r\n x -= textBounds.m_fWidth + ((_b = (_a = this.style.padding) === null || _a === void 0 ? void 0 : _a.right) !== null && _b !== void 0 ? _b : 0);\r\n }\r\n else {\r\n x += (_d = (_c = this.style.padding) === null || _c === void 0 ? void 0 : _c.right) !== null && _d !== void 0 ? _d : 0;\r\n }\r\n // Handle multiline\r\n var yOffset = textBounds.m_fHeight - textBounds.GetLineBounds(0).m_fHeight;\r\n var y = state.yCoord();\r\n var y1 = this.state1.yCoord();\r\n var yPos = (y + y1) / 2 - yOffset;\r\n if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Center) {\r\n yPos += textBounds.m_fHeight / 2;\r\n }\r\n else if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Below) {\r\n yPos += textBounds.m_fHeight;\r\n }\r\n return new Point_1.Point(x, yPos);\r\n }\r\n else {\r\n return _super.prototype.getPosition.call(this, state, textBounds);\r\n }\r\n };\r\n /**\r\n * When doing separate labels for each line (ie singleLabel = false) this is used to create a provider to generate the labels for the y1 series.\r\n * By default this creates a LineSeriesDataLabelProvider using the same options as on the current provider.\r\n */\r\n BandSeriesDataLabelProvider.prototype.getY1Provider = function (yProvider) {\r\n return new LineSeriesDataLabelProvider_1.LineSeriesDataLabelProvider(yProvider.toJSON().options);\r\n };\r\n /** Generates labels using getText, getPosition, getColor. Overrides manually set labels. */\r\n BandSeriesDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var _a;\r\n if (!this.singleLabel) {\r\n _super.prototype.generateDataLabels.call(this, renderContext, renderPassData);\r\n var y1Provider = this.getY1Provider(this);\r\n y1Provider.ySelector = function (ps) { return ps.y1Values; };\r\n y1Provider.onAttach(this.webAssemblyContext, this.parentSeries);\r\n y1Provider.generateDataLabels(renderContext, renderPassData);\r\n (_a = this.dataLabels).push.apply(_a, y1Provider.dataLabels);\r\n }\r\n else {\r\n var y1Values = renderPassData.pointSeries.y1Values;\r\n this.state1 = new DataLabelState_1.DataLabelState(renderContext, renderPassData, this.style, this.color, y1Values, this.parentSeries);\r\n _super.prototype.generateDataLabels.call(this, renderContext, renderPassData);\r\n }\r\n };\r\n BandSeriesDataLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n singleLabel: this.singleLabel\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return BandSeriesDataLabelProvider;\r\n}(LineSeriesDataLabelProvider_1.LineSeriesDataLabelProvider));\r\nexports.BandSeriesDataLabelProvider = BandSeriesDataLabelProvider;\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseDataLabelProvider = void 0;\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar TextPosition_1 = require(\"../../../../types/TextPosition\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar IThemeProvider_1 = require(\"../../../Themes/IThemeProvider\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar DpiHelper_1 = require(\"../../TextureManager/DpiHelper\");\r\nvar BaseDataLabelProvider = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the {@link DataLabelProvider}\r\n */\r\n function BaseDataLabelProvider(options) {\r\n var _this = this;\r\n /**\r\n * The text to draw, along with the sizes and positions. Usually generated, but can be updated before final drawing\r\n */\r\n this.dataLabels = [];\r\n this.getstyleProxy = function (newStyle) {\r\n return new Proxy(newStyle, {\r\n set: function (target, key, value) {\r\n //@ts-ignore\r\n target[key] = value;\r\n _this.invalidateParent();\r\n return true;\r\n }\r\n });\r\n };\r\n this.styleProperty = (options === null || options === void 0 ? void 0 : options.style) ? this.getstyleProxy(options === null || options === void 0 ? void 0 : options.style) : undefined;\r\n this.colorProperty = options === null || options === void 0 ? void 0 : options.color;\r\n }\r\n /**\r\n * Called when a DataLabelProvider is attached to a parent {@link IRenderableSeries | RenderableSeries}\r\n * @param webAssemblyContext\r\n * @param parentSeries\r\n */\r\n BaseDataLabelProvider.prototype.onAttach = function (webAssemblyContext, parentSeries) {\r\n Guard_1.Guard.notNull(webAssemblyContext, \"webAssemblyContext\");\r\n Guard_1.Guard.notNull(parentSeries, \"parentSeries\");\r\n this.webAssemblyContext = webAssemblyContext;\r\n this.parentSeries = parentSeries;\r\n };\r\n BaseDataLabelProvider.prototype.onDetach = function () {\r\n this.webAssemblyContext = undefined;\r\n this.parentSeries = undefined;\r\n };\r\n BaseDataLabelProvider.prototype.delete = function () { };\r\n Object.defineProperty(BaseDataLabelProvider.prototype, \"style\", {\r\n /**\r\n * Gets or sets the text style used for data labels. The style must be set, with fontFamily and fontSize set, in order for text to be drawn.\r\n */\r\n get: function () {\r\n return this.styleProperty;\r\n },\r\n /**\r\n * Gets or sets the text style used for data labels. The style must be set, with fontFamily and fontSize set, in order for text to be drawn.\r\n */\r\n set: function (value) {\r\n this.styleProperty = this.getstyleProxy(value);\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataLabelProvider.prototype, \"color\", {\r\n /**\r\n * Gets or sets the color for data labels. Defaults to axis label color\r\n */\r\n get: function () {\r\n var _a, _b, _c;\r\n if (!this.colorProperty) {\r\n return (_c = (_b = (_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.parentSurface) === null || _b === void 0 ? void 0 : _b.themeProvider) === null || _c === void 0 ? void 0 : _c.tickTextBrush;\r\n }\r\n return (0, IThemeProvider_1.stripAutoColor)(this.colorProperty);\r\n },\r\n /**\r\n * Gets or sets the color for data labels. Defaults to axis label color\r\n */\r\n set: function (value) {\r\n this.colorProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** Update the style. Only the properties passed will be updated */\r\n BaseDataLabelProvider.prototype.updateStyle = function (value) {\r\n this.styleProperty = this.getstyleProxy(__assign(__assign({}, this.styleProperty), value));\r\n this.invalidateParent();\r\n };\r\n /**\r\n * Base behaviour is to do nothing. Labels will only be drawn if they have been manually set\r\n */\r\n BaseDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) { };\r\n BaseDataLabelProvider.prototype.draw = function (renderContext) {\r\n var _a, _b, _c;\r\n if (!this.dataLabels || this.dataLabels.length === 0) {\r\n return;\r\n }\r\n if (!this.style || !this.style.fontFamily || !this.style.fontSize) {\r\n return;\r\n }\r\n var color = (0, parseColor_1.parseColorToUIntArgb)(this.color);\r\n var dpiAdjustedStyle = DpiHelper_1.DpiHelper.adjustTextStyle(this.style);\r\n var font = renderContext.getFont(dpiAdjustedStyle);\r\n var rotationVector = (0, NativeObject_1.getVector4)(this.webAssemblyContext, 0, 0, 0, 0);\r\n var alignMode = (0, TextPosition_1.convertMultiLineAlignment)(this.style.multiLineAlignment, this.webAssemblyContext);\r\n for (var _i = 0, _d = this.dataLabels; _i < _d.length; _i++) {\r\n var item = _d[_i];\r\n // Adjust the postion to take into account the seriesVewRect.\r\n // We do this because we are ending the font after the transformation has been popped.\r\n font.DrawStringAdvanced((_a = item.text) !== null && _a !== void 0 ? _a : \"\", (_b = item.color) !== null && _b !== void 0 ? _b : color, Math.round(item.position.x + this.parentSeries.parentSurface.seriesViewRect.left), Math.round(item.position.y + this.parentSeries.parentSurface.seriesViewRect.top), rotationVector, alignMode, (_c = this.style.lineSpacing) !== null && _c !== void 0 ? _c : 2);\r\n }\r\n // Don't end font here to facilitate batch drawing\r\n };\r\n BaseDataLabelProvider.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n if (this.colorProperty && this.colorProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getStrokeColor(index, maxSeries, this.webAssemblyContext);\r\n this.color = IThemeProvider_1.AUTO_COLOR + color;\r\n }\r\n };\r\n BaseDataLabelProvider.prototype.toJSON = function () {\r\n return { type: this.type, options: { style: this.style, color: this.color } };\r\n };\r\n BaseDataLabelProvider.prototype.invalidateParent = function () {\r\n var _a;\r\n if ((_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback) {\r\n this.parentSeries.invalidateParentCallback();\r\n }\r\n };\r\n return BaseDataLabelProvider;\r\n}());\r\nexports.BaseDataLabelProvider = BaseDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BubbleSeriesDataLabelProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar TextPosition_1 = require(\"../../../../types/TextPosition\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar DataLabelProvider_1 = require(\"./DataLabelProvider\");\r\nvar BubbleSeriesDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(BubbleSeriesDataLabelProvider, _super);\r\n function BubbleSeriesDataLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, options) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Bubble;\r\n _this.horizontalTextPositionProperty = (_a = options === null || options === void 0 ? void 0 : options.horizontalTextPosition) !== null && _a !== void 0 ? _a : TextPosition_1.EHorizontalTextPosition.Center;\r\n _this.verticalTextPositionProperty = (_b = options === null || options === void 0 ? void 0 : options.verticalTextPosition) !== null && _b !== void 0 ? _b : TextPosition_1.EVerticalTextPosition.Center;\r\n return _this;\r\n }\r\n BubbleSeriesDataLabelProvider.prototype.getPosition = function (state, textBounds) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n var x = state.xCoord();\r\n var radius = Math.abs(state.parentSeries.getBubbleDiameter(state.index)) / 2;\r\n if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Center) {\r\n x -= textBounds.m_fWidth / 2;\r\n }\r\n else if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Left) {\r\n x -= textBounds.m_fWidth + ((_b = (_a = this.style.padding) === null || _a === void 0 ? void 0 : _a.right) !== null && _b !== void 0 ? _b : 0) + radius;\r\n }\r\n else {\r\n x += ((_d = (_c = this.style.padding) === null || _c === void 0 ? void 0 : _c.right) !== null && _d !== void 0 ? _d : 0) + radius;\r\n }\r\n var yOffset = textBounds.m_fHeight - textBounds.GetLineBounds(0).m_fHeight;\r\n var y = state.yCoord() - yOffset;\r\n if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Center) {\r\n y += textBounds.m_fHeight / 2;\r\n }\r\n else if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Below) {\r\n y += textBounds.m_fHeight + ((_f = (_e = this.style.padding) === null || _e === void 0 ? void 0 : _e.top) !== null && _f !== void 0 ? _f : 0) + radius;\r\n }\r\n else {\r\n y -= ((_h = (_g = this.style.padding) === null || _g === void 0 ? void 0 : _g.bottom) !== null && _h !== void 0 ? _h : 0) + radius;\r\n }\r\n return new Point_1.Point(x, y);\r\n };\r\n return BubbleSeriesDataLabelProvider;\r\n}(DataLabelProvider_1.DataLabelProvider));\r\nexports.BubbleSeriesDataLabelProvider = BubbleSeriesDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ColumnSeriesDataLabelProvider = exports.EColumnDataLabelPosition = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar TextPosition_1 = require(\"../../../../types/TextPosition\");\r\nvar DataLabelProvider_1 = require(\"./DataLabelProvider\");\r\nvar EColumnDataLabelPosition;\r\n(function (EColumnDataLabelPosition) {\r\n EColumnDataLabelPosition[\"Outside\"] = \"Outside\";\r\n EColumnDataLabelPosition[\"Inside\"] = \"Inside\";\r\n EColumnDataLabelPosition[\"Position\"] = \"Position\";\r\n})(EColumnDataLabelPosition = exports.EColumnDataLabelPosition || (exports.EColumnDataLabelPosition = {}));\r\nvar ColumnSeriesDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(ColumnSeriesDataLabelProvider, _super);\r\n function ColumnSeriesDataLabelProvider(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, __assign({ horizontalTextPosition: TextPosition_1.EHorizontalTextPosition.Center, verticalTextPosition: TextPosition_1.EVerticalTextPosition.Center }, options)) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Column;\r\n _this.positionModeProperty = EColumnDataLabelPosition.Outside;\r\n _this.positionModeProperty = (_a = options === null || options === void 0 ? void 0 : options.positionMode) !== null && _a !== void 0 ? _a : _this.positionMode;\r\n return _this;\r\n }\r\n Object.defineProperty(ColumnSeriesDataLabelProvider.prototype, \"positionMode\", {\r\n /**\r\n * Sets whether text should be positioned outside or inside the end of the column using {@link EColumnDataLabelPosition}.\r\n * If Position then the {@link verticalTextPosition} property is used, or {@link horizontalTextPosition} if it is a vertical chart.\r\n * Default Outside\r\n */\r\n get: function () {\r\n return this.positionModeProperty;\r\n },\r\n /**\r\n * Sets whether text should be positioned outside or inside the end of the column using {@link EColumnDataLabelPosition}.\r\n * If Position then the {@link verticalTextPosition} property is used, or {@link horizontalTextPosition} if it is a vertical chart.\r\n * Default Outside\r\n */\r\n set: function (value) {\r\n this.positionModeProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ColumnSeriesDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var parent = this.parentSeries;\r\n this.yAdj = Math.ceil(parent.strokeThickness / 2);\r\n if (parent.pointMarker) {\r\n this.yAdj = Math.max(this.yAdj, Math.ceil(parent.pointMarker.height / 2));\r\n }\r\n _super.prototype.generateDataLabels.call(this, renderContext, renderPassData);\r\n };\r\n ColumnSeriesDataLabelProvider.prototype.getPosition = function (state, textBounds) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;\r\n var x = state.xCoord();\r\n var yOffset = textBounds.m_fHeight - textBounds.GetLineBounds(0).m_fHeight;\r\n // Handle multiline\r\n var y = state.yCoord() - yOffset;\r\n var flipX = state.isXFlipped ? -1 : 1;\r\n var flipY = state.isYFlipped ? -1 : 1;\r\n if (state.isVerticalChart) {\r\n if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Center) {\r\n y += textBounds.m_fHeight / 2;\r\n }\r\n else if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Below) {\r\n y += textBounds.m_fHeight + ((_b = (_a = this.style.padding) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 0);\r\n }\r\n else {\r\n y -= (_d = (_c = this.style.padding) === null || _c === void 0 ? void 0 : _c.bottom) !== null && _d !== void 0 ? _d : 0;\r\n }\r\n if (this.positionMode === EColumnDataLabelPosition.Outside) {\r\n // Text anchor point is bottom left\r\n if (state.yVal() * flipY >= 0) {\r\n // positive - draw right\r\n x += this.yAdj + ((_f = (_e = state.style.padding) === null || _e === void 0 ? void 0 : _e.left) !== null && _f !== void 0 ? _f : 1);\r\n }\r\n else {\r\n // negative - draw left\r\n x -= textBounds.m_fWidth + this.yAdj + ((_h = (_g = state.style.padding) === null || _g === void 0 ? void 0 : _g.right) !== null && _h !== void 0 ? _h : 1);\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else if (this.positionMode === EColumnDataLabelPosition.Inside) {\r\n // Text anchor point is bottom left\r\n if (state.yVal() * flipY >= 0) {\r\n x -= textBounds.m_fWidth + this.yAdj + ((_k = (_j = state.style.padding) === null || _j === void 0 ? void 0 : _j.right) !== null && _k !== void 0 ? _k : 1);\r\n // positive - draw left\r\n }\r\n else {\r\n // negative - draw right\r\n x += this.yAdj + ((_m = (_l = state.style.padding) === null || _l === void 0 ? void 0 : _l.left) !== null && _m !== void 0 ? _m : 1);\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else {\r\n return _super.prototype.getPosition.call(this, state, textBounds);\r\n }\r\n }\r\n else {\r\n if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Center) {\r\n x -= textBounds.m_fWidth / 2;\r\n }\r\n else if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Left) {\r\n x -= textBounds.m_fWidth + ((_p = (_o = this.style.padding) === null || _o === void 0 ? void 0 : _o.right) !== null && _p !== void 0 ? _p : 0);\r\n }\r\n else {\r\n x += (_r = (_q = this.style.padding) === null || _q === void 0 ? void 0 : _q.left) !== null && _r !== void 0 ? _r : 0;\r\n }\r\n if (this.positionMode === EColumnDataLabelPosition.Outside) {\r\n // Text anchor point is bottom left\r\n if (state.yVal() * flipY >= 0) {\r\n // positive - draw above\r\n y -= this.yAdj + ((_t = (_s = state.style.padding) === null || _s === void 0 ? void 0 : _s.bottom) !== null && _t !== void 0 ? _t : 1);\r\n }\r\n else {\r\n // negative - draw below\r\n y += textBounds.m_fHeight + this.yAdj + ((_v = (_u = state.style.padding) === null || _u === void 0 ? void 0 : _u.top) !== null && _v !== void 0 ? _v : 1);\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else if (this.positionMode === EColumnDataLabelPosition.Inside) {\r\n // Text anchor point is bottom left\r\n if (state.yVal() * flipY >= 0) {\r\n y += textBounds.m_fHeight + this.yAdj + ((_x = (_w = state.style.padding) === null || _w === void 0 ? void 0 : _w.top) !== null && _x !== void 0 ? _x : 1);\r\n // positive - draw below\r\n }\r\n else {\r\n // negative - draw above\r\n y -= this.yAdj + ((_z = (_y = state.style.padding) === null || _y === void 0 ? void 0 : _y.bottom) !== null && _z !== void 0 ? _z : 1);\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else {\r\n return _super.prototype.getPosition.call(this, state, textBounds);\r\n }\r\n }\r\n };\r\n ColumnSeriesDataLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n positionMode: this.positionMode\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return ColumnSeriesDataLabelProvider;\r\n}(DataLabelProvider_1.DataLabelProvider));\r\nexports.ColumnSeriesDataLabelProvider = ColumnSeriesDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ContoursDataLabelProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar Rect_1 = require(\"../../../../Core/Rect\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar Size_1 = require(\"../../../../types/Size\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar DpiHelper_1 = require(\"../../TextureManager/DpiHelper\");\r\nvar BaseDataLabelProvider_1 = require(\"./BaseDataLabelProvider\");\r\nvar ContoursDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(ContoursDataLabelProvider, _super);\r\n function ContoursDataLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, options) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Contours;\r\n _this.isEnabledProperty = true;\r\n _this.numericFormatProperty = NumericFormat_1.ENumericFormat.Decimal;\r\n _this.precisionProperty = 1;\r\n _this.labelRowCountProperty = 10;\r\n _this.numericFormatProperty = (_a = options === null || options === void 0 ? void 0 : options.numericFormat) !== null && _a !== void 0 ? _a : _this.numericFormatProperty;\r\n _this.precision = (_b = options === null || options === void 0 ? void 0 : options.precision) !== null && _b !== void 0 ? _b : _this.precisionProperty;\r\n _this.labelRowCountProperty = (_c = options === null || options === void 0 ? void 0 : options.labelRowCount) !== null && _c !== void 0 ? _c : _this.labelRowCountProperty;\r\n _this.metaDataSelector = options === null || options === void 0 ? void 0 : options.metaDataSelector;\r\n _this.isEnabledProperty = (_d = options === null || options === void 0 ? void 0 : options.isEnabled) !== null && _d !== void 0 ? _d : _this.isEnabledProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(ContoursDataLabelProvider.prototype, \"numericFormat\", {\r\n /**\r\n * Gets or sets numeric format to use when formatting values to text. For a list of values, see {@link ENumericFormat}\r\n * For more control, override getText\r\n */\r\n get: function () {\r\n return this.numericFormatProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n this.numericFormatProperty = value;\r\n (_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ContoursDataLabelProvider.prototype, \"precision\", {\r\n /**\r\n * Gets or sets the precision to use when formatting values to text\r\n * For more control, override getText\r\n */\r\n get: function () {\r\n return this.precisionProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n this.precisionProperty = value;\r\n (_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ContoursDataLabelProvider.prototype, \"labelRowCount\", {\r\n /**\r\n * Gets or sets the number of rows of data labels. Default 10\r\n */\r\n get: function () {\r\n return this.labelRowCountProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n this.labelRowCountProperty = value;\r\n (_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ContoursDataLabelProvider.prototype, \"isEnabled\", {\r\n /** Flag to enable/disable dataLabel generation. Default true */\r\n get: function () {\r\n return this.isEnabledProperty;\r\n },\r\n /** Flag to enable/disable dataLabel generation. Default true */\r\n set: function (value) {\r\n if (this.isEnabledProperty !== value) {\r\n this.isEnabledProperty = value;\r\n this.invalidateParent();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ContoursDataLabelProvider.prototype.getText = function (xIndex, yIndex) {\r\n var _a, _b;\r\n if (this.metaDataSelector) {\r\n return this.metaDataSelector(this.dataSeries.getMetadataAt(yIndex, xIndex));\r\n }\r\n var z = this.zValues[yIndex][xIndex];\r\n if (z === z) {\r\n // Fast isNaN check\r\n return (0, number_1.formatNumber)(z, (_a = this.numericFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Decimal, (_b = this.precision) !== null && _b !== void 0 ? _b : 1);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n };\r\n ContoursDataLabelProvider.prototype.getPosition = function (xIndex, yIndex, xVal, yVal, textSize, renderPassData) {\r\n var x = renderPassData.xCoordinateCalculator.getCoordinate(xVal);\r\n var y = renderPassData.yCoordinateCalculator.getCoordinate(yVal);\r\n if (renderPassData.isVerticalChart) {\r\n var c = x;\r\n x = y;\r\n y = c;\r\n }\r\n return new Point_1.Point(x, y);\r\n };\r\n ContoursDataLabelProvider.prototype.shouldGenerate = function (textSize, cellWidth, cellHeight) {\r\n return textSize.height < cellHeight && textSize.width < cellWidth;\r\n };\r\n ContoursDataLabelProvider.prototype.getColor = function (xIndex, yIndex, text) {\r\n return this.colorValue;\r\n };\r\n ContoursDataLabelProvider.prototype.shouldSkipLabel = function (xIndex, yIndex, label, cellWidth, cellHeight) {\r\n // Skip if out of bounds\r\n var svr = this.parentSeries.parentSurface.seriesViewRect;\r\n // const yMax = state.renderPassData.isVerticalChart ? svr.width : svr.height;\r\n if (label.rect.y < 0 || label.rect.bottom > svr.height)\r\n return true;\r\n // const xMax = state.renderPassData.isVerticalChart ? svr.height : svr.width;\r\n if (label.rect.x < 0 || label.rect.right > svr.width)\r\n return true;\r\n return false;\r\n };\r\n ContoursDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var _a, _b, _c, _d;\r\n // clear any previous labels\r\n this.dataLabels = [];\r\n if (!this.isEnabled || !this.style || !this.style.fontFamily || !this.style.fontSize) {\r\n return;\r\n }\r\n this.dataSeries = this.parentSeries.dataSeries;\r\n this.zValues = this.dataSeries.getZValues();\r\n // this.state = new DataLabelState(renderContext, renderPassData, this.style, yValues, this.parentSeries);\r\n var bounds = (0, NativeObject_1.getTextBounds)(this.webAssemblyContext);\r\n var dpiAdjustedStyle = DpiHelper_1.DpiHelper.adjustTextStyle(this.style);\r\n var font = renderContext.getFont(dpiAdjustedStyle);\r\n var cellWidth = Math.abs(renderPassData.xCoordinateCalculator.getCoordinate(this.dataSeries.getXValue(1)) -\r\n renderPassData.xCoordinateCalculator.getCoordinate(this.dataSeries.getXValue(0)));\r\n var cellHeight = Math.abs(renderPassData.yCoordinateCalculator.getCoordinate(this.dataSeries.getYValue(1)) -\r\n renderPassData.yCoordinateCalculator.getCoordinate(this.dataSeries.getYValue(0)));\r\n //if (!this.shouldGenerate(new Size(bounds.m_fWidth, bounds.m_fHeight), cellWidth, cellHeight)) return;\r\n this.colorValue = (0, parseColor_1.parseColorToUIntArgb)(this.color);\r\n var _e = this.parentSeries.dataSeries, xStart = _e.xStart, xStep = _e.xStep, yStart = _e.yStart, yStep = _e.yStep;\r\n var contourParams = this.parentSeries.getContourDrawingParams();\r\n var zStep = contourParams.majorStepZ;\r\n var yInc = (contourParams.yMax - contourParams.yMin) / (this.labelRowCount + 1);\r\n var lasty = yStart;\r\n for (var yIndex = 0; yIndex < this.dataSeries.arrayHeight; yIndex++) {\r\n var y = yStart + yStep * yIndex;\r\n if (y <= lasty + yInc)\r\n continue;\r\n lasty = y;\r\n if (renderPassData.yCoordinateCalculator.visibleMin > y + yStep ||\r\n renderPassData.yCoordinateCalculator.visibleMax < y)\r\n continue;\r\n var lastZ = undefined;\r\n for (var xIndex = 0; xIndex < this.dataSeries.arrayWidth; xIndex++) {\r\n var x = xStart + xStep * xIndex;\r\n if (renderPassData.xCoordinateCalculator.visibleMin > x + xStep ||\r\n renderPassData.xCoordinateCalculator.visibleMax < x)\r\n continue;\r\n var z = this.zValues[yIndex][xIndex];\r\n var text = undefined;\r\n var lineX = x;\r\n if (lastZ !== undefined) {\r\n var prevZ = Math.floor(lastZ / zStep) * zStep;\r\n var nextZ = prevZ + zStep;\r\n if (z <= prevZ) {\r\n text = (0, number_1.formatNumber)(prevZ, (_a = this.numericFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Decimal, (_b = this.precision) !== null && _b !== void 0 ? _b : 1);\r\n lineX = (xStep * (prevZ - z)) / (lastZ - z) - xStep / 2 + x;\r\n }\r\n else if (z >= nextZ) {\r\n text = (0, number_1.formatNumber)(nextZ, (_c = this.numericFormat) !== null && _c !== void 0 ? _c : NumericFormat_1.ENumericFormat.Decimal, (_d = this.precision) !== null && _d !== void 0 ? _d : 1);\r\n lineX = (xStep * (nextZ - z)) / (z - lastZ) - xStep / 2 + x;\r\n }\r\n }\r\n lastZ = z;\r\n if (!text) {\r\n continue;\r\n }\r\n font.CalculateStringBounds(text !== null && text !== void 0 ? text : \"\", bounds, 2);\r\n var textSize = new Size_1.Size(bounds.m_fWidth, bounds.m_fHeight);\r\n var xVal = this.dataSeries.getXValue(xIndex);\r\n var yVal = this.dataSeries.getYValue(yIndex);\r\n var position = this.getPosition(xIndex, yIndex, lineX, yVal, textSize, renderPassData);\r\n var label = {\r\n text: text,\r\n position: position,\r\n rect: new Rect_1.Rect(position.x, position.y - bounds.GetLineBounds(0).m_fHeight, textSize.width, textSize.height),\r\n color: this.getColor(xIndex, yIndex, text),\r\n dataX: this.dataSeries.getXValue(xIndex),\r\n dataY: this.dataSeries.getYValue(yIndex)\r\n };\r\n // if (!this.shouldSkipLabel(xIndex, yIndex, label, cellWidth, cellHeight)) {\r\n this.dataLabels.push(label);\r\n // }\r\n }\r\n }\r\n };\r\n ContoursDataLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n numericFormat: this.numericFormat,\r\n precision: this.precision,\r\n labelRowCount: this.labelRowCount,\r\n isEnabled: this.isEnabled\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return ContoursDataLabelProvider;\r\n}(BaseDataLabelProvider_1.BaseDataLabelProvider));\r\nexports.ContoursDataLabelProvider = ContoursDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataLabelProvider = void 0;\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar Rect_1 = require(\"../../../../Core/Rect\");\r\nvar TextPosition_1 = require(\"../../../../types/TextPosition\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar DataLabelSkipMode_1 = require(\"../../../../types/DataLabelSkipMode\");\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar BaseDataLabelProvider_1 = require(\"./BaseDataLabelProvider\");\r\nvar DataLabelState_1 = require(\"./DataLabelState\");\r\nvar performanceWarnings_1 = require(\"../../../../constants/performanceWarnings\");\r\n/**\r\n * This is the standard DataLabelProvider which provides a number of options for configuring data labels.\r\n * It defines a much richer api than BaseDataLabelProvider and is intended to be used as a base for doing small changes to data label behaviour\r\n * generateDataLabels calls the following functions which you can override parts of the behaviour\r\n * {@link ySelector} to pick the desired yValues from the pointSeries.\r\n * {@link shouldGenerate} to determine if any labels should be generated so you can enable labels depending on zoom or data level.\r\n * Then for each data point:\r\n * {@link getText} Build in behaviour can get text from metadata using {@link metaDataSelector} or format the y values using {@link numericFormat} and {@link precision}\r\n * {@link getPosition} By default return the x and y coordinate of the data point. Series-specific DataLabelProviders eg {@link LineSeriesDataLabelProvider} have logic to adjust text position based on the series\r\n * {@link getColor} Returns the color from the text style. Use {@link parseColorToUIntArgb} to turn color string to the required numeric value if overriding.\r\n * {@link shouldSkipLabel} Decides whether to keep or ship the generated label based on the {@link }\r\n */\r\nvar DataLabelProvider = /** @class */ (function (_super) {\r\n __extends(DataLabelProvider, _super);\r\n /**\r\n * Creates an instance of the {@link DataLabelProvider}\r\n */\r\n function DataLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n _this = _super.call(this, options) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Default;\r\n /**\r\n * The text to draw, along with the sizes and positions. Usually generated, but can be set or updated before final drawing\r\n */\r\n _this.dataLabels = [];\r\n /**\r\n * Whether the label text should update when the label position is animating. Default false.\r\n */\r\n _this.updateTextInAnimation = false;\r\n _this.pointGapThresholdProperty = 0;\r\n _this.pointCountThresholdProperty = Infinity;\r\n _this.numericFormatProperty = NumericFormat_1.ENumericFormat.Decimal;\r\n _this.engineeringPrefixProperty = {};\r\n _this.precisionProperty = 1;\r\n _this.skipModeProperty = DataLabelSkipMode_1.EDataLabelSkipMode.SkipIfOverlapPrevious;\r\n _this.skipNumberProperty = 0;\r\n _this.horizontalTextPositionProperty = TextPosition_1.EHorizontalTextPosition.Right;\r\n _this.verticalTextPositionProperty = TextPosition_1.EVerticalTextPosition.Above;\r\n _this.isEnabledProperty = true;\r\n _this.pointGapThresholdProperty = (_a = options === null || options === void 0 ? void 0 : options.pointGapThreshold) !== null && _a !== void 0 ? _a : _this.pointGapThresholdProperty;\r\n _this.pointCountThresholdProperty = (_b = options === null || options === void 0 ? void 0 : options.pointCountThreshold) !== null && _b !== void 0 ? _b : _this.pointCountThresholdProperty;\r\n _this.numericFormatProperty = (_c = options === null || options === void 0 ? void 0 : options.numericFormat) !== null && _c !== void 0 ? _c : _this.numericFormatProperty;\r\n _this.engineeringPrefixProperty = (_d = options === null || options === void 0 ? void 0 : options.engineeringPrefix) !== null && _d !== void 0 ? _d : _this.engineeringPrefixProperty;\r\n _this.precision = (_e = options === null || options === void 0 ? void 0 : options.precision) !== null && _e !== void 0 ? _e : _this.precisionProperty;\r\n _this.skipNumberProperty = (_f = options === null || options === void 0 ? void 0 : options.skipNumber) !== null && _f !== void 0 ? _f : _this.skipNumberProperty;\r\n _this.skipModeProperty = (_g = options === null || options === void 0 ? void 0 : options.skipMode) !== null && _g !== void 0 ? _g : _this.skipModeProperty;\r\n _this.metaDataSelector = options === null || options === void 0 ? void 0 : options.metaDataSelector;\r\n _this.ySelector = (_h = options === null || options === void 0 ? void 0 : options.ySelector) !== null && _h !== void 0 ? _h : (function (ps) { return ps.yValues; });\r\n _this.updateTextInAnimation = (_j = options === null || options === void 0 ? void 0 : options.updateTextInAnimation) !== null && _j !== void 0 ? _j : _this.updateTextInAnimation;\r\n _this.horizontalTextPositionProperty = (_k = options === null || options === void 0 ? void 0 : options.horizontalTextPosition) !== null && _k !== void 0 ? _k : _this.horizontalTextPosition;\r\n _this.verticalTextPositionProperty = (_l = options === null || options === void 0 ? void 0 : options.verticalTextPosition) !== null && _l !== void 0 ? _l : _this.verticalTextPosition;\r\n _this.isEnabledProperty = (_m = options === null || options === void 0 ? void 0 : options.isEnabled) !== null && _m !== void 0 ? _m : _this.isEnabledProperty;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n DataLabelProvider.prototype.onAttach = function (webAssemblyContext, parentSeries) {\r\n Guard_1.Guard.notNull(webAssemblyContext, \"webAssemblyContext\");\r\n Guard_1.Guard.notNull(parentSeries, \"parentSeries\");\r\n this.webAssemblyContext = webAssemblyContext;\r\n this.parentSeries = parentSeries;\r\n };\r\n Object.defineProperty(DataLabelProvider.prototype, \"pointGapThreshold\", {\r\n /**\r\n * Gets or sets the zoom threshold above which label drawing will start. Default 0.\r\n * This is expressed as the gap between the first points divided by the size of the first text\r\n * If data is unevenly spaced, consider {@link pointCountThreshold} or override shouldDrawText\r\n */\r\n get: function () {\r\n return this.pointGapThresholdProperty;\r\n },\r\n /**\r\n * Gets or sets the zoom threshold above which label drawing will start. Default 0.\r\n * This is expressed as the gap between the first points divided by the size of the first text\r\n * If data is unevenly spaced, consider {@link pointCountThreshold} or override shouldDrawText\r\n */\r\n set: function (value) {\r\n this.pointGapThresholdProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"pointCountThreshold\", {\r\n /**\r\n * Gets or sets the number of points below which drawing will start. Default Infinity\r\n * This can be used instead of {@link pointGapThreshold} when data is unevenly spaced or has large y variation\r\n */\r\n get: function () {\r\n return this.pointCountThresholdProperty;\r\n },\r\n /**\r\n * Gets or sets the number of points below which drawing will start. Default Infinity\r\n * This can be used instead of {@link pointGapThreshold} when data is unevenly spaced or has large y variation\r\n */\r\n set: function (value) {\r\n this.pointCountThresholdProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"skipMode\", {\r\n /**\r\n * How do decide whether to keep or skip a label once generated.\r\n * Override {@link shouldSkipLabel} for more control\r\n */\r\n get: function () {\r\n return this.skipModeProperty;\r\n },\r\n /**\r\n * How do decide whether to keep or skip a label once generated.\r\n * Override {@link shouldSkipLabel} for more control\r\n */\r\n set: function (value) {\r\n this.skipModeProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"skipNumber\", {\r\n /**\r\n * The number of points to skip while generating labels. Default 0 = no skip. 1 = skip every other.\r\n * When creating text with many data points, it will help performance to skip points rather than creating and checking overlap for every data point.\r\n */\r\n get: function () {\r\n return this.skipNumberProperty;\r\n },\r\n /**\r\n * The number of points to skip while generating labels. Default 0 = no skip. 1 = skip every other.\r\n * When creating text with many data points, it will help performance to skip points rather than creating and checking overlap for every data point.\r\n */\r\n set: function (value) {\r\n this.skipNumberProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"numericFormat\", {\r\n /**\r\n * Gets or sets numeric format to use when formatting values to text. For a list of values, see {@link ENumericFormat}\r\n * For more control, override getText\r\n */\r\n get: function () {\r\n return this.numericFormatProperty;\r\n },\r\n set: function (value) {\r\n this.numericFormatProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"engineeringPrefix\", {\r\n /**\r\n * Gets the engineering prefixes to use when formatting values to text.\r\n */\r\n get: function () {\r\n return this.engineeringPrefixProperty;\r\n },\r\n /**\r\n * Gets or sets the engineering prefixes to use when formatting values to text.\r\n * Default - `['K','M','B','T']` for \"large\" prefixes, `['m','u','n','p']` for small prefixes\r\n * @remarks Only works when {@link ENumericFormat.Engineering} is selected\r\n */\r\n set: function (value) {\r\n this.engineeringPrefixProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"precision\", {\r\n /**\r\n * Gets or sets the precision to use when formatting values to text\r\n * For more control, override getText\r\n */\r\n get: function () {\r\n return this.precisionProperty;\r\n },\r\n set: function (value) {\r\n this.precisionProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"horizontalTextPosition\", {\r\n /**\r\n * Gets or sets the horizontal text position for the label\r\n * For more control, override getPosition\r\n */\r\n get: function () {\r\n return this.horizontalTextPositionProperty;\r\n },\r\n set: function (value) {\r\n this.horizontalTextPositionProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"verticalTextPosition\", {\r\n /**\r\n * Gets or sets the vertical text position for the label\r\n * For more control, override getPosition\r\n */\r\n get: function () {\r\n return this.verticalTextPositionProperty;\r\n },\r\n set: function (value) {\r\n this.verticalTextPositionProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataLabelProvider.prototype, \"isEnabled\", {\r\n /** Flag to enable/disable dataLabel generation. Default true */\r\n get: function () {\r\n return this.isEnabledProperty;\r\n },\r\n /** Flag to enable/disable dataLabel generation. Default true */\r\n set: function (value) {\r\n if (this.isEnabledProperty !== value) {\r\n this.isEnabledProperty = value;\r\n this.invalidateParent();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DataLabelProvider.prototype.getText = function (state) {\r\n var _a;\r\n if (this.metaDataSelector) {\r\n return this.metaDataSelector(state.getMetaData());\r\n }\r\n var usefinal = !this.updateTextInAnimation && state.parentSeries.isRunningAnimation;\r\n var yval = usefinal ? state.yValAfterAnimation() : state.yVal();\r\n if (yval === yval) { //isNaN check\r\n if (this.engineeringPrefix) {\r\n return (0, number_1.formatNumber)(yval, this.numericFormat, this.precision, this.engineeringPrefixProperty);\r\n }\r\n else {\r\n return (0, number_1.formatNumber)(yval, (_a = this.numericFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Decimal, this.precision);\r\n }\r\n }\r\n else {\r\n return undefined;\r\n }\r\n };\r\n /**\r\n * Called at the start of generateDataLabels. If false, no labels will be generated.\r\n * Checks {@link pointCountThreshold} then {@link pointGapThreshold}\r\n * @param state\r\n * @returns\r\n */\r\n DataLabelProvider.prototype.shouldGenerate = function (state) {\r\n var _a, _b;\r\n if (state.pointCount > this.pointCountThresholdProperty)\r\n return false;\r\n var firstlabel = this.getText(state);\r\n var bounds = (0, NativeObject_1.getTextBounds)(this.webAssemblyContext);\r\n state.font.CalculateStringBounds(firstlabel !== null && firstlabel !== void 0 ? firstlabel : \"\", bounds, (_b = (_a = this.style) === null || _a === void 0 ? void 0 : _a.lineSpacing) !== null && _b !== void 0 ? _b : 2);\r\n return state.pointGap >= bounds.m_fWidth * this.pointGapThreshold;\r\n };\r\n DataLabelProvider.prototype.getPosition = function (state, textBounds) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n var x = state.xCoord();\r\n if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Center) {\r\n x -= textBounds.m_fWidth / 2;\r\n }\r\n else if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Left) {\r\n x -= textBounds.m_fWidth + ((_b = (_a = this.style.padding) === null || _a === void 0 ? void 0 : _a.right) !== null && _b !== void 0 ? _b : 0);\r\n }\r\n else {\r\n x += (_d = (_c = this.style.padding) === null || _c === void 0 ? void 0 : _c.left) !== null && _d !== void 0 ? _d : 0;\r\n }\r\n var yOffset = textBounds.m_fHeight - textBounds.GetLineBounds(0).m_fHeight;\r\n var y = state.yCoord() - yOffset;\r\n if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Center) {\r\n y += textBounds.m_fHeight / 2;\r\n }\r\n else if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Below) {\r\n y += textBounds.m_fHeight + ((_f = (_e = this.style.padding) === null || _e === void 0 ? void 0 : _e.top) !== null && _f !== void 0 ? _f : 0);\r\n }\r\n else {\r\n y -= (_h = (_g = this.style.padding) === null || _g === void 0 ? void 0 : _g.bottom) !== null && _h !== void 0 ? _h : 0;\r\n }\r\n return new Point_1.Point(x, y);\r\n };\r\n DataLabelProvider.prototype.getColor = function (state, text) {\r\n return state.color;\r\n };\r\n DataLabelProvider.prototype.shouldSkipLabel = function (state, label) {\r\n var _a;\r\n // Skip if out of bounds\r\n var svr = state.parentSeries.parentSurface.seriesViewRect;\r\n // const yMax = state.renderPassData.isVerticalChart ? svr.width : svr.height;\r\n if (label.rect.y < 0 || label.rect.bottom > svr.height)\r\n return true;\r\n // const xMax = state.renderPassData.isVerticalChart ? svr.height : svr.width;\r\n if (label.rect.x < 0 || label.rect.right > svr.width)\r\n return true;\r\n switch (this.skipModeProperty) {\r\n case DataLabelSkipMode_1.EDataLabelSkipMode.SkipIfOverlapPrevious:\r\n return this.skipIfOverlapPrevious(state, label);\r\n case DataLabelSkipMode_1.EDataLabelSkipMode.SkipIfOverlapNext:\r\n return this.skipIfOverlapNext(state, label);\r\n case DataLabelSkipMode_1.EDataLabelSkipMode.SkipIfSame:\r\n return ((_a = state.lastLabel) === null || _a === void 0 ? void 0 : _a.text) === label.text;\r\n case DataLabelSkipMode_1.EDataLabelSkipMode.ShowAll:\r\n return false;\r\n default:\r\n return false;\r\n }\r\n };\r\n /** Generates labels using getText, getPosition, getColor. Overrides manually set labels. */\r\n DataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var _a, _b;\r\n // clear any previous labels\r\n this.dataLabels = [];\r\n if (!this.isEnabled || !this.style || !this.style.fontFamily || !this.style.fontSize) {\r\n return;\r\n }\r\n var yValues = this.ySelector(renderPassData.pointSeries);\r\n if (!yValues || yValues.size() === 0)\r\n return;\r\n this.state = new DataLabelState_1.DataLabelState(renderContext, renderPassData, this.style, this.color, yValues, this.parentSeries);\r\n var _c = this.parentSeries.dataSeries, fifoCapacity = _c.fifoCapacity, fifoSweeping = _c.fifoSweeping, fifoSweepingGap = _c.fifoSweepingGap, fifoStartIndex = _c.fifoStartIndex;\r\n var bounds = (0, NativeObject_1.getTextBounds)(this.webAssemblyContext);\r\n if (!this.shouldGenerate(this.state))\r\n return;\r\n var skipCount = 0;\r\n var skipNum = Math.max(0, this.skipNumberProperty);\r\n for (var i = this.state.indexStart; i <= this.state.indexEnd; i += skipNum + 1) {\r\n this.state.index =\r\n this.skipModeProperty === DataLabelSkipMode_1.EDataLabelSkipMode.SkipIfOverlapNext\r\n ? this.state.indexEnd - (i - this.state.indexStart)\r\n : i;\r\n if (fifoSweeping &&\r\n this.state.pointCount === fifoCapacity &&\r\n this.state.index >= fifoStartIndex &&\r\n this.state.index < fifoStartIndex + fifoSweepingGap)\r\n continue;\r\n var text = this.getText(this.state);\r\n if (!text)\r\n continue;\r\n this.state.font.CalculateStringBounds(text !== null && text !== void 0 ? text : \"\", bounds, (_b = (_a = this.style) === null || _a === void 0 ? void 0 : _a.lineSpacing) !== null && _b !== void 0 ? _b : 2);\r\n // console.log(text, bounds.m_fHeight, bounds.GetLinesCount());\r\n var position = this.getPosition(this.state, bounds);\r\n var color = this.getColor(this.state, text);\r\n var firstLineHeight = bounds.GetLineBounds(0).m_fHeight;\r\n var label = {\r\n text: text,\r\n position: position,\r\n rect: new Rect_1.Rect(position.x, position.y - firstLineHeight, bounds.m_fWidth, bounds.m_fHeight),\r\n color: color,\r\n dataX: this.state.xCoord(),\r\n dataY: this.state.yCoord()\r\n };\r\n if (!this.shouldSkipLabel(this.state, label)) {\r\n this.state.dataLabels.push(label);\r\n }\r\n else {\r\n skipCount++;\r\n }\r\n }\r\n if (skipCount > 100 && skipCount / (this.state.indexEnd - this.state.indexStart) > 0.8) {\r\n performanceWarnings_1.performanceWarnings.dataLabelsSkippingMany.warn();\r\n }\r\n this.dataLabels = this.state.dataLabels;\r\n };\r\n DataLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n numericFormat: this.numericFormat,\r\n pointGapThreshold: this.pointGapThreshold,\r\n precision: this.precision,\r\n pointCountThreshold: this.pointCountThreshold,\r\n skipNumber: this.skipNumber,\r\n skipMode: this.skipMode,\r\n updateTextInAnimation: this.updateTextInAnimation,\r\n horizontalTextPosition: this.horizontalTextPosition,\r\n verticalTextPosition: this.verticalTextPosition,\r\n isEnabled: this.isEnabled,\r\n engineeringPrefix: this.engineeringPrefixProperty\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n DataLabelProvider.prototype.skipIfOverlapPrevious = function (state, label) {\r\n var previous = state.lastLabel;\r\n if (!previous)\r\n // First label\r\n return false;\r\n if (previous.rect.right + state.xPadding < label.rect.left)\r\n // x space\r\n return false;\r\n if (Math.abs(previous.rect.y - label.rect.y) > label.rect.height + state.yPadding)\r\n // y space\r\n return false;\r\n return true;\r\n };\r\n DataLabelProvider.prototype.skipIfOverlapNext = function (state, label) {\r\n // For this case, we generate the labels right to left, so last is the next to the right.\r\n var next = state.lastLabel;\r\n if (!next)\r\n // First label\r\n return false;\r\n if (label.rect.right + state.xPadding < next.rect.left)\r\n // x space\r\n return false;\r\n if (Math.abs(next.rect.y - label.rect.y) > label.rect.height + state.yPadding)\r\n // y space\r\n return false;\r\n return true;\r\n };\r\n return DataLabelProvider;\r\n}(BaseDataLabelProvider_1.BaseDataLabelProvider));\r\nexports.DataLabelProvider = DataLabelProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataLabelState = void 0;\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar DpiHelper_1 = require(\"../../TextureManager/DpiHelper\");\r\nvar DataLabelState = /** @class */ (function () {\r\n function DataLabelState(renderContext, renderPassData, style, color, yValues, parentSeries) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n this.dataLabels = [];\r\n this.indexProperty = 0;\r\n this.xCoordCache = undefined;\r\n this.yCoordCache = undefined;\r\n var pointSeries = renderPassData.pointSeries;\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n this.style = DpiHelper_1.DpiHelper.adjustTextStyle(style);\r\n this.color = (0, parseColor_1.parseColorToUIntArgb)(color);\r\n this.xValues = isCategoryAxis ? pointSeries.indexes : pointSeries.xValues;\r\n this.yValues = yValues;\r\n this.parentSeries = parentSeries;\r\n this.renderPassData = renderPassData;\r\n this.yFinalValues = (_a = this.parentSeries.dataSeries) === null || _a === void 0 ? void 0 : _a.yFinalAnimationValues;\r\n this.isXFlipped = (renderPassData.isVerticalChart\r\n ? this.renderPassData.yCoordinateCalculator\r\n : this.renderPassData.xCoordinateCalculator).hasFlippedCoordinates;\r\n this.isYFlipped = (renderPassData.isVerticalChart\r\n ? this.renderPassData.xCoordinateCalculator\r\n : this.renderPassData.yCoordinateCalculator).hasFlippedCoordinates;\r\n if (!renderPassData.indexRange) {\r\n var indicesRange = this.parentSeries.getIndicesRange(new NumberRange_1.NumberRange(renderPassData.xCoordinateCalculator.visibleMin, renderPassData.xCoordinateCalculator.visibleMax), isCategoryAxis);\r\n this.indexStart = indicesRange.min;\r\n this.indexEnd = indicesRange.max;\r\n this.pointCount = renderPassData.indexRange.diff + 1;\r\n if (this.pointCount > 1) {\r\n this.pointGap = renderPassData.isVerticalChart\r\n ? Math.abs(this.yCoord(this.indexStart) - this.yCoord(this.indexEnd)) / this.pointCount\r\n : Math.abs(this.xCoord(this.indexStart) - this.xCoord(this.indexEnd)) / this.pointCount;\r\n }\r\n else\r\n this.pointGap = Infinity; // Single point\r\n }\r\n else {\r\n this.indexStart = pointSeries.resampled ? 0 : renderPassData.indexRange.min;\r\n this.pointCount = pointSeries.resampled ? pointSeries.count : renderPassData.indexRange.diff + 1;\r\n this.indexEnd = pointSeries.resampled ? pointSeries.count - 1 : renderPassData.indexRange.max;\r\n if (this.pointCount > 1) {\r\n this.pointGap = renderPassData.isVerticalChart\r\n ? Math.abs(this.yCoord(this.indexStart) - this.yCoord(this.indexEnd)) / this.pointCount\r\n : Math.abs(this.xCoord(this.indexStart) - this.xCoord(this.indexEnd)) / this.pointCount;\r\n }\r\n else\r\n this.pointGap = Infinity; // Single point\r\n }\r\n this.index = this.indexStart;\r\n this.font = renderContext.getFont(this.style);\r\n this.xPadding = ((_c = (_b = this.style.padding) === null || _b === void 0 ? void 0 : _b.left) !== null && _c !== void 0 ? _c : 0) + ((_e = (_d = this.style.padding) === null || _d === void 0 ? void 0 : _d.right) !== null && _e !== void 0 ? _e : 0);\r\n this.yPadding = ((_g = (_f = this.style.padding) === null || _f === void 0 ? void 0 : _f.top) !== null && _g !== void 0 ? _g : 0) + ((_j = (_h = this.style.padding) === null || _h === void 0 ? void 0 : _h.bottom) !== null && _j !== void 0 ? _j : 0);\r\n this.fifoSweeping = parentSeries.dataSeries.fifoSweeping;\r\n }\r\n Object.defineProperty(DataLabelState.prototype, \"index\", {\r\n get: function () {\r\n return this.indexProperty;\r\n },\r\n set: function (value) {\r\n this.xCoordCache = undefined;\r\n this.yCoordCache = undefined;\r\n this.indexProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DataLabelState.prototype.xVal = function (index) {\r\n var i = index !== null && index !== void 0 ? index : this.indexProperty;\r\n if (!this.isXFlipped) {\r\n i = this.indexEnd - (i - this.indexStart);\r\n }\r\n return this.parentSeries.dataSeries.getNativeValue(this.xValues, i);\r\n };\r\n DataLabelState.prototype.yVal = function (index) {\r\n var i = index !== null && index !== void 0 ? index : this.indexProperty;\r\n if (!this.isXFlipped) {\r\n i = this.indexEnd - (i - this.indexStart);\r\n }\r\n return this.parentSeries.dataSeries.getNativeValue(this.yValues, i);\r\n };\r\n DataLabelState.prototype.yValAfterAnimation = function (index) {\r\n if (!this.yFinalValues)\r\n return this.yVal(index);\r\n var i = index !== null && index !== void 0 ? index : this.indexProperty;\r\n if (!this.isXFlipped) {\r\n i = this.indexEnd - (i - this.indexStart);\r\n }\r\n return this.yFinalValues.get(i);\r\n };\r\n DataLabelState.prototype.xCoord = function (index) {\r\n if (this.renderPassData.isVerticalChart)\r\n return this.yCoordInternal(index);\r\n else\r\n return this.xCoordInternal(index);\r\n };\r\n DataLabelState.prototype.yCoord = function (index) {\r\n if (this.renderPassData.isVerticalChart)\r\n return this.xCoordInternal(index);\r\n else\r\n return this.yCoordInternal(index);\r\n };\r\n DataLabelState.prototype.hasNext = function (index) {\r\n var i = index !== null && index !== void 0 ? index : this.indexProperty;\r\n if (!this.isXFlipped)\r\n return i > 0;\r\n else\r\n return i < this.indexEnd;\r\n };\r\n Object.defineProperty(DataLabelState.prototype, \"lastLabel\", {\r\n get: function () {\r\n if (this.dataLabels.length > 0) {\r\n return this.dataLabels[this.dataLabels.length - 1];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DataLabelState.prototype.getMetaData = function () {\r\n var index = this.renderPassData.pointSeries.indexes.get(this.index);\r\n return this.parentSeries.dataSeries.getMetadataAt(index, this.fifoSweeping);\r\n };\r\n Object.defineProperty(DataLabelState.prototype, \"isVerticalChart\", {\r\n get: function () {\r\n return this.renderPassData.isVerticalChart;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DataLabelState.prototype.xCoordInternal = function (index) {\r\n if (index !== undefined)\r\n return this.renderPassData.xCoordinateCalculator.getCoordinate(this.xVal(index));\r\n else {\r\n if (this.xCoordCache !== undefined)\r\n return this.xCoordCache;\r\n else\r\n this.xCoordCache = this.renderPassData.xCoordinateCalculator.getCoordinate(this.xVal());\r\n return this.xCoordCache;\r\n }\r\n };\r\n DataLabelState.prototype.yCoordInternal = function (index) {\r\n if (index !== undefined)\r\n return this.renderPassData.yCoordinateCalculator.getCoordinate(this.yVal(index));\r\n else {\r\n if (this.yCoordCache !== undefined)\r\n return this.yCoordCache;\r\n else\r\n this.yCoordCache = this.renderPassData.yCoordinateCalculator.getCoordinate(this.yVal());\r\n return this.yCoordCache;\r\n }\r\n };\r\n return DataLabelState;\r\n}());\r\nexports.DataLabelState = DataLabelState;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HeatMapDataLabelProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar Rect_1 = require(\"../../../../Core/Rect\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar NumericFormat_1 = require(\"../../../../types/NumericFormat\");\r\nvar Size_1 = require(\"../../../../types/Size\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar DpiHelper_1 = require(\"../../TextureManager/DpiHelper\");\r\nvar BaseDataLabelProvider_1 = require(\"./BaseDataLabelProvider\");\r\nvar HeatMapDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(HeatMapDataLabelProvider, _super);\r\n function HeatMapDataLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Heatmap;\r\n _this.isEnabledProperty = true;\r\n _this.numericFormatProperty = NumericFormat_1.ENumericFormat.Decimal;\r\n _this.precisionProperty = 1;\r\n _this.numericFormatProperty = (_a = options === null || options === void 0 ? void 0 : options.numericFormat) !== null && _a !== void 0 ? _a : _this.numericFormatProperty;\r\n _this.precision = (_b = options === null || options === void 0 ? void 0 : options.precision) !== null && _b !== void 0 ? _b : _this.precisionProperty;\r\n _this.metaDataSelector = options === null || options === void 0 ? void 0 : options.metaDataSelector;\r\n _this.isEnabledProperty = (_c = options === null || options === void 0 ? void 0 : options.isEnabled) !== null && _c !== void 0 ? _c : _this.isEnabledProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(HeatMapDataLabelProvider.prototype, \"numericFormat\", {\r\n /**\r\n * Gets or sets numeric format to use when formatting values to text. For a list of values, see {@link ENumericFormat}\r\n * For more control, override getText\r\n */\r\n get: function () {\r\n return this.numericFormatProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n this.numericFormatProperty = value;\r\n (_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatMapDataLabelProvider.prototype, \"precision\", {\r\n /**\r\n * Gets or sets the precision to use when formatting values to text\r\n * For more control, override getText\r\n */\r\n get: function () {\r\n return this.precisionProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n this.precisionProperty = value;\r\n (_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatMapDataLabelProvider.prototype, \"isEnabled\", {\r\n /** Flag to enable/disable dataLabel generation. Default true */\r\n get: function () {\r\n return this.isEnabledProperty;\r\n },\r\n /** Flag to enable/disable dataLabel generation. Default true */\r\n set: function (value) {\r\n if (this.isEnabledProperty !== value) {\r\n this.isEnabledProperty = value;\r\n this.invalidateParent();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n HeatMapDataLabelProvider.prototype.getText = function (xIndex, yIndex) {\r\n var _a, _b;\r\n if (this.metaDataSelector) {\r\n return this.metaDataSelector(this.dataSeries.getMetadataAt(yIndex, xIndex));\r\n }\r\n var z = this.zValues[yIndex][xIndex];\r\n if (z === z) {\r\n // Fast isNaN check\r\n return (0, number_1.formatNumber)(z, (_a = this.numericFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Decimal, (_b = this.precision) !== null && _b !== void 0 ? _b : 1);\r\n }\r\n else {\r\n return undefined;\r\n }\r\n };\r\n HeatMapDataLabelProvider.prototype.getPosition = function (xIndex, yIndex, xVal, yVal, textSize, cellWidth, cellHeight, renderPassData) {\r\n var x = renderPassData.xCoordinateCalculator.getCoordinate(xVal);\r\n var y = renderPassData.yCoordinateCalculator.getCoordinate(yVal);\r\n if (renderPassData.isVerticalChart) {\r\n var c = x;\r\n x = y;\r\n y = c;\r\n }\r\n if (renderPassData.xCoordinateCalculator.hasFlippedCoordinates) {\r\n x += (cellWidth - textSize.width) / 2;\r\n }\r\n else {\r\n x -= cellWidth - (cellWidth - textSize.width) / 2;\r\n }\r\n if (renderPassData.yCoordinateCalculator.hasFlippedCoordinates) {\r\n y += cellHeight - (cellHeight - textSize.height) / 2;\r\n }\r\n else {\r\n y -= (cellHeight - textSize.height) / 2;\r\n }\r\n return new Point_1.Point(x, y);\r\n };\r\n HeatMapDataLabelProvider.prototype.shouldGenerate = function (textSize, cellWidth, cellHeight) {\r\n return textSize.height < cellHeight && textSize.width < cellWidth;\r\n };\r\n HeatMapDataLabelProvider.prototype.getColor = function (xIndex, yIndex, text) {\r\n return this.colorValue;\r\n };\r\n HeatMapDataLabelProvider.prototype.shouldSkipLabel = function (xIndex, yIndex, label, cellWidth, cellHeight) {\r\n // Skip if out of bounds\r\n var svr = this.parentSeries.parentSurface.seriesViewRect;\r\n // const yMax = state.renderPassData.isVerticalChart ? svr.width : svr.height;\r\n if (label.rect.y < 0 || label.rect.bottom > svr.height)\r\n return true;\r\n // const xMax = state.renderPassData.isVerticalChart ? svr.height : svr.width;\r\n if (label.rect.x < 0 || label.rect.right > svr.width)\r\n return true;\r\n return false;\r\n };\r\n HeatMapDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var _a;\r\n var _b, _c;\r\n // clear any previous labels\r\n this.dataLabels = [];\r\n if (!this.isEnabled || !this.style || !this.style.fontFamily || !this.style.fontSize) {\r\n return;\r\n }\r\n this.dataSeries = this.parentSeries.dataSeries;\r\n this.zValues = this.dataSeries.getZValues();\r\n // this.state = new DataLabelState(renderContext, renderPassData, this.style, yValues, this.parentSeries);\r\n var bounds = (0, NativeObject_1.getTextBounds)(this.webAssemblyContext);\r\n var dpiAdjustedStyle = DpiHelper_1.DpiHelper.adjustTextStyle(this.style);\r\n var font = renderContext.getFont(dpiAdjustedStyle);\r\n var cellWidth = Math.abs(renderPassData.xCoordinateCalculator.getCoordinate(this.dataSeries.getXValue(1)) -\r\n renderPassData.xCoordinateCalculator.getCoordinate(this.dataSeries.getXValue(0)));\r\n var cellHeight = Math.abs(renderPassData.yCoordinateCalculator.getCoordinate(this.dataSeries.getYValue(1)) -\r\n renderPassData.yCoordinateCalculator.getCoordinate(this.dataSeries.getYValue(0)));\r\n font.CalculateStringBounds((_b = this.getText(0, 0)) !== null && _b !== void 0 ? _b : \"\", bounds, (_c = this.style.lineSpacing) !== null && _c !== void 0 ? _c : 2);\r\n if (renderPassData.isVerticalChart) {\r\n _a = [cellWidth, cellHeight], cellHeight = _a[0], cellWidth = _a[1];\r\n }\r\n if (!this.shouldGenerate(new Size_1.Size(bounds.m_fWidth, bounds.m_fHeight), cellWidth, cellHeight))\r\n return;\r\n this.colorValue = (0, parseColor_1.parseColorToUIntArgb)(this.color);\r\n var _d = this.parentSeries.dataSeries, xStart = _d.xStart, xStep = _d.xStep, yStart = _d.yStart, yStep = _d.yStep;\r\n for (var yIndex = 0; yIndex < this.dataSeries.arrayHeight; yIndex++) {\r\n var y = yStart + yStep * yIndex;\r\n if (renderPassData.yCoordinateCalculator.visibleMin > y + yStep ||\r\n renderPassData.yCoordinateCalculator.visibleMax < y)\r\n continue;\r\n for (var xIndex = 0; xIndex < this.dataSeries.arrayWidth; xIndex++) {\r\n var x = xStart + xStep * xIndex;\r\n if (renderPassData.xCoordinateCalculator.visibleMin > x + xStep ||\r\n renderPassData.xCoordinateCalculator.visibleMax < x)\r\n continue;\r\n var text = this.getText(xIndex, yIndex);\r\n if (!text) {\r\n continue;\r\n }\r\n font.CalculateStringBounds(text !== null && text !== void 0 ? text : \"\", bounds, 2);\r\n var textSize = new Size_1.Size(bounds.m_fWidth, bounds.m_fHeight);\r\n var xVal = this.dataSeries.getXValue(xIndex);\r\n var yVal = this.dataSeries.getYValue(yIndex);\r\n var position = this.getPosition(xIndex, yIndex, xVal, yVal, textSize, cellWidth, cellHeight, renderPassData);\r\n var label = {\r\n text: text,\r\n position: position,\r\n rect: new Rect_1.Rect(position.x, position.y - bounds.GetLineBounds(0).m_fHeight, textSize.width, textSize.height),\r\n color: this.getColor(xIndex, yIndex, text),\r\n dataX: this.dataSeries.getXValue(xIndex),\r\n dataY: this.dataSeries.getYValue(yIndex)\r\n };\r\n if (!this.shouldSkipLabel(xIndex, yIndex, label, cellWidth, cellHeight)) {\r\n this.dataLabels.push(label);\r\n }\r\n }\r\n }\r\n };\r\n HeatMapDataLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n numericFormat: this.numericFormat,\r\n precision: this.precision,\r\n isEnabled: this.isEnabled\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return HeatMapDataLabelProvider;\r\n}(BaseDataLabelProvider_1.BaseDataLabelProvider));\r\nexports.HeatMapDataLabelProvider = HeatMapDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LineSeriesDataLabelProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar DataLabelProvider_1 = require(\"./DataLabelProvider\");\r\nvar LineSeriesDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(LineSeriesDataLabelProvider, _super);\r\n function LineSeriesDataLabelProvider(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Line;\r\n _this.aboveBelowProperty = true;\r\n _this.aboveBelowProperty = (_a = options === null || options === void 0 ? void 0 : options.aboveBelow) !== null && _a !== void 0 ? _a : _this.aboveBelow;\r\n return _this;\r\n }\r\n Object.defineProperty(LineSeriesDataLabelProvider.prototype, \"aboveBelow\", {\r\n /**\r\n * Gets or Sets whether text should be positioned above the line if it is going down, and below the line if it going up.\r\n * Default true. When true this overrides horizontalAnchorPoint and verticalAnchorPoint to be left, bottom.\r\n */\r\n get: function () {\r\n return this.aboveBelowProperty;\r\n },\r\n set: function (value) {\r\n this.aboveBelowProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LineSeriesDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var parent = this.parentSeries;\r\n this.yAdj = Math.ceil(parent.strokeThickness / 2);\r\n if (parent.pointMarker) {\r\n this.yAdj = Math.max(this.yAdj, Math.ceil(parent.pointMarker.height / 2));\r\n }\r\n _super.prototype.generateDataLabels.call(this, renderContext, renderPassData);\r\n };\r\n LineSeriesDataLabelProvider.prototype.getPosition = function (state, textBounds) {\r\n var _a, _b, _c, _d, _e, _f;\r\n if (this.aboveBelow) {\r\n var x = state.xCoord() + ((_b = (_a = this.style.padding) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0);\r\n // Handle multiline\r\n var yOffset = textBounds.m_fHeight - textBounds.GetLineBounds(0).m_fHeight;\r\n var y = state.yCoord() - yOffset;\r\n if (state.hasNext()) {\r\n var nextY = state.yCoord(state.index + 1);\r\n var nextX = state.xCoord(state.index + 1);\r\n // Text anchor point is bottom left\r\n if ((nextX > x && nextY > y) || (nextX < x && nextY < y)) {\r\n // going down - draw above\r\n y -= this.yAdj + ((_d = (_c = state.style.padding) === null || _c === void 0 ? void 0 : _c.bottom) !== null && _d !== void 0 ? _d : 1);\r\n }\r\n else {\r\n // going up - draw below\r\n y += textBounds.m_fHeight + this.yAdj + ((_f = (_e = state.style.padding) === null || _e === void 0 ? void 0 : _e.top) !== null && _f !== void 0 ? _f : 1);\r\n }\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else {\r\n return _super.prototype.getPosition.call(this, state, textBounds);\r\n }\r\n };\r\n LineSeriesDataLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n aboveBelow: this.aboveBelow\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return LineSeriesDataLabelProvider;\r\n}(DataLabelProvider_1.DataLabelProvider));\r\nexports.LineSeriesDataLabelProvider = LineSeriesDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NonUniformHeatMapDataLabelProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar Rect_1 = require(\"../../../../Core/Rect\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar Size_1 = require(\"../../../../types/Size\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar DpiHelper_1 = require(\"../../TextureManager/DpiHelper\");\r\nvar HeatMapDataLabelProvider_1 = require(\"./HeatMapDataLabelProvider\");\r\nvar NonUniformHeatMapDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(NonUniformHeatMapDataLabelProvider, _super);\r\n function NonUniformHeatMapDataLabelProvider() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.NonUniformHeatmap;\r\n _this.cellSizeThresholdCoefficient = 1;\r\n return _this;\r\n }\r\n NonUniformHeatMapDataLabelProvider.prototype.getPosition = function (xIndex, yIndex, xVal, yVal, textSize, cellWidth, cellHeight, renderPassData) {\r\n var x = renderPassData.xCoordinateCalculator.getCoordinate(xVal);\r\n var y = renderPassData.yCoordinateCalculator.getCoordinate(yVal);\r\n if (renderPassData.isVerticalChart) {\r\n var c = x;\r\n x = y;\r\n y = c;\r\n }\r\n if (renderPassData.xCoordinateCalculator.hasFlippedCoordinates) {\r\n x += (cellWidth - textSize.width) / 2;\r\n }\r\n else {\r\n x -= cellWidth - (cellWidth - textSize.width) / 2;\r\n }\r\n if (renderPassData.yCoordinateCalculator.hasFlippedCoordinates) {\r\n y += cellHeight - (cellHeight - textSize.height) / 2;\r\n }\r\n else {\r\n y -= (cellHeight - textSize.height) / 2;\r\n }\r\n return new Point_1.Point(x, y);\r\n };\r\n NonUniformHeatMapDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var _a, _b;\r\n // clear any previous labels\r\n this.dataLabels = [];\r\n if (!this.style || !this.style.fontFamily || !this.style.fontSize) {\r\n return;\r\n }\r\n this.dataSeries = this.parentSeries.dataSeries;\r\n this.zValues = this.dataSeries.getZValues();\r\n // this.state = new DataLabelState(renderContext, renderPassData, this.style, yValues, this.parentSeries);\r\n var bounds = (0, NativeObject_1.getTextBounds)(this.webAssemblyContext);\r\n var dpiAdjustedStyle = DpiHelper_1.DpiHelper.adjustTextStyle(this.style);\r\n var font = renderContext.getFont(dpiAdjustedStyle);\r\n // NonUniform-specific logic\r\n var heatmapWidth = Math.abs(renderPassData.xCoordinateCalculator.getCoordinate(this.dataSeries.getXValue(this.dataSeries.arrayWidth)) -\r\n renderPassData.xCoordinateCalculator.getCoordinate(this.dataSeries.getXValue(0)));\r\n var heatmapHeight = Math.abs(renderPassData.yCoordinateCalculator.getCoordinate(this.dataSeries.getYValue(this.dataSeries.arrayHeight)) -\r\n renderPassData.yCoordinateCalculator.getCoordinate(this.dataSeries.getYValue(0)));\r\n var relativeXCellSizes = this.dataSeries.xCellSizes;\r\n var relativeYCellSizes = this.dataSeries.yCellSizes;\r\n font.CalculateStringBounds((_a = this.getText(0, 0)) !== null && _a !== void 0 ? _a : \"\", bounds, (_b = this.style.lineSpacing) !== null && _b !== void 0 ? _b : 2);\r\n var minCellHeight = bounds.m_fHeight * this.cellSizeThresholdCoefficient;\r\n var minCellWidth = bounds.m_fWidth * this.cellSizeThresholdCoefficient;\r\n // TODO figure out how it should work for NonUniform\r\n // if (!this.shouldGenerate(new Size(bounds.m_fWidth, bounds.m_fHeight), cellWidth, cellHeight)) return;\r\n this.colorValue = (0, parseColor_1.parseColorToUIntArgb)(this.color);\r\n for (var yIndex = 0; yIndex < this.dataSeries.arrayHeight; yIndex++) {\r\n var cellHeight = heatmapHeight * relativeYCellSizes[yIndex];\r\n if (cellHeight < minCellHeight) {\r\n continue;\r\n }\r\n var yVal = this.dataSeries.getYValue(yIndex);\r\n var yValNext = this.dataSeries.yCellOffsets[yIndex + 1];\r\n if (renderPassData.yCoordinateCalculator.visibleMin > yVal ||\r\n renderPassData.yCoordinateCalculator.visibleMax < yValNext) {\r\n continue;\r\n }\r\n for (var xIndex = 0; xIndex < this.dataSeries.arrayWidth; xIndex++) {\r\n var cellWidth = heatmapWidth * relativeXCellSizes[xIndex];\r\n if (cellWidth < minCellWidth) {\r\n continue;\r\n }\r\n var xVal = this.dataSeries.getXValue(xIndex);\r\n var xValNext = this.dataSeries.xCellOffsets[xIndex + 1];\r\n if (renderPassData.xCoordinateCalculator.visibleMin > xVal ||\r\n renderPassData.xCoordinateCalculator.visibleMax < xValNext) {\r\n continue;\r\n }\r\n var text = this.getText(xIndex, yIndex);\r\n if (!text) {\r\n continue;\r\n }\r\n font.CalculateStringBounds(text !== null && text !== void 0 ? text : \"\", bounds, 2);\r\n var textSize = new Size_1.Size(bounds.m_fWidth, bounds.m_fHeight);\r\n if (renderPassData.isVerticalChart) {\r\n var c = cellHeight;\r\n cellHeight = cellWidth;\r\n cellWidth = c;\r\n }\r\n var position = this.getPosition(xIndex, yIndex, xVal, yVal, textSize, cellWidth, cellHeight, renderPassData);\r\n var label = {\r\n text: text,\r\n position: position,\r\n rect: new Rect_1.Rect(position.x, position.y - bounds.GetLineBounds(0).m_fHeight, textSize.width, textSize.height),\r\n color: this.getColor(xIndex, yIndex, text),\r\n dataX: xVal,\r\n dataY: yVal\r\n };\r\n if (!this.shouldSkipLabel(xIndex, yIndex, label, cellWidth, cellHeight)) {\r\n this.dataLabels.push(label);\r\n }\r\n }\r\n }\r\n };\r\n return NonUniformHeatMapDataLabelProvider;\r\n}(HeatMapDataLabelProvider_1.HeatMapDataLabelProvider));\r\nexports.NonUniformHeatMapDataLabelProvider = NonUniformHeatMapDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedCollectionDataLabelProvider = void 0;\r\nvar BaseDataLabelProvider_1 = require(\"./BaseDataLabelProvider\");\r\nvar StackedCollectionDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(StackedCollectionDataLabelProvider, _super);\r\n function StackedCollectionDataLabelProvider() {\r\n return _super.call(this) || this;\r\n }\r\n StackedCollectionDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n // Nothing needed here\r\n };\r\n StackedCollectionDataLabelProvider.prototype.draw = function (renderContext) {\r\n for (var _i = 0, _a = this.parentSeries.asArray(); _i < _a.length; _i++) {\r\n var series = _a[_i];\r\n if (series.isVisible) {\r\n series.dataLabelProvider.draw(renderContext);\r\n }\r\n }\r\n };\r\n return StackedCollectionDataLabelProvider;\r\n}(BaseDataLabelProvider_1.BaseDataLabelProvider));\r\nexports.StackedCollectionDataLabelProvider = StackedCollectionDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedColumnSeriesDataLabelProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar TextPosition_1 = require(\"../../../../types/TextPosition\");\r\nvar ColumnSeriesDataLabelProvider_1 = require(\"./ColumnSeriesDataLabelProvider\");\r\nvar DataLabelProvider_1 = require(\"./DataLabelProvider\");\r\nvar StackedColumnSeriesDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(StackedColumnSeriesDataLabelProvider, _super);\r\n function StackedColumnSeriesDataLabelProvider(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, __assign({ horizontalTextPosition: TextPosition_1.EHorizontalTextPosition.Center, verticalTextPosition: TextPosition_1.EVerticalTextPosition.Center }, options)) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Column;\r\n _this.positionModeProperty = ColumnSeriesDataLabelProvider_1.EColumnDataLabelPosition.Outside;\r\n _this.positionModeProperty = (_a = options === null || options === void 0 ? void 0 : options.positionMode) !== null && _a !== void 0 ? _a : _this.positionMode;\r\n return _this;\r\n }\r\n Object.defineProperty(StackedColumnSeriesDataLabelProvider.prototype, \"positionMode\", {\r\n /**\r\n * Sets whether text should be positioned outside or inside the end of the column using {@link EColumnDataLabelPosition}.\r\n * If Position then the {@link verticalTextPosition} property is used, or {@link horizontalTextPosition} if it is a vertical chart.\r\n * Default Outside\r\n */\r\n get: function () {\r\n return this.positionModeProperty;\r\n },\r\n /**\r\n * Sets whether text should be positioned outside or inside the end of the column using {@link EColumnDataLabelPosition}.\r\n * If Position then the {@link verticalTextPosition} property is used, or {@link horizontalTextPosition} if it is a vertical chart.\r\n * Default Outside\r\n */\r\n set: function (value) {\r\n this.positionModeProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n StackedColumnSeriesDataLabelProvider.prototype.CalculateShift = function (initialVal) {\r\n var columnWidth = this.columnWidth;\r\n var columnCount = this.groupSize;\r\n return (initialVal -\r\n (columnWidth * columnCount) / 2.0 -\r\n (this.spacing * (columnCount - 1.0)) / 2.0 +\r\n this.groupIndex * (this.spacing + columnWidth) +\r\n 0.5 * columnWidth);\r\n };\r\n StackedColumnSeriesDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var parent = this.parentSeries;\r\n this.yAdj = Math.ceil(parent.strokeThickness / 2);\r\n if (parent.pointMarker) {\r\n this.yAdj = Math.max(this.yAdj, Math.ceil(parent.pointMarker.height / 2));\r\n }\r\n _super.prototype.generateDataLabels.call(this, renderContext, renderPassData);\r\n };\r\n StackedColumnSeriesDataLabelProvider.prototype.getPosition = function (state, textBounds) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;\r\n // when isXFlipped is true, the index is reversed in the state so we need to reverse it back\r\n var pointIndex = state.isXFlipped ? state.index : state.indexEnd - (state.index - state.indexStart);\r\n var accumulatedValue = this.topVector.get(pointIndex);\r\n var x = state.xCoord();\r\n var y = state.yCoord();\r\n var yCalculator = state.renderPassData.yCoordinateCalculator;\r\n if (state.isVerticalChart) {\r\n y = this.CalculateShift(y);\r\n x = yCalculator.getCoordinate(accumulatedValue);\r\n }\r\n else {\r\n x = this.CalculateShift(x);\r\n y = yCalculator.getCoordinate(accumulatedValue);\r\n }\r\n // to handle multi-line text\r\n var yOffset = textBounds.m_fHeight - textBounds.GetLineBounds(0).m_fHeight;\r\n y = y - yOffset;\r\n var flipX = state.isXFlipped ? -1 : 1;\r\n var flipY = state.isYFlipped ? -1 : 1;\r\n // TODO: handle isOneHundredPercent (middle placement of dataLabels - not urgent).\r\n if (state.isVerticalChart) {\r\n // Vertical Text positioning\r\n if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Center) {\r\n y += textBounds.m_fHeight / 2;\r\n }\r\n else if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Below) {\r\n y += textBounds.m_fHeight + ((_b = (_a = this.style.padding) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 1);\r\n }\r\n else {\r\n // Above\r\n y -= (_d = (_c = this.style.padding) === null || _c === void 0 ? void 0 : _c.bottom) !== null && _d !== void 0 ? _d : 0;\r\n }\r\n // Positioning Mode\r\n if (this.positionMode === ColumnSeriesDataLabelProvider_1.EColumnDataLabelPosition.Outside) {\r\n // Text anchor point is bottom left\r\n if (state.yVal() * flipY >= 0) {\r\n // positive - draw right\r\n x += this.yAdj;\r\n if (!state.isXFlipped) {\r\n x -= textBounds.m_fWidth + ((_f = (_e = state.style.padding) === null || _e === void 0 ? void 0 : _e.right) !== null && _f !== void 0 ? _f : 1);\r\n }\r\n else {\r\n x += (_h = (_g = state.style.padding) === null || _g === void 0 ? void 0 : _g.left) !== null && _h !== void 0 ? _h : 1;\r\n }\r\n }\r\n else {\r\n // negative - draw left\r\n x -= this.yAdj - ((_k = (_j = state.style.padding) === null || _j === void 0 ? void 0 : _j.right) !== null && _k !== void 0 ? _k : 1);\r\n if (state.isXFlipped || state.isYFlipped) {\r\n x -= textBounds.m_fWidth + ((_m = (_l = state.style.padding) === null || _l === void 0 ? void 0 : _l.left) !== null && _m !== void 0 ? _m : 1);\r\n }\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else if (this.positionMode === ColumnSeriesDataLabelProvider_1.EColumnDataLabelPosition.Inside) {\r\n // Text anchor point is bottom left\r\n if (state.yVal() * flipY >= 0) {\r\n // positive - draw left\r\n x -= this.yAdj + ((_p = (_o = state.style.padding) === null || _o === void 0 ? void 0 : _o.right) !== null && _p !== void 0 ? _p : 1);\r\n if (state.isXFlipped || state.isYFlipped) {\r\n x -= textBounds.m_fWidth + ((_r = (_q = state.style.padding) === null || _q === void 0 ? void 0 : _q.left) !== null && _r !== void 0 ? _r : 1);\r\n }\r\n }\r\n else {\r\n // negative - draw right\r\n x += this.yAdj + ((_t = (_s = state.style.padding) === null || _s === void 0 ? void 0 : _s.left) !== null && _t !== void 0 ? _t : 1);\r\n if (!state.isXFlipped) {\r\n x -= textBounds.m_fWidth + ((_v = (_u = state.style.padding) === null || _u === void 0 ? void 0 : _u.right) !== null && _v !== void 0 ? _v : 1);\r\n }\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else {\r\n return _super.prototype.getPosition.call(this, state, textBounds);\r\n }\r\n }\r\n else {\r\n if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Center) {\r\n x -= textBounds.m_fWidth / 2;\r\n }\r\n else if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Left) {\r\n x -= textBounds.m_fWidth + ((_x = (_w = this.style.padding) === null || _w === void 0 ? void 0 : _w.right) !== null && _x !== void 0 ? _x : 0) + textBounds.m_fWidth;\r\n }\r\n else {\r\n x += (_z = (_y = this.style.padding) === null || _y === void 0 ? void 0 : _y.left) !== null && _z !== void 0 ? _z : 0 + textBounds.m_fWidth;\r\n }\r\n if (this.positionMode === ColumnSeriesDataLabelProvider_1.EColumnDataLabelPosition.Outside) {\r\n // Text anchor point is bottom left\r\n if (state.yVal() * flipY >= 0) {\r\n // positive - draw above\r\n y -= this.yAdj + ((_1 = (_0 = state.style.padding) === null || _0 === void 0 ? void 0 : _0.bottom) !== null && _1 !== void 0 ? _1 : 1);\r\n }\r\n else {\r\n // negative - draw below\r\n y += textBounds.m_fHeight + this.yAdj + ((_3 = (_2 = state.style.padding) === null || _2 === void 0 ? void 0 : _2.top) !== null && _3 !== void 0 ? _3 : 1);\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else if (this.positionMode === ColumnSeriesDataLabelProvider_1.EColumnDataLabelPosition.Inside) {\r\n // Text anchor point is bottom left\r\n if (state.yVal() * flipY >= 0) {\r\n y += textBounds.m_fHeight + this.yAdj + ((_5 = (_4 = state.style.padding) === null || _4 === void 0 ? void 0 : _4.top) !== null && _5 !== void 0 ? _5 : 1);\r\n // positive - draw below\r\n }\r\n else {\r\n // negative - draw above\r\n y -= this.yAdj + ((_7 = (_6 = state.style.padding) === null || _6 === void 0 ? void 0 : _6.bottom) !== null && _7 !== void 0 ? _7 : 1);\r\n }\r\n return new Point_1.Point(x, y);\r\n }\r\n else {\r\n return _super.prototype.getPosition.call(this, state, textBounds);\r\n }\r\n }\r\n };\r\n StackedColumnSeriesDataLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n positionMode: this.positionMode\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return StackedColumnSeriesDataLabelProvider;\r\n}(DataLabelProvider_1.DataLabelProvider));\r\nexports.StackedColumnSeriesDataLabelProvider = StackedColumnSeriesDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextDataLabelProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar Rect_1 = require(\"../../../../Core/Rect\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar BaseDataLabelProvider_1 = require(\"./BaseDataLabelProvider\");\r\nvar DataLabelProviderType_1 = require(\"../../../../types/DataLabelProviderType\");\r\nvar DataLabelState_1 = require(\"./DataLabelState\");\r\nvar TextPosition_1 = require(\"../../../../types/TextPosition\");\r\n/**\r\n * A DataLabelProvider sepcifically designed to work with {@link FastTextRenderableSeries } or any series that uses an {@link XYTextDataSeries }\r\n * Text is taken directly from the textValues on the dataSeries and placed at the x,y coordinates (anchored top, left)\r\n */\r\nvar TextDataLabelProvider = /** @class */ (function (_super) {\r\n __extends(TextDataLabelProvider, _super);\r\n function TextDataLabelProvider(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, __assign(__assign({}, options), { style: __assign({ fontFamily: \"Arial\", fontSize: 12 }, options === null || options === void 0 ? void 0 : options.style) })) || this;\r\n _this.type = DataLabelProviderType_1.EDataLabelProviderType.Text;\r\n /**\r\n * This default false for maximum performance. It will be true if you set the textPosition to something other than Above, Right.\r\n * You can force it true if you want to make use of the text sizes in onAfterGenerate\r\n */\r\n _this.calculateTextBounds = false;\r\n _this.horizontalTextPositionProperty = TextPosition_1.EHorizontalTextPosition.Right;\r\n _this.verticalTextPositionProperty = TextPosition_1.EVerticalTextPosition.Above;\r\n _this.isEnabledProperty = true;\r\n _this.calculateTextBounds = (_a = options === null || options === void 0 ? void 0 : options.calculateTextBounds) !== null && _a !== void 0 ? _a : _this.calculateTextBounds;\r\n _this.horizontalTextPositionProperty = (_b = options === null || options === void 0 ? void 0 : options.horizontalTextPosition) !== null && _b !== void 0 ? _b : _this.horizontalTextPosition;\r\n _this.verticalTextPositionProperty = (_c = options === null || options === void 0 ? void 0 : options.verticalTextPosition) !== null && _c !== void 0 ? _c : _this.verticalTextPosition;\r\n _this.isEnabledProperty = (_d = options === null || options === void 0 ? void 0 : options.isEnabled) !== null && _d !== void 0 ? _d : _this.isEnabledProperty;\r\n return _this;\r\n }\r\n Object.defineProperty(TextDataLabelProvider.prototype, \"horizontalTextPosition\", {\r\n /**\r\n * Gets or sets the horizontal text position for the label\r\n * For more control, override getPosition\r\n */\r\n get: function () {\r\n return this.horizontalTextPositionProperty;\r\n },\r\n set: function (value) {\r\n this.horizontalTextPositionProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextDataLabelProvider.prototype, \"verticalTextPosition\", {\r\n /**\r\n * Gets or sets the vertical text position for the label\r\n * For more control, override getPosition\r\n */\r\n get: function () {\r\n return this.verticalTextPositionProperty;\r\n },\r\n set: function (value) {\r\n this.verticalTextPositionProperty = value;\r\n this.invalidateParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextDataLabelProvider.prototype, \"isEnabled\", {\r\n /** Flag to enable/disable dataLabel generation. Default true */\r\n get: function () {\r\n return this.isEnabledProperty;\r\n },\r\n /** Flag to enable/disable dataLabel generation. Default true */\r\n set: function (value) {\r\n if (this.isEnabledProperty !== value) {\r\n this.isEnabledProperty = value;\r\n this.invalidateParent();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextDataLabelProvider.prototype.getPosition = function (state, textBounds) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n var x = state.xCoord();\r\n if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Center) {\r\n x -= textBounds.m_fWidth / 2;\r\n }\r\n else if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Left) {\r\n x -= textBounds.m_fWidth + ((_b = (_a = this.style.padding) === null || _a === void 0 ? void 0 : _a.right) !== null && _b !== void 0 ? _b : 0);\r\n }\r\n else {\r\n x += (_d = (_c = this.style.padding) === null || _c === void 0 ? void 0 : _c.right) !== null && _d !== void 0 ? _d : 0;\r\n }\r\n var yOffset = textBounds.m_fHeight - textBounds.GetLineBounds(0).m_fHeight;\r\n var y = state.yCoord() - yOffset;\r\n if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Center) {\r\n y += textBounds.m_fHeight / 2;\r\n }\r\n else if (this.verticalTextPosition === TextPosition_1.EVerticalTextPosition.Below) {\r\n y += textBounds.m_fHeight + ((_f = (_e = this.style.padding) === null || _e === void 0 ? void 0 : _e.top) !== null && _f !== void 0 ? _f : 0);\r\n }\r\n else {\r\n y -= (_h = (_g = this.style.padding) === null || _g === void 0 ? void 0 : _g.bottom) !== null && _h !== void 0 ? _h : 0;\r\n }\r\n return new Point_1.Point(x, y);\r\n };\r\n TextDataLabelProvider.prototype.getColor = function (state, text) {\r\n return state.color;\r\n };\r\n TextDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {\r\n var _a, _b, _c, _d, _e;\r\n // clear any previous labels\r\n this.dataLabels = [];\r\n if (!this.isEnabled || !this.style || !this.style.fontFamily || !this.style.fontSize) {\r\n return;\r\n }\r\n var textSeries = this.parentSeries.dataSeries;\r\n if (!textSeries || !textSeries.textValues) {\r\n console.warn(\"TextDataLabelProvider requires an XyTextDataSeries\");\r\n return;\r\n }\r\n var state = new DataLabelState_1.DataLabelState(renderContext, renderPassData, this.style, this.color, renderPassData.pointSeries.yValues, this.parentSeries);\r\n var bounds = (0, NativeObject_1.getTextBounds)(this.webAssemblyContext);\r\n var _f = this.parentSeries.dataSeries, fifoCapacity = _f.fifoCapacity, fifoSweeping = _f.fifoSweeping, fifoSweepingGap = _f.fifoSweepingGap, fifoStartIndex = _f.fifoStartIndex;\r\n var indexes = renderPassData.pointSeries.indexes;\r\n var calcBounds = this.verticalTextPosition !== TextPosition_1.EVerticalTextPosition.Above ||\r\n this.horizontalTextPosition !== TextPosition_1.EHorizontalTextPosition.Right ||\r\n this.calculateTextBounds;\r\n if (textSeries) {\r\n state.font.CalculateStringBounds((_a = textSeries.getTextValue(0)) !== null && _a !== void 0 ? _a : \"\", bounds, (_c = (_b = this.style) === null || _b === void 0 ? void 0 : _b.lineSpacing) !== null && _c !== void 0 ? _c : 2);\r\n for (var i = 0; i < indexes.size(); i++) {\r\n state.index = i;\r\n var index = indexes.get(state.index);\r\n if (fifoSweeping &&\r\n state.pointCount === fifoCapacity &&\r\n state.index >= fifoStartIndex &&\r\n state.index < fifoStartIndex + fifoSweepingGap)\r\n continue;\r\n var text = textSeries.getTextValue(index);\r\n if (calcBounds) {\r\n state.font.CalculateStringBounds(text !== null && text !== void 0 ? text : \"\", bounds, (_e = (_d = this.style) === null || _d === void 0 ? void 0 : _d.lineSpacing) !== null && _e !== void 0 ? _e : 2);\r\n }\r\n var position = this.getPosition(state, bounds);\r\n var firstLineHeight = bounds.GetLineBounds(0).m_fHeight;\r\n var label = {\r\n text: text,\r\n position: position,\r\n rect: new Rect_1.Rect(position.x, position.y - firstLineHeight, bounds.m_fWidth, bounds.m_fHeight),\r\n color: this.getColor(state, text),\r\n dataX: state.xCoord(),\r\n dataY: state.yCoord()\r\n };\r\n this.dataLabels.push(label);\r\n }\r\n }\r\n this.onAfterGenerate(this.dataLabels);\r\n };\r\n /** Called after labels are generated but before they are drawn. */\r\n TextDataLabelProvider.prototype.onAfterGenerate = function (dataLabels) { };\r\n TextDataLabelProvider.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n calculateTextBounds: this.calculateTextBounds,\r\n horizontalTextPosition: this.horizontalTextPosition,\r\n verticalTextPosition: this.verticalTextPosition,\r\n isEnabled: this.isEnabled\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return TextDataLabelProvider;\r\n}(BaseDataLabelProvider_1.BaseDataLabelProvider));\r\nexports.TextDataLabelProvider = TextDataLabelProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BandSeriesDrawingProvider = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar BrushCache_1 = require(\"../../../Drawing/BrushCache\");\r\nvar Pen2DCache_1 = require(\"../../../Drawing/Pen2DCache\");\r\nvar WebGlRenderContext2D_1 = require(\"../../../Drawing/WebGlRenderContext2D\");\r\nvar SciChartSurfaceBase_1 = require(\"../../SciChartSurfaceBase\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link BaseBandRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar BandSeriesDrawingProvider = /** @class */ (function (_super) {\r\n __extends(BandSeriesDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link BandSeriesDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link BaseBandRenderableSeries} which this drawing provider is attached to\r\n */\r\n function BandSeriesDrawingProvider(webAssemblyContext, parentSeries, ySelector, y1Selector) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries, ySelector) || this;\r\n _this.args = new _this.webAssemblyContext.SCRTBandDrawingParams();\r\n _this.y1Selector = y1Selector !== null && y1Selector !== void 0 ? y1Selector : (function (ps) { return ps.y1Values; });\r\n _this.linesPenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.strokePenY1Cache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.fillBrushCache = new BrushCache_1.BrushCache(webAssemblyContext);\r\n _this.fillBrushY1Cache = new BrushCache_1.BrushCache(webAssemblyContext);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesDrawingProvider.prototype.onAttachSeries = function () {\r\n _super.prototype.onAttachSeries.call(this);\r\n this.nativeDrawingProvider = new this.webAssemblyContext.SCRTBandSeriesDrawingProvider();\r\n var _a = this.parentSeries, parentSurface = _a.parentSurface, stroke = _a.stroke, strokeThickness = _a.strokeThickness, fill = _a.fill, strokeY1 = _a.strokeY1, fillY1 = _a.fillY1, opacity = _a.opacity, strokeDashArray = _a.strokeDashArray, strokeY1DashArray = _a.strokeY1DashArray, fillLinearGradient = _a.fillLinearGradient, fillLinearGradientY1 = _a.fillLinearGradientY1;\r\n var textureHeightRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)\r\n ? parentSurface.domCanvas2D.height / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height\r\n : 1;\r\n var textureWidthRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)\r\n ? parentSurface.domCanvas2D.width / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width\r\n : 1;\r\n (0, Pen2DCache_1.createPenInCache)(this.linesPenCache, stroke, strokeThickness, opacity, strokeDashArray);\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenY1Cache, strokeY1, strokeThickness, opacity, strokeY1DashArray);\r\n (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, fill, opacity, textureHeightRatio, textureWidthRatio, fillLinearGradient);\r\n (0, BrushCache_1.createBrushInCache)(this.fillBrushY1Cache, fillY1, opacity, textureHeightRatio, textureWidthRatio, fillLinearGradientY1);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesDrawingProvider.prototype.onDetachSeries = function () {\r\n _super.prototype.onDetachSeries.call(this);\r\n this.delete();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesDrawingProvider.prototype.delete = function () {\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n this.args = (0, Deleter_1.deleteSafe)(this.args);\r\n this.linesPenCache = (0, Deleter_1.deleteSafe)(this.linesPenCache);\r\n this.fillBrushCache = (0, Deleter_1.deleteSafe)(this.fillBrushCache);\r\n this.strokePenY1Cache = (0, Deleter_1.deleteSafe)(this.strokePenY1Cache);\r\n this.fillBrushY1Cache = (0, Deleter_1.deleteSafe)(this.fillBrushY1Cache);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var _a;\r\n var pointSeries = renderPassData.pointSeries;\r\n var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;\r\n this.args.Reset();\r\n this.args.forceShaderMethod = true;\r\n this.args.verticalChart = renderPassData.isVerticalChart;\r\n this.args.lineGaps = containsNaN\r\n ? this.parentSeries.drawNaNAs === WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine\r\n ? this.webAssemblyContext.SCRTLineGapMode.DrawGaps\r\n : this.webAssemblyContext.SCRTLineGapMode.CloseGaps\r\n : this.webAssemblyContext.SCRTLineGapMode.Default;\r\n this.args.isDigitalLine = this.parentSeries.isDigitalLine;\r\n var fillBrush = (0, BrushCache_1.getScrtBrushFromCache)(this.fillBrushCache);\r\n if (fillBrush) {\r\n this.args.SetFillBrush(fillBrush);\r\n }\r\n var linesPen = (0, Pen2DCache_1.getScrtPenFromCache)(this.linesPenCache);\r\n if (linesPen) {\r\n this.args.SetLinesPen(linesPen);\r\n }\r\n var fillBrushY1 = (0, BrushCache_1.getScrtBrushFromCache)(this.fillBrushY1Cache);\r\n if (fillBrushY1) {\r\n this.args.SetFillBrush1(fillBrushY1);\r\n }\r\n var strokePenY1 = (0, Pen2DCache_1.getScrtPenFromCache)(this.strokePenY1Cache);\r\n if (strokePenY1) {\r\n this.args.SetLinesPen1(strokePenY1);\r\n }\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValues = pointSeries.xValues;\r\n var _b = this.parentSeries.dataSeries, fifoCapacity = _b.fifoCapacity, fifoSweeping = _b.fifoSweeping, fifoSweepingGap = _b.fifoSweepingGap;\r\n var fifoStartIndex = pointSeries.fifoStartIndex;\r\n var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;\r\n var yDrawValues = this.ySelector(pointSeries);\r\n var y1DrawValues = this.y1Selector(pointSeries);\r\n // const isSplineBandSeries = this.parentSeries.type === ESeriesType.SplineBandSeries && xValues.size() > 1;\r\n // if (isSplineBandSeries) {\r\n // const splineBandSeries = this.parentSeries as SplineBandRenderableSeries;\r\n // if (!this.parentSeries.isRunningAnimation) {\r\n // splineBandSeries.updateSplineValues();\r\n // }\r\n // xDrawValues = splineBandSeries.xSplineValues;\r\n // yDrawValues = splineBandSeries.ySplineValues;\r\n // y1DrawValues = splineBandSeries.y1SplineValues;\r\n // }\r\n var _c = this.getStartAndCount(\r\n //isSplineBandSeries ? undefined : renderPassData,\r\n renderPassData, xDrawValues), startIndex = _c.startIndex, count = _c.count;\r\n this.args.count = count;\r\n this.args.startIndex = startIndex;\r\n if (fifoCapacity > 0 && fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.count = fifoStartIndex;\r\n }\r\n // Paletting per point\r\n _super.prototype.applyStrokeFillPaletting.call(this, undefined, undefined, undefined, undefined, this.parentSeries.opacity, true, true, renderPassData);\r\n var paletteTexture = (_a = this.palettingState.paletteTextureCache) === null || _a === void 0 ? void 0 : _a.value;\r\n if (paletteTexture) {\r\n this.args.SetPalette(paletteTexture);\r\n }\r\n this.args.isSmoothColors = this.palettingState.gradientPaletting;\r\n var nativeContext = renderContext.getNativeContext();\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xDrawValues, yDrawValues, y1DrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args);\r\n if (fifoCapacity > 0 && fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.startIndex = Math.min(yDrawValues.size(), fifoStartIndex + fifoSweepingGap);\r\n this.args.count = Math.max(0, yDrawValues.size() - fifoStartIndex - fifoSweepingGap);\r\n if (this.args.count > 0) {\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xDrawValues, yDrawValues, y1DrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesDrawingProvider.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.STROKE);\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.STROKE_Y1);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n _super.prototype.onSeriesPropertyChange.call(this, propertyName);\r\n var _a = this.parentSeries, parentSurface = _a.parentSurface, stroke = _a.stroke, strokeY1 = _a.strokeY1, strokeThickness = _a.strokeThickness, fill = _a.fill, fillY1 = _a.fillY1, opacity = _a.opacity, strokeDashArray = _a.strokeDashArray, strokeY1DashArray = _a.strokeY1DashArray, fillLinearGradient = _a.fillLinearGradient, fillLinearGradientY1 = _a.fillLinearGradientY1;\r\n if (propertyName === constants_1.PROPERTY.STROKE ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.OPACITY ||\r\n propertyName === constants_1.PROPERTY.STROKE_DASH_ARRAY) {\r\n this.palettingState.requiresUpdate = true;\r\n (0, Pen2DCache_1.createPenInCache)(this.linesPenCache, stroke, strokeThickness, opacity, strokeDashArray);\r\n return;\r\n }\r\n if (propertyName === constants_1.PROPERTY.STROKE_Y1 ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.OPACITY ||\r\n propertyName === constants_1.PROPERTY.STROKE_Y1_DASH_ARRAY) {\r\n this.palettingState.requiresUpdate = true;\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenY1Cache, strokeY1, strokeThickness, opacity, strokeY1DashArray);\r\n return;\r\n }\r\n var textureHeightRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)\r\n ? parentSurface.domCanvas2D.height / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height\r\n : 1;\r\n var textureWidthRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)\r\n ? parentSurface.domCanvas2D.width / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width\r\n : 1;\r\n if (propertyName === constants_1.PROPERTY.FILL ||\r\n propertyName === constants_1.PROPERTY.OPACITY ||\r\n propertyName === constants_1.PROPERTY.FILL_LINEAR_GRADIENT) {\r\n this.palettingState.requiresUpdate = true;\r\n (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, fill, opacity, textureHeightRatio, textureWidthRatio, fillLinearGradient);\r\n }\r\n if (propertyName === constants_1.PROPERTY.FILL_Y1 ||\r\n propertyName === constants_1.PROPERTY.OPACITY ||\r\n propertyName === constants_1.PROPERTY.FILL_LINEAR_GRADIENT_Y1) {\r\n this.palettingState.requiresUpdate = true;\r\n (0, BrushCache_1.createBrushInCache)(this.fillBrushY1Cache, fillY1, opacity, textureHeightRatio, textureWidthRatio, fillLinearGradientY1);\r\n }\r\n };\r\n return BandSeriesDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.BandSeriesDrawingProvider = BandSeriesDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseSeriesDrawingProvider = void 0;\r\nvar DeletableEntity_1 = require(\"../../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar colorUtil_1 = require(\"../../../../utils/colorUtil\");\r\nvar number_1 = require(\"../../../../utils/number\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar PaletteCache_1 = require(\"../../../Drawing/PaletteCache\");\r\nvar IPaletteProvider_1 = require(\"../../../Model/IPaletteProvider\");\r\nvar createSolidBrush_1 = require(\"../../Helpers/createSolidBrush\");\r\nvar constants_1 = require(\"../constants\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a specific chart-type or series using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar BaseSeriesDrawingProvider = /** @class */ (function (_super) {\r\n __extends(BaseSeriesDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link BaseSeriesDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link IRenderableSeries | Renderable Series} which this drawing provider is attached to\r\n */\r\n function BaseSeriesDrawingProvider(webAssemblyContext, parentSeries, ySelector, xSelector) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this) || this;\r\n Guard_1.Guard.notNull(webAssemblyContext, \"webAssemblyContext\");\r\n Guard_1.Guard.notNull(parentSeries, \"parentSeries\");\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.parentSeries = parentSeries;\r\n _this.ySelector = ySelector !== null && ySelector !== void 0 ? ySelector : (function (ps) { return ps.yValues; });\r\n _this.xSelector = xSelector !== null && xSelector !== void 0 ? xSelector : (function (ps) { return ps.xValues; });\r\n _this.palettingState = {\r\n palettedColors: undefined,\r\n palettedColorsHashCode: 0,\r\n gradientPaletting: false,\r\n paletteTextureCache: new PaletteCache_1.PaletteCache(webAssemblyContext),\r\n requiresUpdate: true\r\n };\r\n _this.seriesHasDataChanges = _this.seriesHasDataChanges.bind(_this);\r\n _this.parentDataSeries = _this.parentSeries.dataSeries;\r\n (_a = _this.parentDataSeries) === null || _a === void 0 ? void 0 : _a.dataChanged.subscribe(_this.seriesHasDataChanges);\r\n return _this;\r\n }\r\n /**\r\n * Returns the startIndex and count to be passed to the native drawing provider.\r\n * If renderPassData exists and contains an indexRange, this will be used, otherwise the full size of the xValues will be used\r\n * @param renderPassData\r\n * @param xValues\r\n * @returns\r\n */\r\n BaseSeriesDrawingProvider.prototype.getStartAndCount = function (renderPassData, xValues) {\r\n var _a, _b, _c;\r\n var pointSeries = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.pointSeries;\r\n var xAxis = (_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.xAxis;\r\n var shouldClip = (_b = xAxis === null || xAxis === void 0 ? void 0 : xAxis.clipToXRange) !== null && _b !== void 0 ? _b : true; // fo the sake of tests\r\n var xCount = xValues.size();\r\n var count = Math.min(pointSeries ? pointSeries.xValues.size() : xCount, xCount);\r\n var startIndex = 0;\r\n if (shouldClip && !(pointSeries === null || pointSeries === void 0 ? void 0 : pointSeries.resampled) && ((_c = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.indexRange) === null || _c === void 0 ? void 0 : _c.diff) >= 0) {\r\n if (renderPassData.indexRange.diff + 1 < count) {\r\n startIndex = renderPassData.indexRange.min;\r\n }\r\n count = Math.min(renderPassData.indexRange.diff + 1, count);\r\n }\r\n return { startIndex: startIndex, count: count };\r\n };\r\n /**\r\n * Helper function to apply color-paletting to a {@link UIntVector} - where each element in the vector\r\n * is an ARGB color that defines stroke of the series\r\n * @param strokePen the current pen, as type {@link SCRTPen}\r\n * @param renderPassData optional renderPassData. If not supplied, the current renderPassData for the parent series will be used\r\n * @returns the new {@link UIntVector} with ARGB colors\r\n */\r\n BaseSeriesDrawingProvider.prototype.applyStrokePaletting = function (strokePen, renderPassData) {\r\n var _a, _b, _c, _d;\r\n var advancedPP = this.parentSeries.paletteProvider;\r\n if (this.parentSeries.hasStrokePaletteProvider() || advancedPP.applyPaletting !== undefined) {\r\n var strokeColorArgb = (0, colorUtil_1.uintArgbColorMultiplyOpacity)((0, parseColor_1.parseColorToUIntArgb)(this.parentSeries.stroke), this.parentSeries.opacity);\r\n if (isNaN(strokeColorArgb)) {\r\n throw Error(\"applyStrokePaletting(): renderSeries.stroke \" +\r\n this.parentSeries.stroke +\r\n \" cannot be converted to a valid color\");\r\n }\r\n var strokePaletteProvider = this.parentSeries.paletteProvider;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n renderPassData = renderPassData !== null && renderPassData !== void 0 ? renderPassData : this.parentSeries.getCurrentRenderPassData();\r\n var pointSeries = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.pointSeries;\r\n var xValues = (_a = (pointSeries ? this.xSelector(pointSeries) : undefined)) !== null && _a !== void 0 ? _a : dataSeries.getNativeXValues();\r\n var yValues = (_b = (pointSeries ? this.ySelector(pointSeries) : undefined)) !== null && _b !== void 0 ? _b : dataSeries.getNativeYValues();\r\n var _e = this.getStartAndCount(renderPassData, xValues), startIndex = _e.startIndex, count = _e.count;\r\n if (!this.palettingState.palettedColors) {\r\n this.palettingState.palettedColors = new this.webAssemblyContext.UIntVector();\r\n }\r\n // For paletted series, we must pass 0xFFFFFFFF (white) to pen line\r\n this.palettingState.originalPenColor = strokePen.m_uiColor;\r\n strokePen.m_uiColor = 0xffffffff;\r\n strokePen.m_bGradient = strokePaletteProvider.strokePaletteMode === IPaletteProvider_1.EStrokePaletteMode.GRADIENT;\r\n if (advancedPP.applyPaletting) {\r\n advancedPP.applyPaletting(this.palettingState, xValues, yValues, (_c = pointSeries === null || pointSeries === void 0 ? void 0 : pointSeries.indexes) !== null && _c !== void 0 ? _c : dataSeries.getNativeIndexes(), startIndex, count);\r\n return;\r\n }\r\n this.shouldUpdatePalette(renderPassData, strokePaletteProvider, startIndex, count);\r\n if (!this.palettingState.requiresUpdate) {\r\n return;\r\n }\r\n this.palettingState.palettedColors.clear();\r\n this.palettingState.palettedColors.reserve(count);\r\n var hasPSIndexes = pointSeries && pointSeries.indexes.size() > 0;\r\n for (var index = startIndex; index < startIndex + count; index++) {\r\n var originalDataIndex = hasPSIndexes ? pointSeries.indexes.get(index) : index;\r\n if (originalDataIndex < 0)\r\n originalDataIndex = 0;\r\n else if (originalDataIndex >= dataSeries.count())\r\n originalDataIndex = dataSeries.count() - 1;\r\n var xValue = xValues.get(index);\r\n var yValue = yValues.get(index);\r\n var overrideColor = strokePaletteProvider.overrideStrokeArgb(xValue, yValue, originalDataIndex, this.parentSeries.opacity, dataSeries.getMetadataAt(originalDataIndex));\r\n this.parentSeries.pushPalettedColors(overrideColor ? overrideColor : strokeColorArgb, this.palettingState);\r\n }\r\n this.palettingState.requiresUpdate = false;\r\n }\r\n else {\r\n if (this.palettingState.originalPenColor) {\r\n strokePen.m_uiColor = this.palettingState.originalPenColor;\r\n this.palettingState.originalPenColor = undefined;\r\n }\r\n (_d = this.palettingState.palettedColors) === null || _d === void 0 ? void 0 : _d.clear();\r\n }\r\n // Due to pass-by-pointer limitations of WASM binding, we pass an empty vector rather than null\r\n if (!this.palettingState.palettedColors) {\r\n this.palettingState.palettedColors = new this.webAssemblyContext.UIntVector();\r\n }\r\n };\r\n BaseSeriesDrawingProvider.prototype.applyStrokeFillPaletting = function (stroke, strokePen, fill, fillBrush, opacity, usePalette, resetPenBrushColors, renderPassData) {\r\n var _a, _b, _c, _d, _e, _f;\r\n if (usePalette === void 0) { usePalette = false; }\r\n if (resetPenBrushColors === void 0) { resetPenBrushColors = true; }\r\n var hasStrokePaletteProvider = this.parentSeries.hasStrokePaletteProvider();\r\n var hasFillPaletteProvider = this.parentSeries.hasFillPaletteProvider();\r\n var hasPointMarkerPaletteProvider = this.parentSeries.hasPointMarkerPaletteProvider();\r\n var strokePaletteProvider = this.parentSeries.paletteProvider;\r\n var advancedPP = this.parentSeries.paletteProvider;\r\n var hasAdvancedPP = (advancedPP === null || advancedPP === void 0 ? void 0 : advancedPP.applyPaletting) !== undefined;\r\n if (hasStrokePaletteProvider || hasFillPaletteProvider || hasPointMarkerPaletteProvider || hasAdvancedPP) {\r\n var strokeColor = void 0;\r\n var fillColor = void 0;\r\n // Palette (this.palettingState.paletteTextureCache) is used only for band and mountain series\r\n if (usePalette) {\r\n strokeColor = fillColor = this.webAssemblyContext.SCRTPalette.GetNoOverrideColorCode();\r\n }\r\n else {\r\n var hasOpacity = opacity !== undefined;\r\n strokeColor =\r\n stroke && hasOpacity ? (0, colorUtil_1.uintArgbColorMultiplyOpacity)((0, parseColor_1.parseColorToUIntArgb)(stroke), 1) : 0xffffffff;\r\n fillColor =\r\n fill && hasOpacity ? (0, colorUtil_1.uintArgbColorMultiplyOpacity)((0, parseColor_1.parseColorToUIntArgb)(fill), 1) : 0xffffffff;\r\n }\r\n if (isNaN(strokeColor)) {\r\n throw Error(\"updatePalette(): parentSeries.stroke \" + stroke + \" cannot be converted to a valid color\");\r\n }\r\n if (isNaN(fillColor)) {\r\n throw Error(\"updatePalette(): fillColor \" + fillColor + \" cannot be converted to a valid color\");\r\n }\r\n var dataSeries = this.parentSeries.dataSeries;\r\n renderPassData = renderPassData !== null && renderPassData !== void 0 ? renderPassData : this.parentSeries.getCurrentRenderPassData();\r\n var pointSeries = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.pointSeries;\r\n var xValues = (_a = (pointSeries ? this.xSelector(pointSeries) : undefined)) !== null && _a !== void 0 ? _a : dataSeries.getNativeXValues();\r\n var yValues = (_b = (pointSeries ? this.ySelector(pointSeries) : undefined)) !== null && _b !== void 0 ? _b : dataSeries.getNativeYValues();\r\n var _g = this.getStartAndCount(renderPassData, xValues), startIndex = _g.startIndex, count = _g.count;\r\n if (!this.palettingState.palettedColors) {\r\n this.palettingState.palettedColors = new this.webAssemblyContext.UIntVector();\r\n }\r\n if (advancedPP.applyPaletting) {\r\n advancedPP.applyPaletting(this.palettingState, xValues, yValues, (_c = pointSeries === null || pointSeries === void 0 ? void 0 : pointSeries.indexes) !== null && _c !== void 0 ? _c : dataSeries.getNativeIndexes(), startIndex, count);\r\n return;\r\n }\r\n this.shouldUpdatePalette(renderPassData, strokePaletteProvider, startIndex, count);\r\n if (!this.palettingState.requiresUpdate) {\r\n return;\r\n }\r\n this.palettingState.paletteTextureCache.reset();\r\n this.palettingState.palettedColors.clear();\r\n this.palettingState.palettedColors.reserve(count * 2);\r\n if (resetPenBrushColors) {\r\n if (strokePen && hasStrokePaletteProvider) {\r\n // For paletted series, we must pass 0xFFFFFFFF (white) to pen line\r\n this.palettingState.originalPenColor = strokePen.m_uiColor;\r\n strokePen.m_uiColor = 0xffffffff;\r\n this.palettingState.originalPenGradient = strokePen.m_bGradient;\r\n strokePen.m_bGradient = strokePaletteProvider.strokePaletteMode === IPaletteProvider_1.EStrokePaletteMode.GRADIENT;\r\n }\r\n if (fillBrush) {\r\n this.palettingState.originalBrushColor = fillBrush.GetColor();\r\n fillBrush.SetColor(0xffffffff);\r\n }\r\n }\r\n // Override stroke and fill colors\r\n var hashCode = 0;\r\n var hasPSIndexes = pointSeries && pointSeries.indexes.size() > 0;\r\n for (var index = startIndex; index < startIndex + count; index++) {\r\n var originalDataIndex = hasPSIndexes ? pointSeries.indexes.get(index) : index;\r\n if (originalDataIndex < 0)\r\n originalDataIndex = 0;\r\n else if (originalDataIndex >= dataSeries.count())\r\n originalDataIndex = dataSeries.count() - 1;\r\n var xValue = xValues.get(index);\r\n var yValue = yValues.get(index);\r\n var overriddenColors = this.overridePaletteProviderColors(this.parentSeries, xValue, yValue, originalDataIndex, opacity, dataSeries.getMetadataAt(originalDataIndex));\r\n var overrideStrokeColor = (_d = overriddenColors.stroke) !== null && _d !== void 0 ? _d : strokeColor;\r\n var overrideFillColor = (_e = overriddenColors.fill) !== null && _e !== void 0 ? _e : fillColor;\r\n this.palettingState.palettedColors.push_back(overrideStrokeColor);\r\n this.palettingState.palettedColors.push_back(overrideFillColor);\r\n hashCode = (0, number_1.numericHashCode)(hashCode, overrideStrokeColor);\r\n hashCode = (0, number_1.numericHashCode)(hashCode, overrideFillColor);\r\n }\r\n // Palette is used only for band and mountain series\r\n if (usePalette) {\r\n if (this.palettingState.palettedColorsHashCode !== hashCode) {\r\n this.palettingState.paletteTextureCache.reset();\r\n }\r\n this.palettingState.paletteTextureCache.create(this.palettingState.palettedColors);\r\n this.palettingState.palettedColorsHashCode = hashCode;\r\n }\r\n this.palettingState.requiresUpdate = false;\r\n }\r\n else {\r\n this.palettingState.paletteTextureCache.reset();\r\n (_f = this.palettingState.palettedColors) === null || _f === void 0 ? void 0 : _f.clear();\r\n if (strokePen) {\r\n if (this.palettingState.originalPenColor) {\r\n strokePen.m_uiColor = this.palettingState.originalPenColor;\r\n this.palettingState.originalPenColor = undefined;\r\n }\r\n if (this.palettingState.originalPenGradient) {\r\n strokePen.m_bGradient = this.palettingState.originalPenGradient;\r\n this.palettingState.originalPenGradient = undefined;\r\n }\r\n }\r\n if (fillBrush && this.palettingState.originalBrushColor) {\r\n fillBrush.SetColor(this.palettingState.originalBrushColor);\r\n this.palettingState.originalBrushColor = undefined;\r\n }\r\n }\r\n // Due to pass-by-pointer limitations of WASM binding, we pass an empty vector rather than null\r\n if (!this.palettingState.palettedColors) {\r\n this.palettingState.palettedColors = new this.webAssemblyContext.UIntVector();\r\n }\r\n // Set gradient for the fill color\r\n this.palettingState.gradientPaletting = this.isGradientFillPaletting(this.parentSeries);\r\n };\r\n /**\r\n * Creates a native {@link SCRTBrush} Solid Color Brush from html color code string passed in\r\n * @param htmlColorCode The HTML Color code\r\n * @param opacity The opacity factor\r\n */\r\n BaseSeriesDrawingProvider.prototype.createSolidBrush = function (htmlColorCode, opacity) {\r\n return (0, createSolidBrush_1.createSolidBrush)(this.webAssemblyContext, htmlColorCode, opacity);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseSeriesDrawingProvider.prototype.delete = function () {\r\n if (this.palettingState.palettedColors) {\r\n this.palettingState.palettedColors = (0, Deleter_1.deleteSafe)(this.palettingState.palettedColors);\r\n }\r\n this.palettingState.paletteTextureCache = (0, Deleter_1.deleteSafe)(this.palettingState.paletteTextureCache);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseSeriesDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n var _a, _b;\r\n if (propertyName === constants_1.PROPERTY.DATA_SERIES) {\r\n (_a = this.parentDataSeries) === null || _a === void 0 ? void 0 : _a.dataChanged.unsubscribe(this.seriesHasDataChanges);\r\n this.parentDataSeries = this.parentSeries.dataSeries;\r\n (_b = this.parentDataSeries) === null || _b === void 0 ? void 0 : _b.dataChanged.subscribe(this.seriesHasDataChanges);\r\n this.palettingState.requiresUpdate = true;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseSeriesDrawingProvider.prototype.onDpiChanged = function (args) {\r\n // Override in derived class to be notified of Dpi changes\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseSeriesDrawingProvider.prototype.onAttachSeries = function () {\r\n // Override in derived class to be notified of series being attached to sciChartSurface\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseSeriesDrawingProvider.prototype.onDetachSeries = function () {\r\n // Override in derived class to be notified of series being detached from sciChartSurface\r\n };\r\n BaseSeriesDrawingProvider.prototype.seriesHasDataChanges = function () {\r\n this.palettingState.requiresUpdate = true;\r\n // TODO override in derived class.\r\n };\r\n BaseSeriesDrawingProvider.prototype.shouldUpdatePalette = function (renderPassData, paletteProvider, startIndex, count) {\r\n var _a, _b, _c, _d, _e, _f;\r\n if (((_a = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.pointSeries) === null || _a === void 0 ? void 0 : _a.resampled) &&\r\n (renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.resamplingHash) !== this.palettingState.lastResamplingHash) {\r\n this.palettingState.lastResamplingHash = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.resamplingHash;\r\n this.palettingState.requiresUpdate = true;\r\n }\r\n if (!((_b = paletteProvider.isRangeIndependant) !== null && _b !== void 0 ? _b : false)) {\r\n // Range dependant (the default) so recalculate if start and count have changed\r\n if (((_c = this.palettingState.lastStartIndex) !== null && _c !== void 0 ? _c : 0) !== startIndex ||\r\n ((_d = this.palettingState.lastCount) !== null && _d !== void 0 ? _d : 0) !== count) {\r\n this.palettingState.lastStartIndex = startIndex;\r\n this.palettingState.lastCount = count;\r\n this.palettingState.requiresUpdate = true;\r\n this.palettingState.paletteStartIndex = 0;\r\n }\r\n }\r\n else {\r\n if (((_e = this.palettingState.lastStartIndex) !== null && _e !== void 0 ? _e : Number.MAX_SAFE_INTEGER) > startIndex ||\r\n ((_f = this.palettingState.lastCount) !== null && _f !== void 0 ? _f : 0) < count ||\r\n startIndex + count > this.palettingState.lastStartIndex + this.palettingState.lastCount) {\r\n // Range has grown so recalcualte and start from 0\r\n this.palettingState.lastStartIndex = startIndex;\r\n this.palettingState.lastCount = count;\r\n this.palettingState.requiresUpdate = true;\r\n this.palettingState.paletteStartIndex = 0;\r\n }\r\n else {\r\n // Range is same or smaller so adjust palette startIndex\r\n this.palettingState.paletteStartIndex = startIndex - this.palettingState.lastStartIndex;\r\n }\r\n }\r\n // Default to always update for back compatability\r\n if (!paletteProvider.shouldUpdatePalette || paletteProvider.shouldUpdatePalette()) {\r\n this.palettingState.requiresUpdate = true;\r\n }\r\n };\r\n BaseSeriesDrawingProvider.prototype.overridePaletteProviderColors = function (rs, xValue, yValue, index, opacity, metadata) {\r\n var stroke;\r\n var fill;\r\n if (rs.hasStrokePaletteProvider()) {\r\n var strokePaletteProvider = rs.paletteProvider;\r\n stroke = strokePaletteProvider.overrideStrokeArgb(xValue, yValue, index, opacity, metadata);\r\n }\r\n if (rs.hasFillPaletteProvider()) {\r\n var fillPaletteProvider = rs.paletteProvider;\r\n fill = fillPaletteProvider.overrideFillArgb(xValue, yValue, index, opacity, metadata);\r\n }\r\n return { stroke: stroke, fill: fill };\r\n };\r\n BaseSeriesDrawingProvider.prototype.isGradientFillPaletting = function (rs) {\r\n if (rs.hasFillPaletteProvider()) {\r\n var fillPaletteProvider = rs.paletteProvider;\r\n return fillPaletteProvider.fillPaletteMode === IPaletteProvider_1.EFillPaletteMode.GRADIENT;\r\n }\r\n return false;\r\n };\r\n return BaseSeriesDrawingProvider;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BaseSeriesDrawingProvider = BaseSeriesDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BubbleSeriesDrawingProvider = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar DpiHelper_1 = require(\"../../TextureManager/DpiHelper\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link FastBubbleRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar BubbleSeriesDrawingProvider = /** @class */ (function (_super) {\r\n __extends(BubbleSeriesDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link BubbleSeriesDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link FastBubbleRenderableSeries} which this drawing provider is attached to\r\n */\r\n function BubbleSeriesDrawingProvider(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries) || this;\r\n _this.nativeDrawingProvider = new _this.webAssemblyContext.SCRTBubbleSeriesDrawingProvider();\r\n _this.args = new _this.webAssemblyContext.SCRTPointDrawingParams();\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n BubbleSeriesDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n // Deliberately empty\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BubbleSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var _a;\r\n var pointMarker = this.parentSeries.pointMarker;\r\n if (pointMarker === undefined) {\r\n return;\r\n }\r\n var spriteTexture = pointMarker.getSprite();\r\n var pointSeries = renderPassData.pointSeries;\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n this.args.Reset();\r\n var xValues = pointSeries.xValues;\r\n var yValues = pointSeries.yValues;\r\n var zValues = pointSeries.zValues;\r\n var _b = this.getStartAndCount(renderPassData, xValues), startIndex = _b.startIndex, count = _b.count;\r\n this.args.count = count;\r\n this.args.startIndex = startIndex;\r\n var _c = this.parentSeries.dataSeries, fifoCapacity = _c.fifoCapacity, fifoSweeping = _c.fifoSweeping, fifoSweepingGap = _c.fifoSweepingGap;\r\n var fifoStartIndex = pointSeries.fifoStartIndex;\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.count = fifoStartIndex;\r\n }\r\n this.args.verticalChart = renderPassData.isVerticalChart;\r\n this.args.forceShaderMethod = true;\r\n this.args.SetSpriteTexture(spriteTexture.getTexture());\r\n // Paletting per point\r\n _super.prototype.applyStrokeFillPaletting.call(this, this.parentSeries.stroke, undefined, undefined, undefined, this.parentSeries.opacity);\r\n this.args.SetPalettedColors(this.palettingState.palettedColors);\r\n this.args.paletteStart = (_a = this.palettingState.paletteStartIndex) !== null && _a !== void 0 ? _a : 0;\r\n this.args.zMultiplier = this.parentSeries.zMultiplier * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;\r\n var nativeContext = renderContext.getNativeContext();\r\n this.drawPoints(nativeContext, xDrawValues, yValues, zValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args, this.parentSeries.parentSurface.seriesViewRect);\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.startIndex = Math.min(yValues.size(), fifoStartIndex + fifoSweepingGap);\r\n this.args.count = Math.max(0, yValues.size() - fifoStartIndex - fifoSweepingGap);\r\n if (this.args.count > 0) {\r\n this.drawPoints(nativeContext, xDrawValues, yValues, zValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args, this.parentSeries.parentSurface.seriesViewRect);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BubbleSeriesDrawingProvider.prototype.delete = function () {\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n this.args = (0, Deleter_1.deleteSafe)(this.args);\r\n _super.prototype.delete.call(this);\r\n };\r\n BubbleSeriesDrawingProvider.prototype.overridePaletteProviderColors = function (rs, xValue, yValue, index, opacity, metadata) {\r\n if (rs.hasPointMarkerPaletteProvider()) {\r\n var pointMarkerPaletteProvider = rs.paletteProvider;\r\n var colors = pointMarkerPaletteProvider.overridePointMarkerArgb(xValue, yValue, index, opacity, metadata);\r\n if (colors)\r\n return colors;\r\n }\r\n return { stroke: undefined, fill: undefined };\r\n };\r\n BubbleSeriesDrawingProvider.prototype.isGradientFillPaletting = function (rs) {\r\n return false;\r\n };\r\n BubbleSeriesDrawingProvider.prototype.drawPoints = function (nativeContext, xValues, yValues, zValues, xCoordCalc, yCoordCalc, args, viewRect) {\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xValues, yValues, zValues, xCoordCalc, yCoordCalc, args);\r\n };\r\n return BubbleSeriesDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.BubbleSeriesDrawingProvider = BubbleSeriesDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ColumnSeriesDrawingProvider = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar BrushCache_1 = require(\"../../../Drawing/BrushCache\");\r\nvar Pen2DCache_1 = require(\"../../../Drawing/Pen2DCache\");\r\nvar SciChartSurfaceBase_1 = require(\"../../SciChartSurfaceBase\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link FastColumnRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar ColumnSeriesDrawingProvider = /** @class */ (function (_super) {\r\n __extends(ColumnSeriesDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link ColumnSeriesDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link FastColumnRenderableSeries} which this drawing provider is attached to\r\n */\r\n function ColumnSeriesDrawingProvider(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries) || this;\r\n _this.nativeDrawingProvider = new webAssemblyContext.SCRTColumnSeriesDrawingProvider();\r\n _this.args = new _this.webAssemblyContext.SCRTColumnDrawingParams();\r\n _this.strokePenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.strokePenFillColoredCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.fillBrushCache = new BrushCache_1.BrushCache(webAssemblyContext);\r\n var _a = _this.parentSeries, stroke = _a.stroke, strokeThickness = _a.strokeThickness, fill = _a.fill, opacity = _a.opacity;\r\n (0, Pen2DCache_1.createPenInCache)(_this.strokePenCache, stroke, strokeThickness, opacity);\r\n // the pen is used to fix a bug when columns disappear when zooming out with zero stroke thickness\r\n if (strokeThickness === 0) {\r\n (0, Pen2DCache_1.createPenInCache)(_this.strokePenFillColoredCache, fill, 1, opacity);\r\n }\r\n _this.createBrush();\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ColumnSeriesDrawingProvider.prototype.delete = function () {\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n this.args = (0, Deleter_1.deleteSafe)(this.args);\r\n this.strokePenCache = (0, Deleter_1.deleteSafe)(this.strokePenCache);\r\n this.strokePenFillColoredCache = (0, Deleter_1.deleteSafe)(this.strokePenFillColoredCache);\r\n this.fillBrushCache = (0, Deleter_1.deleteSafe)(this.fillBrushCache);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ColumnSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var pointSeries = renderPassData.pointSeries;\r\n var viewRect = this.parentSeries.parentSurface.seriesViewRect;\r\n var strokeThickness = this.parentSeries.strokeThickness;\r\n this.args.Reset();\r\n this.args.forceShaderMethod = true;\r\n this.args.verticalChart = renderPassData.isVerticalChart;\r\n this.args.zeroLineY = this.parentSeries.zeroLineY;\r\n this.args.columnWidth = this.parentSeries.getDataPointWidth(renderPassData.xCoordinateCalculator, this.parentSeries.dataPointWidth);\r\n this.args.bottomRadius = this.parentSeries.cornerRadius;\r\n var strokePenCache = this.strokePenCache;\r\n // ISSUE: If the strokeThickness property is not provided,\r\n // the fill will be disappeared with large zoom (when the column width will be small or zero)\r\n if (this.args.columnWidth === 1 && strokeThickness === 0) {\r\n this.args.columnWidth = 0;\r\n strokePenCache = this.strokePenFillColoredCache;\r\n }\r\n var linesPen = (0, Pen2DCache_1.getScrtPenFromCache)(strokePenCache);\r\n if (linesPen) {\r\n this.args.SetLinesPen(linesPen);\r\n }\r\n var fillBrush = (0, BrushCache_1.getScrtBrushFromCache)(this.fillBrushCache);\r\n if (fillBrush) {\r\n this.args.SetFillBrush(fillBrush);\r\n }\r\n this.args.viewportWidth = viewRect.width;\r\n this.args.viewportHeight = viewRect.height;\r\n // Paletting per point\r\n _super.prototype.applyStrokeFillPaletting.call(this, this.parentSeries.stroke, linesPen, this.parentSeries.fill, fillBrush, this.parentSeries.opacity, false, this.parentSeries.fillLinearGradient !== undefined);\r\n this.args.SetPalettedColors(this.palettingState.palettedColors);\r\n this.args.paletteStart = this.palettingState.paletteStartIndex * 2;\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValues = this.xSelector(pointSeries);\r\n var yValues = this.ySelector(pointSeries);\r\n var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;\r\n var _a = this.getStartAndCount(renderPassData, xDrawValues), startIndex = _a.startIndex, count = _a.count;\r\n this.args.count = count;\r\n this.args.startIndex = startIndex;\r\n var _b = this.parentSeries.dataSeries, fifoCapacity = _b.fifoCapacity, fifoSweeping = _b.fifoSweeping, fifoSweepingGap = _b.fifoSweepingGap;\r\n var fifoStartIndex = pointSeries.fifoStartIndex;\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.count = fifoStartIndex;\r\n }\r\n var nativeContext = renderContext.getNativeContext();\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xDrawValues, yValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args);\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.startIndex = Math.min(yValues.size(), fifoStartIndex + fifoSweepingGap);\r\n this.args.count = Math.max(0, yValues.size() - fifoStartIndex - fifoSweepingGap);\r\n if (this.args.count > 0) {\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xDrawValues, yValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ColumnSeriesDrawingProvider.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.STROKE);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ColumnSeriesDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n _super.prototype.onSeriesPropertyChange.call(this, propertyName);\r\n var _a = this.parentSeries, stroke = _a.stroke, strokeThickness = _a.strokeThickness, opacity = _a.opacity, fill = _a.fill;\r\n if (propertyName === constants_1.PROPERTY.STROKE ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.OPACITY) {\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, stroke, strokeThickness, opacity);\r\n }\r\n if (propertyName === constants_1.PROPERTY.FILL || propertyName === constants_1.PROPERTY.OPACITY) {\r\n this.createBrush();\r\n }\r\n if (strokeThickness === 0 &&\r\n (propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.STROKE ||\r\n propertyName === constants_1.PROPERTY.OPACITY ||\r\n propertyName === constants_1.PROPERTY.FILL)) {\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenFillColoredCache, fill, 1, opacity);\r\n }\r\n };\r\n ColumnSeriesDrawingProvider.prototype.createBrush = function () {\r\n var _a = this.parentSeries, fill = _a.fill, opacity = _a.opacity, fillLinearGradient = _a.fillLinearGradient, parentSurface = _a.parentSurface;\r\n var textureHeightRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)\r\n ? parentSurface.domCanvas2D.height / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height\r\n : 1;\r\n var textureWidthRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)\r\n ? parentSurface.domCanvas2D.width / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width\r\n : 1;\r\n return (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, fill, opacity, textureHeightRatio, textureWidthRatio, fillLinearGradient);\r\n };\r\n return ColumnSeriesDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.ColumnSeriesDrawingProvider = ColumnSeriesDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ErrorSeriesDrawingProvider = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar AxisType_1 = require(\"../../../../types/AxisType\");\r\nvar DataPointWidthMode_1 = require(\"../../../../types/DataPointWidthMode\");\r\nvar ErrorDirection_1 = require(\"../../../../types/ErrorDirection\");\r\nvar ErrorMode_1 = require(\"../../../../types/ErrorMode\");\r\nvar Pen2DCache_1 = require(\"../../../Drawing/Pen2DCache\");\r\nvar WebGlRenderContext2D_1 = require(\"../../../Drawing/WebGlRenderContext2D\");\r\nvar LogarithmicAxis_1 = require(\"../../Axis/LogarithmicAxis\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link BaseBandRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar ErrorSeriesDrawingProvider = /** @class */ (function (_super) {\r\n __extends(ErrorSeriesDrawingProvider, _super);\r\n // private args: SCRTLineDrawingParams;\r\n // private xLineCoordinates: SCRTDoubleVector;\r\n // private yLineCoordinates: SCRTDoubleVector;\r\n /**\r\n * Creates an instance of the {@link BandSeriesDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link BaseBandRenderableSeries} which this drawing provider is attached to\r\n */\r\n function ErrorSeriesDrawingProvider(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries) || this;\r\n _this.linesPenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n return _this;\r\n // this.args = new webAssemblyContext.SCRTLineDrawingParams();\r\n // this.xLineCoordinates = new this.webAssemblyContext.SCRTDoubleVector();\r\n // this.yLineCoordinates = new this.webAssemblyContext.SCRTDoubleVector();\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesDrawingProvider.prototype.onAttachSeries = function () {\r\n _super.prototype.onAttachSeries.call(this);\r\n // this.nativeDrawingProvider = new this.webAssemblyContext.SCRTLineSeriesDrawingProvider();\r\n var _a = this.parentSeries, stroke = _a.stroke, strokeThickness = _a.strokeThickness, opacity = _a.opacity, strokeDashArray = _a.strokeDashArray;\r\n (0, Pen2DCache_1.createPenInCache)(this.linesPenCache, stroke, strokeThickness, opacity, strokeDashArray);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesDrawingProvider.prototype.onDetachSeries = function () {\r\n _super.prototype.onDetachSeries.call(this);\r\n this.delete();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesDrawingProvider.prototype.delete = function () {\r\n // this.nativeDrawingProvider = deleteSafe(this.nativeDrawingProvider);\r\n this.linesPenCache = (0, Deleter_1.deleteSafe)(this.linesPenCache);\r\n // this.args = deleteSafe(this.args);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var linesPen = (0, Pen2DCache_1.getScrtPenFromCache)(this.linesPenCache);\r\n if (!linesPen) {\r\n return;\r\n }\r\n var pointSeries = renderPassData.pointSeries;\r\n var vertices = (0, NativeObject_1.getVectorColorVertex)(this.webAssemblyContext);\r\n // this.xLineCoordinates.clear();\r\n // this.yLineCoordinates.clear();\r\n // this.args.Reset();\r\n // this.args.SetLinesPen(linesPen);\r\n // this.args.isDigitalLine = this.parentSeries.isDigitalLine;\r\n // this.args.forceShaderMethod = true;\r\n // this.args.containsNaN = true;\r\n // this.args.lineGaps = this.webAssemblyContext.SCRTLineGapMode.DrawGaps;\r\n // this.args.verticalChart = renderPassData.isVerticalChart;\r\n // // Stroke paletting per point\r\n // this.applyStrokePaletting(linesPen);\r\n // if (this.palettingState.palettedColors) {\r\n // this.args.SetPalettedColors(this.palettingState.palettedColors);\r\n // }\r\n // const nativeContext = renderContext.getNativeContext();\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValues = pointSeries.xValues;\r\n var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;\r\n var yDrawValues = pointSeries.yValues;\r\n var hDrawValues = pointSeries.highValues;\r\n var lDrawValues = pointSeries.lowValues;\r\n var isVerticalDirection = this.parentSeries.errorDirection === ErrorDirection_1.EErrorDirection.Vertical;\r\n var dataPointWidthCalc = isVerticalDirection\r\n ? renderPassData.xCoordinateCalculator\r\n : renderPassData.yCoordinateCalculator;\r\n var dataPointWidthPx = this.parentSeries.dataPointWidthMode === DataPointWidthMode_1.EDataPointWidthMode.Absolute\r\n ? this.parentSeries.dataPointWidth\r\n : this.parentSeries.getDataPointWidth(dataPointWidthCalc, this.parentSeries.dataPointWidth);\r\n // const halfRange = Math.abs(\r\n // dataPointWidthCalc.getDataValue(dataPointWidthPx * 0.5) - dataPointWidthCalc.getDataValue(0)\r\n // );\r\n var halfRange = dataPointWidthPx * 0.5;\r\n var hasLogarithmicXAxis = this.parentSeries.xAxis.type === AxisType_1.EAxisType.LogarithmicAxis;\r\n var hasLogarithmicYAxis = this.parentSeries.yAxis.type === AxisType_1.EAxisType.LogarithmicAxis;\r\n var hasNegativeLogXAxis = this.parentSeries.xAxis.isNegative;\r\n var hasNegativeLogYAxis = this.parentSeries.yAxis.isNegative;\r\n var hasHighCap = this.parentSeries.errorMode !== ErrorMode_1.EErrorMode.Low;\r\n var hasLowCap = this.parentSeries.errorMode !== ErrorMode_1.EErrorMode.High;\r\n var dataPointsCount = xDrawValues.size();\r\n if (isVerticalDirection) {\r\n for (var i = 0; i < dataPointsCount; ++i) {\r\n var xValue = xDrawValues.get(i);\r\n var yValue = yDrawValues.get(i);\r\n var highValue = hasHighCap ? hDrawValues.get(i) : yValue;\r\n var lowValue = hasLowCap ? lDrawValues.get(i) : yValue;\r\n var shouldDrawLowErrorToLimit = hasLogarithmicYAxis && !hasNegativeLogYAxis && lowValue <= 0;\r\n if (shouldDrawLowErrorToLimit) {\r\n lowValue = this.parentSeries.yAxis.visibleRange.min;\r\n }\r\n var shouldDrawHighErrorToLimit = hasLogarithmicYAxis && hasNegativeLogYAxis && highValue >= 0;\r\n if (shouldDrawHighErrorToLimit) {\r\n highValue = this.parentSeries.yAxis.visibleRange.max;\r\n }\r\n // const xCoord = xValue;\r\n // const yCoord = yValue;\r\n // const highCoord = highValue;\r\n // const lowCoord = lowValue;\r\n var xCoord = renderPassData.xCoordinateCalculator.getCoordinate(xValue);\r\n var yCoord = renderPassData.yCoordinateCalculator.getCoordinate(yValue);\r\n var highCoord = renderPassData.yCoordinateCalculator.getCoordinate(highValue);\r\n var lowCoord = renderPassData.yCoordinateCalculator.getCoordinate(lowValue);\r\n var capStart = xCoord - halfRange;\r\n var capEnd = xCoord + halfRange;\r\n // main line\r\n if (this.parentSeries.drawConnector) {\r\n this.addLineVertices(vertices, xCoord, isNaN(highValue) ? yCoord : highCoord, xCoord, isNaN(lowValue) ? yCoord : lowCoord);\r\n }\r\n if (hasHighCap && !shouldDrawHighErrorToLimit && this.parentSeries.drawWhiskers) {\r\n // top whiskers\r\n this.addLineVertices(vertices, capStart, highCoord, capEnd, highCoord);\r\n }\r\n if (hasLowCap && !shouldDrawLowErrorToLimit && this.parentSeries.drawWhiskers) {\r\n // bottom whiskers\r\n this.addLineVertices(vertices, capStart, lowCoord, capEnd, lowCoord);\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataPointsCount; ++i) {\r\n var xValue = xDrawValues.get(i);\r\n var yValue = yDrawValues.get(i);\r\n var lowValue = hasLowCap ? lDrawValues.get(i) : xValue;\r\n var highValue = hasHighCap ? hDrawValues.get(i) : xValue;\r\n var shouldDrawLowErrorToLimit = hasLogarithmicXAxis && !hasNegativeLogXAxis && lowValue <= 0;\r\n if (shouldDrawLowErrorToLimit) {\r\n lowValue = LogarithmicAxis_1.MIN_LOG_AXIS_VALUE;\r\n }\r\n var shouldDrawHighErrorToLimit = hasLogarithmicXAxis && hasNegativeLogXAxis && highValue >= 0;\r\n if (shouldDrawHighErrorToLimit) {\r\n highValue = -LogarithmicAxis_1.MIN_LOG_AXIS_VALUE;\r\n }\r\n // const xCoord = xValue;\r\n // const yCoord = yValue;\r\n // const highCoord = highValue;\r\n // const lowCoord = lowValue;\r\n var xCoord = renderPassData.xCoordinateCalculator.getCoordinate(xValue);\r\n var yCoord = renderPassData.yCoordinateCalculator.getCoordinate(yValue);\r\n var highCoord = renderPassData.xCoordinateCalculator.getCoordinate(highValue);\r\n var lowCoord = renderPassData.xCoordinateCalculator.getCoordinate(lowValue);\r\n var capStart = yCoord - halfRange;\r\n var capEnd = yCoord + halfRange;\r\n // main line\r\n if (this.parentSeries.drawConnector) {\r\n this.addLineVertices(vertices, isNaN(lowValue) ? xCoord : lowCoord, yCoord, isNaN(highValue) ? xCoord : highCoord, yCoord);\r\n }\r\n if (hasHighCap && !shouldDrawHighErrorToLimit && this.parentSeries.drawWhiskers) {\r\n // top whiskers\r\n this.addLineVertices(vertices, highCoord, capStart, highCoord, capEnd);\r\n }\r\n if (hasLowCap && !shouldDrawLowErrorToLimit && this.parentSeries.drawWhiskers) {\r\n // bottom whiskers\r\n this.addLineVertices(vertices, lowCoord, capStart, lowCoord, capEnd);\r\n }\r\n }\r\n }\r\n // this.nativeDrawingProvider.DrawLinesVec(nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args);\r\n renderContext.drawLinesNative(vertices, linesPen, WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesDrawingProvider.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.STROKE);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n _super.prototype.onSeriesPropertyChange.call(this, propertyName);\r\n var _a = this.parentSeries, stroke = _a.stroke, strokeThickness = _a.strokeThickness, opacity = _a.opacity, strokeDashArray = _a.strokeDashArray;\r\n if (propertyName === constants_1.PROPERTY.STROKE ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.OPACITY ||\r\n propertyName === constants_1.PROPERTY.STROKE_DASH_ARRAY) {\r\n (0, Pen2DCache_1.createPenInCache)(this.linesPenCache, stroke, strokeThickness, opacity, strokeDashArray);\r\n }\r\n };\r\n ErrorSeriesDrawingProvider.prototype.addLineVertices = function (vertices, x1, y1, x2, y2) {\r\n var isVerticalChart = this.parentSeries.xAxis.isVerticalChart;\r\n if (isVerticalChart) {\r\n vertices.push_back((0, NativeObject_1.getVertex)(this.webAssemblyContext, y1, x1));\r\n vertices.push_back((0, NativeObject_1.getVertex)(this.webAssemblyContext, y2, x2));\r\n }\r\n else {\r\n vertices.push_back((0, NativeObject_1.getVertex)(this.webAssemblyContext, x1, y1));\r\n vertices.push_back((0, NativeObject_1.getVertex)(this.webAssemblyContext, x2, y2));\r\n }\r\n };\r\n return ErrorSeriesDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.ErrorSeriesDrawingProvider = ErrorSeriesDrawingProvider;\r\n","\"use strict\";\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.calculateHeatmapTexture = exports.calculateCellCoordinates = exports.calculateOffsets = exports.createColorMap = exports.getCellColor = exports.getColor = exports.getColorDataForTexture = void 0;\r\nvar colorUtil_1 = require(\"../../../../utils/colorUtil\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar getColorDataForTexture = function (params, _colorData, precision) {\r\n var xStartInd = params.xStartInd, textureWidth = params.textureWidth, xInc = params.xInc, yStartInd = params.yStartInd, textureHeight = params.textureHeight, yInc = params.yInc, zValues = params.zValues, webAssemblyContext = params.webAssemblyContext, colorMap = params.colorMap, opacity = params.opacity, horCellCount = params.horCellCount, vertCellCount = params.vertCellCount, horCellOffsets = params.horCellOffsets, vertCellOffsets = params.vertCellOffsets, colorMin = params.colorMin, colorMax = params.colorMax, arrayWidth = params.arrayWidth, arrayHeight = params.arrayHeight, fillValuesOutOfRange = params.fillValuesOutOfRange;\r\n // const _colorData = new webAssemblyContext.UIntVector();\r\n _colorData.resize(textureWidth * textureHeight, 0);\r\n // const _colorData = Array.from(Array(textureWidth * textureHeight));\r\n var yOffsetInd = 0;\r\n var yCellEnd = vertCellOffsets[yOffsetInd];\r\n var cachedColors = new Array(horCellCount);\r\n var hasCachedColors = false;\r\n var xCellIndex = xStartInd;\r\n var yCellIndex = yStartInd;\r\n var color;\r\n for (var y = 0; y < textureHeight; y++) {\r\n var xOffsetInd = 0;\r\n var xCellEnd = horCellOffsets[xOffsetInd];\r\n if (y > yCellEnd) {\r\n // New cell - need to refill the cache\r\n hasCachedColors = false;\r\n // Get the end coord of the next cell and a color for it\r\n yOffsetInd++;\r\n yCellEnd = vertCellOffsets[yOffsetInd];\r\n // If yCellEnd falls inside a pixel, reiterate and get the next color\r\n var yDiff = y - yCellEnd;\r\n if (yDiff > Number.EPSILON && Math.floor(yCellEnd) + 1 === y) {\r\n y--;\r\n continue;\r\n }\r\n }\r\n if (hasCachedColors) {\r\n // Get color cached on previous iteration\r\n color = cachedColors[xOffsetInd];\r\n }\r\n else {\r\n xCellIndex = xStartInd + xOffsetInd * xInc;\r\n yCellIndex = yStartInd + yOffsetInd * yInc;\r\n color = (0, exports.getColor)(yCellIndex, xCellIndex, colorMap, opacity, zValues, webAssemblyContext, colorMin, colorMax, arrayWidth, arrayHeight, fillValuesOutOfRange, precision);\r\n // New cell - refill the cache\r\n cachedColors[xOffsetInd] = color;\r\n }\r\n for (var x = 0; x < textureWidth; x++) {\r\n if (x > xCellEnd) {\r\n // Get the end coord of the next cell and a color for it\r\n xOffsetInd++;\r\n xCellEnd = horCellOffsets[xOffsetInd];\r\n // If xCellEnd falls inside a pixel, reiterate and get the next color\r\n var xDiff = x - xCellEnd;\r\n if (xDiff > Number.EPSILON && Math.floor(xCellEnd) + 1 === x) {\r\n x--;\r\n continue;\r\n }\r\n if (hasCachedColors) {\r\n // Get color cached on previous iteration\r\n color = cachedColors[xOffsetInd];\r\n }\r\n else {\r\n xCellIndex = xStartInd + xOffsetInd * xInc;\r\n color = (0, exports.getColor)(yCellIndex, xCellIndex, colorMap, opacity, zValues, webAssemblyContext, colorMin, colorMax, arrayWidth, arrayHeight, fillValuesOutOfRange, precision);\r\n cachedColors[xOffsetInd] = color;\r\n }\r\n }\r\n // Fill a texture pixel\r\n // _colorData[y * textureWidth + x] = color;\r\n _colorData.set(y * textureWidth + x, color);\r\n }\r\n hasCachedColors = true;\r\n }\r\n return _colorData;\r\n};\r\nexports.getColorDataForTexture = getColorDataForTexture;\r\nvar getColor = function (yIndex, xIndex, colorPalette, opacity, \r\n// zValues: SCRTDoubleVector,\r\nzValues, webAssemblyContext, colorMin, colorMax, arrayWidth, arrayHeight, fillValuesOutOfRange, precision) {\r\n // TODO is this check needed?\r\n if (yIndex >= arrayHeight || xIndex >= arrayWidth) {\r\n // transparent\r\n return 0;\r\n }\r\n // const zValue = zValues.get(yIndex * arrayWidth + xIndex);\r\n var zValue = zValues[yIndex][xIndex];\r\n var cellColor = (0, exports.getCellColor)(zValue, colorPalette, colorMin, colorMax, fillValuesOutOfRange, webAssemblyContext, precision);\r\n return (0, colorUtil_1.uintArgbColorMultiplyOpacity)(cellColor, opacity);\r\n};\r\nexports.getColor = getColor;\r\n/** @ignore */\r\nvar getCellColor = function (value, _colorMap, colorMin, colorMax, fillValuesOutOfRange, webAssemblyContext, precision) {\r\n if (isNaN(value)) {\r\n // transparent\r\n return 0;\r\n }\r\n // comment from the original C# code\r\n // TODO move this to DataSeries.GetZAsDoubles(min, max) to avoid it here\r\n if (fillValuesOutOfRange) {\r\n // Clip to ColorMap.Min, Max\r\n value = value < colorMin ? colorMin : value;\r\n value = value > colorMax ? colorMax : value;\r\n }\r\n else if (value < colorMin || value > colorMax) {\r\n // transparent\r\n return 0;\r\n }\r\n var _scaleFactor = (precision - 1) / Math.abs(colorMax - colorMin);\r\n var colorMapValue = (value - colorMin) * _scaleFactor;\r\n // Round to the nearest integer\r\n var colorIndex = Math.floor(colorMapValue + Math.sign(value) * 0.5);\r\n colorIndex = webAssemblyContext.NumberUtil.Constrain(colorIndex, 0, _colorMap.length - 1);\r\n return _colorMap[colorIndex];\r\n};\r\nexports.getCellColor = getCellColor;\r\n// TODO configure precision\r\nvar createColorMap = function (originalGradientStops, precision) {\r\n var colorMap = Array.from(Array(precision));\r\n // clone and sort gradient stops\r\n var gradientStops = __spreadArray([], originalGradientStops, true);\r\n gradientStops.sort(function (gradientStop, nextGradientStop) {\r\n if (gradientStop.offset < nextGradientStop.offset) {\r\n return -1;\r\n }\r\n else if (gradientStop.offset > nextGradientStop.offset) {\r\n return 1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n var count = gradientStops.length;\r\n var first = gradientStops[0].offset;\r\n var last = gradientStops[gradientStops.length - 1].offset;\r\n var diff = last - first;\r\n var change = diff / (precision - 1);\r\n // let prevColor = ApplyOpacity(gradientStops[0].color, _opacity);\r\n var prevColor = gradientStops[0].color;\r\n var prevOffset = gradientStops[0].offset;\r\n var nextColor = prevColor;\r\n var nextOffset = prevOffset;\r\n if (count > 1) {\r\n // nextColor = ApplyOpacity(gradientStops[1].color, _opacity);\r\n nextColor = gradientStops[1].color;\r\n nextOffset = gradientStops[1].offset;\r\n }\r\n diff = nextOffset - prevOffset;\r\n var offsetInd = 0;\r\n for (var i = 0; i < precision; ++i) {\r\n var offset = first + i * change;\r\n if (offset >= nextOffset) {\r\n offsetInd++;\r\n prevOffset = nextOffset;\r\n prevColor = nextColor;\r\n if (offsetInd + 1 < count) {\r\n // nextColor = ApplyOpacity(gradientStops[offsetInd + 1].color, _opacity);\r\n nextColor = gradientStops[offsetInd + 1].color;\r\n nextOffset = gradientStops[offsetInd + 1].offset;\r\n }\r\n diff = nextOffset - prevOffset;\r\n }\r\n var color = void 0;\r\n if (prevColor === nextColor || diff <= Number.EPSILON) {\r\n color = Number.parseInt((0, parseColor_1.parseColorToHexStringArgb)(nextColor), 16);\r\n }\r\n else {\r\n var coef = (offset - prevOffset) / diff;\r\n color = getInterpolatedColor(prevColor, nextColor, coef);\r\n }\r\n colorMap[i] = color;\r\n }\r\n return colorMap;\r\n};\r\nexports.createColorMap = createColorMap;\r\nvar getInterpolatedColor = function (htmlColor1, htmlColor2, coef) {\r\n var color1 = (0, parseColor_1.parseColorToTArgb)(htmlColor1);\r\n var color2 = (0, parseColor_1.parseColorToTArgb)(htmlColor2);\r\n var a1 = color1.opacity;\r\n var a2 = color2.opacity;\r\n var r1 = color1.red;\r\n var r2 = color2.red;\r\n var g1 = color1.green;\r\n var g2 = color2.green;\r\n var b1 = color1.blue;\r\n var b2 = color2.blue;\r\n var r = r1 + Math.floor((r2 - r1) * coef);\r\n var g = g1 + Math.floor((g2 - g1) * coef);\r\n var b = b1 + Math.floor((b2 - b1) * coef);\r\n var a = a1 + Math.floor((a2 - a1) * coef);\r\n return Number.parseInt(\"0x\" + (0, parseColor_1.toHex)(a) + (0, parseColor_1.toHex)(r) + (0, parseColor_1.toHex)(g) + (0, parseColor_1.toHex)(b), 16);\r\n // return (a << 24) | (r << 16) | (g << 8) | b;\r\n};\r\nvar calculateOffsets = function (heatmapRect, isVerticalChart, xCellSizes, yCellSizes, horStartInd, horCellCount, horInc, vertStartInd, vertCellCount, vertInc, seriesViewRect) {\r\n // TODO can be optimized - no need to recalculate these offsets at every redraw\r\n // TODO can be optimized for large heatmaps - skip cells that\r\n // falls within a single pixel & count them for the iteration in ComputeColorMap()\r\n // Find heatmap cells positions\r\n var offsetX = heatmapRect.left < 0 ? -heatmapRect.left : 0;\r\n var offsetY = heatmapRect.top < 0 ? -heatmapRect.top : 0;\r\n if (isVerticalChart) {\r\n // consider that heatmap texture is rotated\r\n offsetX = heatmapRect.right > seriesViewRect.bottom ? heatmapRect.right - seriesViewRect.bottom : 0;\r\n }\r\n // Horizontal offsets == X offsets on texture, vertical offsets == Y offsets on texture\r\n var horCellOffsets = (0, exports.calculateCellCoordinates)(xCellSizes, heatmapRect.width, horStartInd, horCellCount, horInc, -offsetX);\r\n var vertCellOffsets = (0, exports.calculateCellCoordinates)(yCellSizes, heatmapRect.height, vertStartInd, vertCellCount, vertInc, -offsetY);\r\n return { horCellOffsets: horCellOffsets, vertCellOffsets: vertCellOffsets };\r\n};\r\nexports.calculateOffsets = calculateOffsets;\r\n/**\r\n * Calculates absolute coordinates of the heatmap cells\r\n * @param inputArr relative cell sizes\r\n * @param dimension texture size\r\n * @param startInd\r\n * @param count\r\n * @param inc\r\n * @param offset\r\n * @returns\r\n */\r\nvar calculateCellCoordinates = function (inputArr, dimension, startInd, count, inc, offset) {\r\n // Find a stretch coef\r\n var sum = 0;\r\n var ind = startInd;\r\n for (var i = 0; i < count; i++, ind += inc) {\r\n sum += inputArr[ind];\r\n }\r\n var coef = 1 / sum;\r\n var offsets = new Array(count);\r\n var length = offset;\r\n for (var i = 0; i < count - 1; i++) {\r\n var index = i * inc + startInd;\r\n var cellSize = inputArr[index] * coef * dimension;\r\n length = length + cellSize;\r\n offsets[i] = length;\r\n }\r\n offsets[count - 1] = dimension + offset;\r\n return offsets;\r\n};\r\nexports.calculateCellCoordinates = calculateCellCoordinates;\r\nvar calculateHeatmapTexture = function (colorDataParams, intVector, heatTextureCache, precision) {\r\n var textureWidth = colorDataParams.textureWidth, textureHeight = colorDataParams.textureHeight, webAssemblyContext = colorDataParams.webAssemblyContext, useInterpolation = colorDataParams.useInterpolation;\r\n // calculate colors from zValues\r\n // per pixel colors\r\n var colorArray = (0, exports.getColorDataForTexture)(colorDataParams, intVector, precision);\r\n // create and fill texture\r\n var texture = heatTextureCache.create(textureWidth, textureHeight, webAssemblyContext.eTSRTextureFormat.TSR_TEXTUREFORMAT_A8B8G8R8);\r\n webAssemblyContext.SCRTSetTextureLinearSamplerEnabled(texture, useInterpolation);\r\n webAssemblyContext.SCRTFillTextureAbgr(texture, textureWidth, textureHeight, colorArray);\r\n return texture;\r\n};\r\nexports.calculateHeatmapTexture = calculateHeatmapTexture;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LineSeriesDrawingProvider = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar Pen2DCache_1 = require(\"../../../Drawing/Pen2DCache\");\r\nvar WebGlRenderContext2D_1 = require(\"../../../Drawing/WebGlRenderContext2D\");\r\nvar BaseLineRenderableSeries_1 = require(\"../BaseLineRenderableSeries\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link FastLineRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar LineSeriesDrawingProvider = /** @class */ (function (_super) {\r\n __extends(LineSeriesDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link LineSeriesDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link FastLineRenderableSeries} which this drawing provider is attached to\r\n */\r\n function LineSeriesDrawingProvider(webAssemblyContext, parentSeries, ySelector, xSelector) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries, ySelector, xSelector) || this;\r\n _this.linesPenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.args = new webAssemblyContext.SCRTLineDrawingParams();\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n LineSeriesDrawingProvider.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.STROKE);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n LineSeriesDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n _super.prototype.onSeriesPropertyChange.call(this, propertyName);\r\n if (propertyName === constants_1.PROPERTY.PALETTE_PROVIDER) {\r\n this.linesPenCache.invalidateCache();\r\n }\r\n if (propertyName === constants_1.PROPERTY.STROKE ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.PALETTE_PROVIDER ||\r\n propertyName === constants_1.PROPERTY.OPACITY ||\r\n propertyName === constants_1.PROPERTY.STROKE_DASH_ARRAY) {\r\n this.palettingState.requiresUpdate = true;\r\n var _a = this.getProperties(this.parentSeries), stroke = _a.stroke, strokeThickness = _a.strokeThickness, opacity = _a.opacity, strokeDashArray = _a.strokeDashArray;\r\n if (stroke) {\r\n (0, Pen2DCache_1.createPenInCache)(this.linesPenCache, stroke, strokeThickness, opacity !== null && opacity !== void 0 ? opacity : 1, strokeDashArray);\r\n }\r\n }\r\n };\r\n /** A mapping function to get the pen properties from the parent series */\r\n LineSeriesDrawingProvider.prototype.getProperties = function (parentSeries) {\r\n var stroke = parentSeries.stroke, strokeThickness = parentSeries.strokeThickness, opacity = parentSeries.opacity, strokeDashArray = parentSeries.strokeDashArray, isDigitalLine = parentSeries.isDigitalLine, drawNaNAs = parentSeries.drawNaNAs, lineType = parentSeries.lineType;\r\n return {\r\n stroke: stroke,\r\n strokeThickness: strokeThickness,\r\n opacity: opacity,\r\n strokeDashArray: strokeDashArray,\r\n isDigitalLine: isDigitalLine,\r\n drawNaNAs: drawNaNAs,\r\n lineType: lineType,\r\n containsNaN: undefined\r\n };\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n LineSeriesDrawingProvider.prototype.onAttachSeries = function () {\r\n _super.prototype.onAttachSeries.call(this);\r\n this.nativeDrawingProvider = new this.webAssemblyContext.SCRTLineSeriesDrawingProvider();\r\n var _a = this.getProperties(this.parentSeries), stroke = _a.stroke, strokeThickness = _a.strokeThickness, opacity = _a.opacity, strokeDashArray = _a.strokeDashArray;\r\n if (stroke) {\r\n (0, Pen2DCache_1.createPenInCache)(this.linesPenCache, stroke, strokeThickness, opacity !== null && opacity !== void 0 ? opacity : 1, strokeDashArray);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n LineSeriesDrawingProvider.prototype.onDetachSeries = function () {\r\n _super.prototype.onDetachSeries.call(this);\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n LineSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var _a;\r\n var _b = this.getProperties(this.parentSeries), stroke = _b.stroke, isDigitalLine = _b.isDigitalLine, lineType = _b.lineType, drawNaNAs = _b.drawNaNAs, containsNaNOverride = _b.containsNaN;\r\n var linesPen = (0, Pen2DCache_1.getScrtPenFromCache)(this.linesPenCache);\r\n if (!linesPen || !stroke) {\r\n return;\r\n }\r\n var pointSeries = renderPassData.pointSeries;\r\n var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;\r\n containsNaN = containsNaNOverride !== null && containsNaNOverride !== void 0 ? containsNaNOverride : containsNaN;\r\n this.args.Reset();\r\n this.args.SetLinesPen(linesPen);\r\n this.args.isDigitalLine = isDigitalLine || lineType !== BaseLineRenderableSeries_1.ELineType.Normal;\r\n this.args.drawDigitalVertical = lineType !== BaseLineRenderableSeries_1.ELineType.DigitalNoEdge;\r\n this.args.digitalYX = lineType === BaseLineRenderableSeries_1.ELineType.DigitalYX;\r\n this.args.forceShaderMethod = true;\r\n this.args.containsNaN = containsNaN;\r\n this.args.forceClamp = !this.args.isDigitalLine;\r\n this.args.lineGaps = containsNaN\r\n ? drawNaNAs === WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine\r\n ? this.webAssemblyContext.SCRTLineGapMode.DrawGaps\r\n : this.webAssemblyContext.SCRTLineGapMode.CloseGaps\r\n : this.webAssemblyContext.SCRTLineGapMode.Default;\r\n this.args.verticalChart = renderPassData.isVerticalChart;\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var _c = this.parentSeries.dataSeries, fifoCapacity = _c.fifoCapacity, fifoSweeping = _c.fifoSweeping, fifoSweepingGap = _c.fifoSweepingGap;\r\n var fifoStartIndex = pointSeries.fifoStartIndex;\r\n var xValues = this.xSelector(pointSeries);\r\n var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;\r\n var yDrawValues = this.ySelector(pointSeries);\r\n // const isSplineLineSeries = this.parentSeries.type === ESeriesType.SplineLineSeries && xValues.size() > 1;\r\n // if (isSplineLineSeries) {\r\n // const spline = this.parentSeries as any as ISpline;\r\n // // If animation is running we animate between two interpolated vectors and do not want to update spline\r\n // if (!this.parentSeries.isRunningAnimation) {\r\n // spline.updateSplineValues();\r\n // }\r\n // xDrawValues = spline.xSplineValues;\r\n // yDrawValues = spline.ySplineValues;\r\n // }\r\n var _d = this.getStartAndCount(\r\n //isSplineLineSeries ? undefined : renderPassData,\r\n renderPassData, xDrawValues), startIndex = _d.startIndex, count = _d.count;\r\n this.args.count = count;\r\n this.args.startIndex = startIndex;\r\n //logDoubleVector(xDrawValues, \"xValues\");\r\n //logDoubleVector(yDrawValues, \"yValues\");\r\n //console.log(renderPassData.indexRange, yDrawValues.size(), this.args.count);\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.count = fifoStartIndex;\r\n }\r\n // Stroke paletting per point\r\n this.applyStrokePaletting(linesPen, renderPassData);\r\n if (this.palettingState.palettedColors) {\r\n this.args.SetPalettedColors(this.palettingState.palettedColors);\r\n this.args.paletteStart = (_a = this.palettingState.paletteStartIndex) !== null && _a !== void 0 ? _a : 0;\r\n }\r\n var nativeContext = renderContext.getNativeContext();\r\n this.drawLines(renderContext, nativeContext, xDrawValues, yDrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args, this.parentSeries.parentSurface.seriesViewRect);\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.startIndex = Math.min(yDrawValues.size(), fifoStartIndex + fifoSweepingGap);\r\n this.args.count = Math.max(0, yDrawValues.size() - fifoStartIndex - fifoSweepingGap);\r\n // const last = this.args.startIndex + this.args.count - 1;\r\n // console.log(2, this.args.startIndex, this.args.count, last, xDrawValues.size());\r\n // console.log(xDrawValues.get(last - 2), xDrawValues.get(last - 1), xDrawValues.get(last));\r\n if (this.args.count > 0) {\r\n this.drawLines(renderContext, nativeContext, xDrawValues, yDrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args, this.parentSeries.parentSurface.seriesViewRect);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n LineSeriesDrawingProvider.prototype.delete = function () {\r\n this.linesPenCache = (0, Deleter_1.deleteSafe)(this.linesPenCache);\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n this.args = (0, Deleter_1.deleteSafe)(this.args);\r\n _super.prototype.delete.call(this);\r\n };\r\n LineSeriesDrawingProvider.prototype.drawLines = function (renderContext, nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args, viewRect) {\r\n this.nativeDrawingProvider.DrawLinesVec(nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args);\r\n };\r\n return LineSeriesDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.LineSeriesDrawingProvider = LineSeriesDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MountainSeriesDrawingProvider = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar BrushCache_1 = require(\"../../../Drawing/BrushCache\");\r\nvar Pen2DCache_1 = require(\"../../../Drawing/Pen2DCache\");\r\nvar WebGlRenderContext2D_1 = require(\"../../../Drawing/WebGlRenderContext2D\");\r\nvar SciChartSurfaceBase_1 = require(\"../../SciChartSurfaceBase\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link BaseMountainRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar MountainSeriesDrawingProvider = /** @class */ (function (_super) {\r\n __extends(MountainSeriesDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link MountainSeriesDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link BaseMountainRenderableSeries} which this drawing provider is attached to\r\n */\r\n function MountainSeriesDrawingProvider(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries) || this;\r\n _this.nativeDrawingProvider = new _this.webAssemblyContext.SCRTMountainSeriesDrawingProvider();\r\n _this.args = new _this.webAssemblyContext.SCRTMountainDrawingParams();\r\n _this.strokePenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.fillBrushCache = new BrushCache_1.BrushCache(webAssemblyContext);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n MountainSeriesDrawingProvider.prototype.delete = function () {\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n this.args = (0, Deleter_1.deleteSafe)(this.args);\r\n this.strokePenCache = (0, Deleter_1.deleteSafe)(this.strokePenCache);\r\n this.fillBrushCache = (0, Deleter_1.deleteSafe)(this.fillBrushCache);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MountainSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var _a;\r\n var pointSeries = renderPassData.pointSeries;\r\n var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;\r\n this.args.Reset();\r\n this.args.forceShaderMethod = true;\r\n this.args.lineGaps = containsNaN\r\n ? this.parentSeries.drawNaNAs === WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine\r\n ? this.webAssemblyContext.SCRTLineGapMode.DrawGaps\r\n : this.webAssemblyContext.SCRTLineGapMode.CloseGaps\r\n : this.webAssemblyContext.SCRTLineGapMode.Default;\r\n this.args.verticalChart = renderPassData.isVerticalChart;\r\n this.args.zeroLineY = this.parentSeries.zeroLineY;\r\n this.args.isDigitalLine = this.parentSeries.isDigitalLine;\r\n var fillBrush = this.createBrush();\r\n if (fillBrush) {\r\n this.args.SetFillBrush(fillBrush);\r\n }\r\n var strokePen = (0, Pen2DCache_1.getScrtPenFromCache)(this.strokePenCache);\r\n if (strokePen) {\r\n this.args.SetLinesPen(strokePen);\r\n }\r\n // Paletting per point\r\n _super.prototype.applyStrokeFillPaletting.call(this, this.parentSeries.stroke, strokePen, this.parentSeries.fill, fillBrush, this.parentSeries.opacity, true, this.parentSeries.fillLinearGradient !== undefined, renderPassData);\r\n var paletteTexture = (_a = this.palettingState.paletteTextureCache) === null || _a === void 0 ? void 0 : _a.value;\r\n if (paletteTexture) {\r\n this.args.SetPalette(paletteTexture);\r\n }\r\n this.args.isSmoothColors = this.palettingState.gradientPaletting;\r\n var _b = this.parentSeries.dataSeries, fifoCapacity = _b.fifoCapacity, fifoSweeping = _b.fifoSweeping, fifoSweepingGap = _b.fifoSweepingGap;\r\n var fifoStartIndex = pointSeries.fifoStartIndex;\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValues = pointSeries.xValues;\r\n var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;\r\n var yDrawValues = pointSeries.yValues;\r\n // const isSplineMountainSeries =\r\n // this.parentSeries.type === ESeriesType.SplineMountainSeries && xValues.size() > 1;\r\n // if (isSplineMountainSeries) {\r\n // const rs = this.parentSeries as any as ISpline;\r\n // if (!this.parentSeries.isRunningAnimation) {\r\n // rs.updateSplineValues();\r\n // }\r\n // xDrawValues = rs.xSplineValues;\r\n // yDrawValues = rs.ySplineValues;\r\n // }\r\n var _c = this.getStartAndCount(\r\n //isSplineMountainSeries ? undefined : renderPassData,\r\n renderPassData, xDrawValues), startIndex = _c.startIndex, count = _c.count;\r\n this.args.count = count;\r\n this.args.startIndex = startIndex;\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.count = fifoStartIndex;\r\n }\r\n var nativeContext = renderContext.getNativeContext();\r\n var viewRect = this.parentSeries.parentSurface.seriesViewRect;\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xDrawValues, yDrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args);\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.startIndex = Math.min(yDrawValues.size(), fifoStartIndex + fifoSweepingGap);\r\n this.args.count = Math.max(0, yDrawValues.size() - fifoStartIndex - fifoSweepingGap);\r\n if (this.args.count > 0) {\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xDrawValues, yDrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MountainSeriesDrawingProvider.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.STROKE);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MountainSeriesDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n _super.prototype.onSeriesPropertyChange.call(this, propertyName);\r\n if (propertyName === constants_1.PROPERTY.STROKE ||\r\n propertyName === constants_1.PROPERTY.STROKE_DASH_ARRAY ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.OPACITY) {\r\n this.createPen();\r\n }\r\n if (propertyName === constants_1.PROPERTY.FILL ||\r\n propertyName === constants_1.PROPERTY.OPACITY ||\r\n propertyName === constants_1.PROPERTY.FILL_LINEAR_GRADIENT) {\r\n this.createBrush();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MountainSeriesDrawingProvider.prototype.onAttachSeries = function () {\r\n _super.prototype.onAttachSeries.call(this);\r\n this.createPen();\r\n this.createBrush();\r\n };\r\n MountainSeriesDrawingProvider.prototype.createBrush = function () {\r\n this.palettingState.requiresUpdate = true;\r\n var _a = this.parentSeries, fill = _a.fill, opacity = _a.opacity, fillLinearGradient = _a.fillLinearGradient, parentSurface = _a.parentSurface;\r\n var textureHeightRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)\r\n ? parentSurface.domCanvas2D.height / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height\r\n : 1;\r\n var textureWidthRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)\r\n ? parentSurface.domCanvas2D.width / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width\r\n : 1;\r\n return (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, fill, opacity, textureHeightRatio, textureWidthRatio, fillLinearGradient);\r\n };\r\n MountainSeriesDrawingProvider.prototype.createPen = function () {\r\n var _a = this.parentSeries, stroke = _a.stroke, strokeThickness = _a.strokeThickness, opacity = _a.opacity, strokeDashArray = _a.strokeDashArray;\r\n this.palettingState.requiresUpdate = true;\r\n return (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, stroke, strokeThickness, opacity, strokeDashArray);\r\n };\r\n return MountainSeriesDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.MountainSeriesDrawingProvider = MountainSeriesDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NonUniformHeatmapDrawingProvider = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar Rect_1 = require(\"../../../../Core/Rect\");\r\nvar memoize_1 = require(\"../../../../utils/memoize\");\r\nvar TextureCache_1 = require(\"../../../Drawing/TextureCache\");\r\nvar BaseHeatmapRenderableSeries_1 = require(\"../BaseHeatmapRenderableSeries\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\nvar HeatmapHelpers_1 = require(\"./HeatmapHelpers\");\r\n// TODO figure out if other value is needed\r\nvar precision = 100;\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link NonUniformHeatmapRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar NonUniformHeatmapDrawingProvider = /** @class */ (function (_super) {\r\n __extends(NonUniformHeatmapDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link UniformHeatmapDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link UniformHeatmapRenderableSeries} which this drawing provider is attached to\r\n */\r\n function NonUniformHeatmapDrawingProvider(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries) || this;\r\n _this.heatTextureCache = new TextureCache_1.TextureCache(webAssemblyContext);\r\n _this.colorDataVector = new webAssemblyContext.UIntVector();\r\n _this.onSeriesPropertyChange(constants_1.PROPERTY.DATA_SERIES);\r\n _this.onSeriesPropertyChange(constants_1.PROPERTY.COLOR_MAP);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapDrawingProvider.prototype.delete = function () {\r\n this.colorDataVector = (0, Deleter_1.deleteSafe)(this.colorDataVector);\r\n this.heatTextureCache = (0, Deleter_1.deleteSafe)(this.heatTextureCache);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n var recreateGradientColorScale = \r\n // TODO this handles data updating using setZValue, consider invalidating colorData cache instead\r\n propertyName === constants_1.PROPERTY.DATA_SERIES ||\r\n propertyName === constants_1.PROPERTY.COLOR_MAP ||\r\n propertyName.includes(BaseHeatmapRenderableSeries_1.COLOR_MAP_PREFIX) ||\r\n propertyName === constants_1.PROPERTY.OPACITY;\r\n if (recreateGradientColorScale) {\r\n // TODO check case when colormap is passed via setter\r\n this.colorGradientScale = (0, HeatmapHelpers_1.createColorMap)(this.parentSeries.colorMap.gradientStops, precision);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var isVerticalChart = renderPassData.isVerticalChart;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n var seriesViewRect = this.parentSeries.parentSurface.seriesViewRect;\r\n var colorMap = this.parentSeries.colorMap;\r\n var colorGradientScale = this.colorGradientScale;\r\n var zValues = dataSeries.getZValues();\r\n var xIndexRange = dataSeries.getXIndicesRange(new NumberRange_1.NumberRange(renderPassData.xCoordinateCalculator.visibleMin, renderPassData.xCoordinateCalculator.visibleMax), false);\r\n var yIndexRange = dataSeries.getYIndicesRange(new NumberRange_1.NumberRange(renderPassData.yCoordinateCalculator.visibleMin, renderPassData.yCoordinateCalculator.visibleMax), false);\r\n var xMinValue = dataSeries.getXValue(xIndexRange.min);\r\n var xMaxValue = dataSeries.getXValue(xIndexRange.max);\r\n var yMinValue = dataSeries.getYValue(yIndexRange.min);\r\n var yMaxValue = dataSeries.getYValue(yIndexRange.max);\r\n var isXFlipped = !renderPassData.xCoordinateCalculator.hasFlippedCoordinates;\r\n var isYFlipped = renderPassData.yCoordinateCalculator.hasFlippedCoordinates;\r\n var heatmapStartX = renderPassData.xCoordinateCalculator.getCoordinate(isXFlipped ? xMaxValue : xMinValue);\r\n var heatmapEndX = renderPassData.xCoordinateCalculator.getCoordinate(isXFlipped ? xMinValue : xMaxValue);\r\n var heatmapStartY = renderPassData.yCoordinateCalculator.getCoordinate(!isYFlipped ? yMaxValue : yMinValue);\r\n var heatmapEndY = renderPassData.yCoordinateCalculator.getCoordinate(!isYFlipped ? yMinValue : yMaxValue);\r\n // clipped size\r\n var heatmapWidth = Math.ceil(Math.abs(heatmapStartX - heatmapEndX));\r\n var heatmapHeight = Math.ceil(Math.abs(heatmapStartY - heatmapEndY));\r\n var isOverflow = heatmapWidth <= 0 || heatmapHeight <= 0;\r\n var isOutViewport = heatmapStartX > (isVerticalChart ? seriesViewRect.height : seriesViewRect.width) ||\r\n heatmapStartY > (isVerticalChart ? seriesViewRect.width : seriesViewRect.height) ||\r\n heatmapEndX < 0 ||\r\n heatmapEndY < 0;\r\n if (!isOutViewport && !isOverflow) {\r\n var horCellRange = xIndexRange;\r\n var vertCellRange = yIndexRange;\r\n var horStartInd = isXFlipped ? horCellRange.max - 1 : horCellRange.min;\r\n var vertStartInd = isYFlipped ? vertCellRange.min : vertCellRange.max - 1;\r\n var horInc = isXFlipped ? -1 : 1;\r\n var vertInc = isYFlipped ? 1 : -1;\r\n if (isVerticalChart) {\r\n horStartInd = !isXFlipped ? horCellRange.max - 1 : horCellRange.min;\r\n horInc = !isXFlipped ? -1 : 1;\r\n }\r\n var horCellCount = horCellRange.diff;\r\n var vertCellCount = vertCellRange.diff;\r\n var nativeContext = renderContext.getNativeContext();\r\n this.drawHeatmapInTypescript(nativeContext, dataSeries.xCellOffsets, dataSeries.yCellOffsets, zValues, renderPassData.xCoordinateCalculator, renderPassData.yCoordinateCalculator, {\r\n horCellCount: horCellCount,\r\n vertCellCount: vertCellCount,\r\n arrayWidth: dataSeries.arrayWidth,\r\n arrayHeight: dataSeries.arrayHeight,\r\n opacity: this.parentSeries.opacity,\r\n colorGradientScale: colorGradientScale,\r\n colorMin: colorMap.minimum,\r\n colorMax: colorMap.maximum,\r\n horStartInd: horStartInd,\r\n vertStartInd: vertStartInd,\r\n horInc: horInc,\r\n vertInc: vertInc,\r\n isVerticalChart: isVerticalChart,\r\n heatmapStartX: heatmapStartX,\r\n heatmapStartY: heatmapStartY,\r\n heatmapWidth: heatmapWidth,\r\n heatmapHeight: heatmapHeight,\r\n // TS specific\r\n xCellSizes: dataSeries.xCellSizes,\r\n yCellSizes: dataSeries.yCellSizes,\r\n seriesViewRect: seriesViewRect\r\n });\r\n // Draft code for porting to the native drawing provider\r\n // const nativeZValues = new this.webAssemblyContext.SCRTDoubleVector();\r\n // const flattenedZValues = ([] as number[]).concat.apply([], zValues);\r\n // appendDoubleVectorFromJsArray(this.webAssemblyContext, nativeZValues, flattenedZValues);\r\n // this.drawHeatmapNative(\r\n // nativeContext,\r\n // nativeXOffsets,\r\n // nativeYOffsets,\r\n // nativeZValues,\r\n // renderPassData.xCoordinateCalculator,\r\n // renderPassData.yCoordinateCalculator,\r\n // {\r\n // _horCellCount,\r\n // _vertCellCount,\r\n // arrayWidth: dataSeries.arrayWidth,\r\n // arrayHeight: dataSeries.arrayHeight,\r\n // _horCellOffsets,\r\n // _vertCellOffsets,\r\n // opacity: this.parentSeries.opacity,\r\n // colorGradientScale,\r\n // colorMin: colorMap.minimum,\r\n // colorMax: colorMap.maximum,\r\n // _horStartInd,\r\n // _vertStartInd,\r\n // _horInc,\r\n // _vertInc,\r\n // isVerticalChart,\r\n // }\r\n // );\r\n }\r\n };\r\n NonUniformHeatmapDrawingProvider.prototype.drawHeatmapInTypescript = function (nativeContext, xSpacings, ySpacings, zValues, xCalc, yCalc, params) {\r\n // create color data from zValues\r\n // create texture and fill it with pixel color data based on spacings\r\n var horStartInd = params.horStartInd, horInc = params.horInc, vertStartInd = params.vertStartInd, vertInc = params.vertInc, horCellCount = params.horCellCount, vertCellCount = params.vertCellCount, heatmapStartX = params.heatmapStartX, heatmapStartY = params.heatmapStartY, heatmapWidth = params.heatmapWidth, heatmapHeight = params.heatmapHeight, opacity = params.opacity, colorGradientScale = params.colorGradientScale, colorMin = params.colorMin, colorMax = params.colorMax, isVerticalChart = params.isVerticalChart, arrayWidth = params.arrayWidth, arrayHeight = params.arrayHeight, xCellSizes = params.xCellSizes, yCellSizes = params.yCellSizes, seriesViewRect = params.seriesViewRect;\r\n var seriesXRangeMin = xSpacings[0];\r\n var seriesXRangeMax = xSpacings[xSpacings.length - 1];\r\n var seriesYRangeMin = ySpacings[0];\r\n var seriesYRangeMax = ySpacings[ySpacings.length - 1];\r\n var xMinValue = Math.max(seriesXRangeMin, xCalc.visibleMin);\r\n var xMaxValue = Math.min(seriesXRangeMax, xCalc.visibleMax);\r\n var yMinValue = Math.max(seriesYRangeMin, yCalc.visibleMin);\r\n var yMaxValue = Math.min(seriesYRangeMax, yCalc.visibleMax);\r\n var hasFlippedX = !xCalc.hasFlippedCoordinates;\r\n var hasFlippedY = yCalc.hasFlippedCoordinates;\r\n var xMinCoordinate = xCalc.getCoordinate(hasFlippedX ? xMaxValue : xMinValue);\r\n var xMaxCoordinate = xCalc.getCoordinate(hasFlippedX ? xMinValue : xMaxValue);\r\n var yMinCoordinate = yCalc.getCoordinate(hasFlippedY ? yMaxValue : yMinValue);\r\n var yMaxCoordinate = yCalc.getCoordinate(hasFlippedY ? yMinValue : yMaxValue);\r\n var visibleTextureWidth = Math.ceil(Math.abs(xMinCoordinate - xMaxCoordinate));\r\n var visibleTextureHeight = Math.ceil(Math.abs(yMinCoordinate - yMaxCoordinate));\r\n var heatmapRect = new Rect_1.Rect(heatmapStartX, heatmapStartY, heatmapWidth, heatmapHeight);\r\n // calculates cell offsets in pixels from cell sizes\r\n var _a = (0, HeatmapHelpers_1.calculateOffsets)(heatmapRect, isVerticalChart, xCellSizes, yCellSizes, horStartInd, horCellCount, horInc, vertStartInd, vertCellCount, vertInc, seriesViewRect), horCellOffsets = _a.horCellOffsets, vertCellOffsets = _a.vertCellOffsets;\r\n var texture = this.calculateHeatmapTexture({\r\n xStartInd: horStartInd,\r\n textureWidth: visibleTextureWidth,\r\n xInc: horInc,\r\n yStartInd: vertStartInd,\r\n textureHeight: visibleTextureHeight,\r\n yInc: vertInc,\r\n zValues: zValues,\r\n webAssemblyContext: this.webAssemblyContext,\r\n colorMap: colorGradientScale,\r\n opacity: opacity,\r\n horCellCount: horCellCount,\r\n vertCellCount: vertCellCount,\r\n horCellOffsets: horCellOffsets,\r\n vertCellOffsets: vertCellOffsets,\r\n colorMin: colorMin,\r\n colorMax: colorMax,\r\n arrayWidth: arrayWidth,\r\n arrayHeight: arrayHeight,\r\n fillValuesOutOfRange: this.parentSeries.fillValuesOutOfRange,\r\n useInterpolation: this.parentSeries.useLinearTextureFiltering\r\n });\r\n if (isVerticalChart) {\r\n nativeContext.PushMatrix();\r\n nativeContext.PushState();\r\n nativeContext.Rotate(-90);\r\n var xTrans = hasFlippedX ? -xMinCoordinate : -visibleTextureWidth - xMinCoordinate;\r\n nativeContext.Translate(xTrans, 0);\r\n var x = hasFlippedX ? 0 : visibleTextureWidth;\r\n var width = hasFlippedX ? visibleTextureWidth : 0;\r\n var y = yMinCoordinate;\r\n var height = yMaxCoordinate;\r\n nativeContext.DrawTexture(texture, x - visibleTextureWidth, y - visibleTextureHeight, visibleTextureWidth, visibleTextureHeight);\r\n // Uniform Heatmap approach\r\n // nativeContext.DrawTexture(texture, x, y, width, height);\r\n nativeContext.PopMatrix();\r\n nativeContext.PopState();\r\n return;\r\n }\r\n // TODO figure out why yMaxCoordinate is used here\r\n nativeContext.DrawTexture(texture, xMinCoordinate, yMaxCoordinate, visibleTextureWidth, visibleTextureHeight);\r\n };\r\n // TODO probably this is overcomplicated\r\n NonUniformHeatmapDrawingProvider.prototype.calculateHeatmapTexture = function (colorDataParams) {\r\n if (!this.getMemoizedHeatmapTexture) {\r\n // checks if arguments have changed by value/reference equality for each argument\r\n // except horizontal and vertical offsets, where arrays are compared per value\r\n var customCompare = function (_a, _b) {\r\n var _c = _a, _d = _c[0], currentHorCellOffsets = _d.horCellOffsets, currVertCellOffsets = _d.vertCellOffsets, restCurrArgs = __rest(_d, [\"horCellOffsets\", \"vertCellOffsets\"]);\r\n var _e = _b[0], prevHorCellOffsets = _e.horCellOffsets, prevVertCellOffsets = _e.vertCellOffsets, restPrevArgs = __rest(_e, [\"horCellOffsets\", \"vertCellOffsets\"]);\r\n return (areArraysEqual(Object.values(restCurrArgs), Object.values(restPrevArgs)) &&\r\n areArraysEqual(currentHorCellOffsets, prevHorCellOffsets) &&\r\n areArraysEqual(currVertCellOffsets, prevVertCellOffsets));\r\n };\r\n this.getMemoizedHeatmapTexture = (0, memoize_1.memoize)(HeatmapHelpers_1.calculateHeatmapTexture, customCompare);\r\n }\r\n var areArraysEqual = function (arr1, arr2) {\r\n return !arr1.some(function (value, index) { return value !== arr2[index]; });\r\n };\r\n return this.getMemoizedHeatmapTexture(colorDataParams, this.colorDataVector, this.heatTextureCache, precision);\r\n };\r\n return NonUniformHeatmapDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.NonUniformHeatmapDrawingProvider = NonUniformHeatmapDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcSeriesDrawingProvider = exports.EOhlcDrawingMode = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar BrushCache_1 = require(\"../../../Drawing/BrushCache\");\r\nvar Pen2DCache_1 = require(\"../../../Drawing/Pen2DCache\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\nvar EOhlcDrawingMode;\r\n(function (EOhlcDrawingMode) {\r\n EOhlcDrawingMode[\"Candles\"] = \"Candles\";\r\n EOhlcDrawingMode[\"Ohlc\"] = \"Ohlc\";\r\n})(EOhlcDrawingMode = exports.EOhlcDrawingMode || (exports.EOhlcDrawingMode = {}));\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link FastOhlcRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar OhlcSeriesDrawingProvider = /** @class */ (function (_super) {\r\n __extends(OhlcSeriesDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link OhlcSeriesDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link FastOhlcRenderableSeries} which this drawing provider is attached to\r\n * @param drawingMode the drawing mode {@link EOhlcDrawingMode}\r\n */\r\n function OhlcSeriesDrawingProvider(webAssemblyContext, parentSeries, drawingMode) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries) || this;\r\n _this.drawingMode = drawingMode;\r\n _this.nativeDrawingProvider = new _this.webAssemblyContext.SCRTCandlestickSeriesDrawingProvider();\r\n _this.args = new _this.webAssemblyContext.SCRTOhlcDrawingParams();\r\n var strokeThickness = parentSeries.strokeThickness, strokeUp = parentSeries.strokeUp, strokeDown = parentSeries.strokeDown, opacity = parentSeries.opacity;\r\n var candlestickSeries = parentSeries;\r\n _this.strokeUpPenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.strokeDownPenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.brushUpCache = new BrushCache_1.BrushCache(webAssemblyContext);\r\n _this.brushDownCache = new BrushCache_1.BrushCache(webAssemblyContext);\r\n (0, Pen2DCache_1.createPenInCache)(_this.strokeUpPenCache, strokeUp, strokeThickness, opacity);\r\n (0, Pen2DCache_1.createPenInCache)(_this.strokeDownPenCache, strokeDown, strokeThickness, opacity);\r\n if (candlestickSeries.brushUp) {\r\n (0, BrushCache_1.createBrushInCache)(_this.brushUpCache, candlestickSeries.brushUp, opacity);\r\n }\r\n if (candlestickSeries.brushDown) {\r\n (0, BrushCache_1.createBrushInCache)(_this.brushDownCache, candlestickSeries.brushDown, opacity);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n OhlcSeriesDrawingProvider.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.STROKE_UP);\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.STROKE_DOWN);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OhlcSeriesDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n _super.prototype.onSeriesPropertyChange.call(this, propertyName);\r\n var _a = this.parentSeries, strokeThickness = _a.strokeThickness, strokeUp = _a.strokeUp, strokeDown = _a.strokeDown, opacity = _a.opacity;\r\n if (propertyName === constants_1.PROPERTY.STROKE_UP ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.OPACITY) {\r\n (0, Pen2DCache_1.createPenInCache)(this.strokeUpPenCache, strokeUp, strokeThickness, opacity);\r\n }\r\n if (propertyName === constants_1.PROPERTY.STROKE_DOWN ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.OPACITY) {\r\n (0, Pen2DCache_1.createPenInCache)(this.strokeDownPenCache, strokeDown, strokeThickness, opacity);\r\n }\r\n var candlestickSeries = this.parentSeries;\r\n if (propertyName === constants_1.PROPERTY.BRUSH_DOWN || propertyName === constants_1.PROPERTY.OPACITY) {\r\n (0, BrushCache_1.createBrushInCache)(this.brushDownCache, candlestickSeries === null || candlestickSeries === void 0 ? void 0 : candlestickSeries.brushDown, opacity);\r\n }\r\n if (propertyName === constants_1.PROPERTY.BRUSH_UP || propertyName === constants_1.PROPERTY.OPACITY) {\r\n (0, BrushCache_1.createBrushInCache)(this.brushUpCache, candlestickSeries === null || candlestickSeries === void 0 ? void 0 : candlestickSeries.brushUp, opacity);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OhlcSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var pointSeries = renderPassData.pointSeries;\r\n this.args.Reset();\r\n // Candles only requires brush up, down\r\n if (this.drawingMode === EOhlcDrawingMode.Candles) {\r\n var brushUp = (0, BrushCache_1.getScrtBrushFromCache)(this.brushUpCache);\r\n var brushDown = (0, BrushCache_1.getScrtBrushFromCache)(this.brushDownCache);\r\n if (!brushUp || !brushDown) {\r\n return;\r\n }\r\n this.args.SetBrushes(brushUp, brushDown);\r\n }\r\n var strokeUpPen = (0, Pen2DCache_1.getScrtPenFromCache)(this.strokeUpPenCache);\r\n var strokeDownPen = (0, Pen2DCache_1.getScrtPenFromCache)(this.strokeDownPenCache);\r\n // OHLC and Candle both require stroke up, down\r\n if (!strokeUpPen || !strokeDownPen) {\r\n return;\r\n }\r\n this.args.SetPens(strokeUpPen, strokeDownPen);\r\n // Paletting per point\r\n var neutralColor = \"#ffffffff\";\r\n _super.prototype.applyStrokeFillPaletting.call(this, neutralColor, undefined, neutralColor, undefined, this.parentSeries.opacity);\r\n this.args.SetPalettedColors(this.palettingState.palettedColors);\r\n this.args.forceShaderMethod = true;\r\n this.args.verticalChart = renderPassData.isVerticalChart;\r\n this.args.candleWidth = this.parentSeries.getDataPointWidth(renderPassData.xCoordinateCalculator, this.parentSeries.dataPointWidth);\r\n this.args.drawAsOhlc = this.drawingMode === EOhlcDrawingMode.Ohlc;\r\n var nativeContext = renderContext.getNativeContext();\r\n var viewRect = this.parentSeries.parentSurface.seriesViewRect;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValues = pointSeries.xValues;\r\n var openValues = pointSeries.openValues;\r\n var highValues = pointSeries.highValues;\r\n var lowValues = pointSeries.lowValues;\r\n var closeValues = pointSeries.closeValues;\r\n var _a = this.getStartAndCount(renderPassData, xValues), startIndex = _a.startIndex, count = _a.count;\r\n this.args.count = count;\r\n this.args.startIndex = startIndex;\r\n var _b = this.parentSeries.dataSeries, fifoCapacity = _b.fifoCapacity, fifoSweeping = _b.fifoSweeping, fifoSweepingGap = _b.fifoSweepingGap;\r\n var fifoStartIndex = pointSeries.fifoStartIndex;\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.count = fifoStartIndex;\r\n }\r\n // let sx = \"\";\r\n // let sy = \"\";\r\n // for (let i = 0; i < closeValues.size(); i++) {\r\n // sx += pointSeries.indexes.get(i) + \",\";\r\n // sy += closeValues.get(i).toFixed(2) + \",\";\r\n // }\r\n // console.log(sx);\r\n // console.log(sy);\r\n var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;\r\n this.args.SetValues(xDrawValues, openValues, highValues, lowValues, closeValues);\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args);\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.startIndex = Math.min(closeValues.size(), fifoStartIndex + fifoSweepingGap);\r\n this.args.count = Math.max(0, closeValues.size() - fifoStartIndex - fifoSweepingGap);\r\n if (this.args.count > 0) {\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OhlcSeriesDrawingProvider.prototype.delete = function () {\r\n this.strokeDownPenCache = (0, Deleter_1.deleteSafe)(this.strokeDownPenCache);\r\n this.strokeUpPenCache = (0, Deleter_1.deleteSafe)(this.strokeUpPenCache);\r\n this.brushUpCache = (0, Deleter_1.deleteSafe)(this.brushUpCache);\r\n this.brushDownCache = (0, Deleter_1.deleteSafe)(this.brushDownCache);\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n this.args = (0, Deleter_1.deleteSafe)(this.args);\r\n _super.prototype.delete.call(this);\r\n };\r\n return OhlcSeriesDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.OhlcSeriesDrawingProvider = OhlcSeriesDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PointMarkerDrawingProvider = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link IRenderableSeries | Renderable Series} which draw a\r\n * point-marker using our WebAssembly WebGL rendering engine\r\n */\r\nvar PointMarkerDrawingProvider = /** @class */ (function (_super) {\r\n __extends(PointMarkerDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link PointMarkerDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link IRenderableSeries} which this drawing provider is attached to\r\n * @param ySelector an optional Y-selector for choosing which y-values to use for drawing points\r\n * @param ySplineSelector an optional selector for choosing which y-animation values to use for drawing points\r\n */\r\n function PointMarkerDrawingProvider(webAssemblyContext, parentSeries, ySelector, ySplineSelector, xSelector) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries, ySelector, xSelector) || this;\r\n _this.ySplineValuesSelector = ySplineSelector === undefined ? function (rs) { return rs.ySplineValues; } : ySplineSelector;\r\n _this.nativeDrawingProvider = new _this.webAssemblyContext.SCRTScatterSeriesDrawingProvider();\r\n _this.xAnimationPointMarkerValues = new _this.webAssemblyContext.SCRTDoubleVector();\r\n _this.yAnimationPointMarkerValues = new _this.webAssemblyContext.SCRTDoubleVector();\r\n _this.args = new _this.webAssemblyContext.SCRTPointDrawingParams();\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n PointMarkerDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n // Deliberately empty\r\n };\r\n PointMarkerDrawingProvider.prototype.getProperties = function (parentSeries) {\r\n return parentSeries;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PointMarkerDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var _a, _b;\r\n var pointMarker = (_a = this.getProperties(this.parentSeries)) === null || _a === void 0 ? void 0 : _a.pointMarker;\r\n if (pointMarker === undefined) {\r\n return;\r\n }\r\n var spriteTexture, strokeMaskTexture;\r\n if (this.parentSeries.hasPointMarkerPaletteProvider()) {\r\n spriteTexture = pointMarker.getFillMask();\r\n strokeMaskTexture = pointMarker.getStrokeMask();\r\n }\r\n else {\r\n spriteTexture = pointMarker.getSprite();\r\n strokeMaskTexture = undefined;\r\n // DEBUG CODE: REMOVE AFTER DEVELOPMENT COMPLETE\r\n // renderContext.getNativeContext().DrawTexture(spriteTexture.getTexture(), 10, 10, 256, 256);\r\n // END DEBUG CODE\r\n }\r\n var pointSeries = renderPassData.pointSeries;\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValues = this.xSelector(pointSeries);\r\n var yValues = this.ySelector(pointSeries);\r\n // if (this.parentSeries.isSpline) {\r\n // const spline = this.parentSeries as any as ISpline;\r\n // if (spline.xSplineValues.size() > 0 && spline.ySplineValues.size() > 0) {\r\n // this.pointMarkerXYValuesFromSpline(\r\n // xValues.size(),\r\n // spline.xSplineValues,\r\n // this.ySplineValuesSelector(spline),\r\n // spline.interpolationPoints\r\n // );\r\n // xValues = this.xAnimationPointMarkerValues;\r\n // yValues = this.yAnimationPointMarkerValues;\r\n // }\r\n // }\r\n this.args.Reset();\r\n this.args.verticalChart = renderPassData.isVerticalChart;\r\n this.args.forceShaderMethod = true;\r\n this.args.SetSpriteTexture(spriteTexture.getTexture());\r\n if (strokeMaskTexture) {\r\n this.args.SetStrokeMask(strokeMaskTexture.getTexture());\r\n }\r\n var _c = this.parentSeries.dataSeries, fifoCapacity = _c.fifoCapacity, fifoSweeping = _c.fifoSweeping, fifoSweepingGap = _c.fifoSweepingGap;\r\n var fifoStartIndex = pointSeries.fifoStartIndex;\r\n if (pointMarker.lastPointOnly && yValues.size() > 0) {\r\n this.args.count = 1;\r\n this.args.startIndex =\r\n fifoSweeping && this.parentSeries.dataSeries.count() === fifoCapacity\r\n ? fifoStartIndex - 1\r\n : yValues.size() - 1;\r\n }\r\n else {\r\n var _d = this.getStartAndCount(renderPassData, xValues), startIndex = _d.startIndex, count = _d.count;\r\n this.args.count = count;\r\n this.args.startIndex = startIndex;\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {\r\n this.args.count = fifoStartIndex;\r\n }\r\n }\r\n // Paletting per point\r\n this.applyStrokeFillPaletting(pointMarker.stroke, undefined, pointMarker.fill, undefined, this.parentSeries.opacity);\r\n this.args.SetPalettedColors(this.palettingState.palettedColors);\r\n this.args.paletteStart = (_b = this.palettingState.paletteStartIndex) !== null && _b !== void 0 ? _b : 0;\r\n var nativeContext = renderContext.getNativeContext();\r\n this.drawPoints(nativeContext, isCategoryAxis ? pointSeries.indexes : xValues, yValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args, this.parentSeries.parentSurface.seriesViewRect);\r\n if (fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count() && !pointMarker.lastPointOnly) {\r\n this.args.startIndex = Math.min(yValues.size(), fifoStartIndex + fifoSweepingGap);\r\n this.args.count = Math.max(0, yValues.size() - fifoStartIndex - fifoSweepingGap);\r\n if (this.args.count > 0) {\r\n this.drawPoints(nativeContext, isCategoryAxis ? pointSeries.indexes : xValues, yValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args, this.parentSeries.parentSurface.seriesViewRect);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PointMarkerDrawingProvider.prototype.delete = function () {\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n this.xAnimationPointMarkerValues = (0, Deleter_1.deleteSafe)(this.xAnimationPointMarkerValues);\r\n this.yAnimationPointMarkerValues = (0, Deleter_1.deleteSafe)(this.yAnimationPointMarkerValues);\r\n this.args = (0, Deleter_1.deleteSafe)(this.args);\r\n _super.prototype.delete.call(this);\r\n };\r\n PointMarkerDrawingProvider.prototype.overridePaletteProviderColors = function (rs, xValue, yValue, index, opacity, metadata) {\r\n if (rs.hasPointMarkerPaletteProvider()) {\r\n var pointMarkerPaletteProvider = rs.paletteProvider;\r\n var colors = pointMarkerPaletteProvider.overridePointMarkerArgb(xValue, yValue, index, opacity, metadata);\r\n if (colors)\r\n return colors;\r\n }\r\n return { stroke: undefined, fill: undefined };\r\n };\r\n PointMarkerDrawingProvider.prototype.isGradientFillPaletting = function (rs) {\r\n return false;\r\n };\r\n PointMarkerDrawingProvider.prototype.drawPoints = function (nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args, viewRect) {\r\n this.nativeDrawingProvider.DrawPointsVec(nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args);\r\n };\r\n PointMarkerDrawingProvider.prototype.pointMarkerXYValuesFromSpline = function (size, xAnimationValues, yAnimationValues, interpolationPoints) {\r\n this.xAnimationPointMarkerValues.resize(size, 0);\r\n this.yAnimationPointMarkerValues.resize(size, 0);\r\n for (var i = 0; i < size - 1; i++) {\r\n var x = xAnimationValues.get((interpolationPoints + 1) * i);\r\n this.xAnimationPointMarkerValues.set(i, x);\r\n var y = yAnimationValues.get((interpolationPoints + 1) * i);\r\n this.yAnimationPointMarkerValues.set(i, y);\r\n }\r\n var lastIndex = yAnimationValues.size() - 1;\r\n this.xAnimationPointMarkerValues.set(size - 1, xAnimationValues.get(lastIndex));\r\n this.yAnimationPointMarkerValues.set(size - 1, yAnimationValues.get(lastIndex));\r\n };\r\n return PointMarkerDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.PointMarkerDrawingProvider = PointMarkerDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniformContoursDrawingProvider = void 0;\r\nvar app_1 = require(\"../../../../constants/app\");\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar TextureCache_1 = require(\"../../../Drawing/TextureCache\");\r\nvar NativeObject_1 = require(\"../../Helpers/NativeObject\");\r\nvar CanvasTexture_1 = require(\"../../TextureManager/CanvasTexture\");\r\nvar BaseHeatmapRenderableSeries_1 = require(\"../BaseHeatmapRenderableSeries\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link UniformContoursDrawingProvider} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar UniformContoursDrawingProvider = /** @class */ (function (_super) {\r\n __extends(UniformContoursDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link UniformContoursRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link UniformContoursDrawingProvider} which this drawing provider is attached to\r\n */\r\n function UniformContoursDrawingProvider(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries) || this;\r\n _this.heightsTextureCache = new TextureCache_1.TextureCache(webAssemblyContext);\r\n _this.onSeriesPropertyChange(constants_1.PROPERTY.DATA_SERIES);\r\n _this.onSeriesPropertyChange(constants_1.PROPERTY.COLOR_MAP);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformContoursDrawingProvider.prototype.delete = function () {\r\n this.heightsTextureCache = (0, Deleter_1.deleteSafe)(this.heightsTextureCache);\r\n this.heightData = (0, Deleter_1.deleteSafe)(this.heightData);\r\n this.paletteTexture = (0, Deleter_1.deleteSafe)(this.paletteTexture);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformContoursDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n var recreatePalette = propertyName === constants_1.PROPERTY.COLOR_MAP || propertyName.includes(BaseHeatmapRenderableSeries_1.COLOR_MAP_PREFIX);\r\n var recreateHeightmap = propertyName === constants_1.PROPERTY.DATA_SERIES;\r\n if (recreatePalette) {\r\n // DrawHeatmapRectWithContours(\"Delete/recreating paletteTexture\");\r\n this.paletteTexture = (0, Deleter_1.deleteSafe)(this.paletteTexture);\r\n if (this.parentSeries.colorMap && this.parentSeries.colorMap.gradientStops) {\r\n // create palette texture at size 256x1\r\n this.paletteTexture = this.createPaletteTexture(256, 1, this.parentSeries.colorMap.gradientStops);\r\n }\r\n else {\r\n this.paletteTexture = this.createPaletteTexture(256, 1, undefined);\r\n }\r\n }\r\n if (recreateHeightmap) {\r\n // console.log(\"Delete/recreating heightmap texture\");\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (dataSeries) {\r\n // create heightmap texture at same size as the dataSeries array\r\n var heightsTexture = this.heightsTextureCache.create(dataSeries.arrayWidth, dataSeries.arrayHeight, this.webAssemblyContext.eTSRTextureFormat.TSR_TEXTUREFORMAT_R32F);\r\n // Set whether to use interpolation for the Heatmap or not\r\n this.webAssemblyContext.SCRTSetTextureLinearSamplerEnabled(heightsTexture, true);\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformContoursDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n var _this = this;\r\n var _a, _b;\r\n var heightsTexture = (_a = this.heightsTextureCache) === null || _a === void 0 ? void 0 : _a.value;\r\n if (heightsTexture) {\r\n var dataSeries = this.parentSeries.dataSeries;\r\n this.webAssemblyContext.SCRTFillTextureFloat32(heightsTexture, dataSeries.arrayWidth, dataSeries.arrayHeight, dataSeries.getNormalizedVector((_b = this.parentSeries.colorMap) !== null && _b !== void 0 ? _b : this.getDefaultColorMap(dataSeries)));\r\n // DEBUG CODE: REMOVE AFTER DEVELOPMENT COMPLETE\r\n // renderContext.getNativeContext().DrawTexture(this.heightsTexture, 10, 100, 256, 256);\r\n // renderContext.getNativeContext().DrawTexture(this.paletteTexture.getTexture(), 310, 100, 256, 256);\r\n // END DEBUG CODE\r\n var cParams_1 = this.parentSeries.getContourDrawingParams();\r\n var isVerticalChart = renderPassData.isVerticalChart;\r\n var x_1 = renderPassData.xCoordinateCalculator.getCoordinate(cParams_1.xMin);\r\n var y_1 = renderPassData.yCoordinateCalculator.getCoordinate(cParams_1.yMin);\r\n var width_1 = renderPassData.xCoordinateCalculator.getCoordinate(cParams_1.xMax);\r\n var height_1 = renderPassData.yCoordinateCalculator.getCoordinate(cParams_1.yMax);\r\n var textureWidth = Math.abs(x_1 - width_1);\r\n var drawContours = function () {\r\n if (_this.parentSeries.minorsPerMajor > 0) {\r\n _this.drawContours(renderContext, x_1, y_1, width_1, height_1, cParams_1.zMin, cParams_1.zMax, cParams_1.minorStepZ, cParams_1.minorLineStyle);\r\n }\r\n _this.drawContours(renderContext, x_1, y_1, width_1, height_1, cParams_1.zMin, cParams_1.zMax, cParams_1.majorStepZ, cParams_1.majorLineStyle);\r\n };\r\n if (isVerticalChart) {\r\n var nativeContext = renderContext.getNativeContext();\r\n var hasFlippedXCoordinates = renderPassData.xCoordinateCalculator.hasFlippedCoordinates;\r\n nativeContext.PushMatrix();\r\n nativeContext.PushState();\r\n nativeContext.Rotate(-90);\r\n var xTrans = hasFlippedXCoordinates ? -textureWidth - x_1 : -x_1;\r\n nativeContext.Translate(xTrans, 0);\r\n x_1 = hasFlippedXCoordinates ? textureWidth : 0;\r\n width_1 = hasFlippedXCoordinates ? 0 : textureWidth;\r\n drawContours();\r\n nativeContext.PopMatrix();\r\n nativeContext.PopState();\r\n }\r\n else {\r\n drawContours();\r\n }\r\n }\r\n };\r\n UniformContoursDrawingProvider.prototype.drawContours = function (renderContext, x, y, width, height, zMin, zMax, zStep, lineStyle) {\r\n // Compute params for contours\r\n var floatParams = (0, NativeObject_1.getVector4)(this.webAssemblyContext, 0, 1, 0, 0);\r\n var contourParams = new this.webAssemblyContext.SCRTContourParams();\r\n var offset = Math.abs(zMin) < app_1.EPSILON ? 0.5 : 0.01;\r\n var strokeColor = (0, parseColor_1.parseColorToTArgb)(lineStyle.color);\r\n contourParams.SetColorVector(strokeColor.red / 255, strokeColor.green / 255, strokeColor.blue / 255, strokeColor.opacity / 255);\r\n contourParams.SetParamsAVector(lineStyle.strokeThickness, zStep / 2, // FOR SHADY should this be 1.0 / cParams.majorStepZ ? seems to have no effect\r\n offset, 0);\r\n contourParams.SetParamsBVector(zMin, zMax, 0, 0);\r\n // Draw major contour lines\r\n var nativeContext = renderContext.getNativeContext();\r\n // console.log(`viewRect: ${viewRect.x}, ${viewRect.y}, ${viewRect.width}, ${viewRect.height}`);\r\n // console.log(`contours bounds: ${startX}, ${startY}, ${endX}, ${endY}`);\r\n var heightsTexture = this.heightsTextureCache.value;\r\n nativeContext.DrawHeatmapRectWithContours(null, heightsTexture, x, y, width, height, floatParams, contourParams);\r\n contourParams === null || contourParams === void 0 ? void 0 : contourParams.delete();\r\n };\r\n UniformContoursDrawingProvider.prototype.computeHeightMap = function (textureHeight, textureWidth, zValues, isVerticalChart, xFlipped, yFlipped) {\r\n var _a;\r\n var arraySize = textureHeight * textureWidth;\r\n if (((_a = this.heightData) === null || _a === void 0 ? void 0 : _a.size()) !== arraySize) {\r\n // console.log(\"Resizing heightmap texture to \" + arraySize);\r\n this.heightData = (0, Deleter_1.deleteSafe)(this.heightData);\r\n this.heightData = new this.webAssemblyContext.FloatVector();\r\n this.heightData.resize(arraySize, 0);\r\n }\r\n for (var y = 0; y < textureHeight; y++) {\r\n for (var x = 0; x < textureWidth; x++) {\r\n var zValue = !isVerticalChart\r\n ? zValues[!yFlipped ? textureHeight - 1 - y : y][xFlipped ? textureWidth - x - 1 : x]\r\n : zValues[!yFlipped ? textureWidth - 1 - x : x][xFlipped ? textureHeight - y - 1 : y];\r\n // Todo: Set into a javascript array then bulk set the array on heightData\r\n this.heightData.set(y * textureWidth + x, isNaN(zValue) ? -1.0 : zValue);\r\n }\r\n }\r\n return this.heightData;\r\n };\r\n UniformContoursDrawingProvider.prototype.createPaletteTexture = function (width, height, gradientStops) {\r\n if (app_1.IS_TEST_ENV) {\r\n return undefined;\r\n }\r\n Guard_1.Guard.isTrue(width > 0, \"width must be greater than 0\");\r\n Guard_1.Guard.isTrue(height > 0, \"height must be greater than 0\");\r\n var canvasTexture = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, width, height);\r\n canvasTexture.clear();\r\n var ctx = canvasTexture.getContext();\r\n // BEGIN: Drawing gradient rectangle on canvas2D\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = width;\r\n var y2 = 0;\r\n if (gradientStops) {\r\n var gradient_1 = ctx.createLinearGradient(x1, y1, x2, y2);\r\n gradientStops.forEach(function (el) {\r\n gradient_1.addColorStop(el.offset, el.color);\r\n });\r\n ctx.fillStyle = gradient_1;\r\n }\r\n else {\r\n ctx.fillStyle = \"black\";\r\n }\r\n ctx.fillRect(0, 0, width, height);\r\n // END: Drawing gradient rectangle on canvas2D\r\n canvasTexture.copyTexture();\r\n return canvasTexture;\r\n };\r\n UniformContoursDrawingProvider.prototype.getDefaultColorMap = function (dataSeries) {\r\n var zRange = dataSeries.zRange;\r\n return { minimum: zRange.min, maximum: zRange.max };\r\n };\r\n return UniformContoursDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.UniformContoursDrawingProvider = UniformContoursDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniformHeatmapDrawingProvider = void 0;\r\nvar app_1 = require(\"../../../../constants/app\");\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar TextureCache_1 = require(\"../../../Drawing/TextureCache\");\r\nvar CanvasTexture_1 = require(\"../../TextureManager/CanvasTexture\");\r\nvar BaseHeatmapRenderableSeries_1 = require(\"../BaseHeatmapRenderableSeries\");\r\nvar constants_1 = require(\"../constants\");\r\nvar BaseSeriesDrawingProvider_1 = require(\"./BaseSeriesDrawingProvider\");\r\n/**\r\n * Used internally - a drawing provider performs drawing for a {@link UniformHeatmapRenderableSeries} using\r\n * our WebAssembly WebGL rendering engine\r\n */\r\nvar UniformHeatmapDrawingProvider = /** @class */ (function (_super) {\r\n __extends(UniformHeatmapDrawingProvider, _super);\r\n /**\r\n * Creates an instance of the {@link UniformHeatmapDrawingProvider}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries the parent {@link UniformHeatmapRenderableSeries} which this drawing provider is attached to\r\n */\r\n function UniformHeatmapDrawingProvider(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries) || this;\r\n _this.heatTextureCache = new TextureCache_1.TextureCache(webAssemblyContext);\r\n _this.recreatePalette();\r\n _this.onSeriesPropertyChange(constants_1.PROPERTY.DATA_SERIES);\r\n _this.onSeriesPropertyChange(constants_1.PROPERTY.COLOR_MAP);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapDrawingProvider.prototype.delete = function () {\r\n this.paletteTexture = (0, Deleter_1.deleteSafe)(this.paletteTexture);\r\n this.heatTextureCache = (0, Deleter_1.deleteSafe)(this.heatTextureCache);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapDrawingProvider.prototype.onSeriesPropertyChange = function (propertyName) {\r\n var recreatePalette = propertyName === constants_1.PROPERTY.COLOR_MAP ||\r\n propertyName.includes(BaseHeatmapRenderableSeries_1.COLOR_MAP_PREFIX) ||\r\n propertyName === constants_1.PROPERTY.OPACITY;\r\n var recreateHeat = propertyName === constants_1.PROPERTY.DATA_SERIES || propertyName === constants_1.PROPERTY.USE_LINEAR_TEXTURE_FILTERING;\r\n if (recreatePalette) {\r\n this.recreatePalette();\r\n }\r\n if (recreateHeat) {\r\n var dataSeries = this.parentSeries.dataSeries;\r\n var heatmapDataSeries = this.parentSeries;\r\n var useInterpolation = heatmapDataSeries.useLinearTextureFiltering;\r\n if (dataSeries) {\r\n // create heat texture at same size as the dataSeries array\r\n var heatTexture = this.heatTextureCache.create(dataSeries.arrayWidth, dataSeries.arrayHeight, this.webAssemblyContext.eTSRTextureFormat.TSR_TEXTUREFORMAT_R32F);\r\n // Set whether to use interpolation for the Heatmap or not\r\n this.webAssemblyContext.SCRTSetTextureLinearSamplerEnabled(heatTexture, useInterpolation);\r\n }\r\n }\r\n };\r\n UniformHeatmapDrawingProvider.prototype.seriesHasDataChanges = function () {\r\n this.onSeriesPropertyChange(constants_1.PROPERTY.DATA_SERIES);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapDrawingProvider.prototype.draw = function (renderContext, renderPassData) {\r\n // DEBUG CODE: REMOVE AFTER PALETTING ISSUE FIXED\r\n // console.log(\"Drawing heatmap!\");\r\n // if (this.paletteTexture) {\r\n // renderContext.getNativeContext().DrawTexture(this.paletteTexture.getTexture(), 0, 0, 256, 10);\r\n // }\r\n // END DEBUG CODE\r\n var _a;\r\n var isVerticalChart = renderPassData.isVerticalChart;\r\n // TODO: refactor inverted logic with hasFlippedCoordinates!!!\r\n // The logic is inverted here :)\r\n var hasFlippedXCoordinates = !renderPassData.xCoordinateCalculator.hasFlippedCoordinates;\r\n var hasFlippedYCoordinates = renderPassData.yCoordinateCalculator.hasFlippedCoordinates;\r\n var heatTexture = (_a = this.heatTextureCache) === null || _a === void 0 ? void 0 : _a.value;\r\n if (heatTexture) {\r\n var dataSeries = this.parentSeries.dataSeries;\r\n var zValuesVector = dataSeries.getNormalizedVector(this.parentSeries.colorMap, this.parentSeries.fillValuesOutOfRange);\r\n this.packedFloatParams = this.webAssemblyContext.SCRTFillTextureFloat32(heatTexture, dataSeries.arrayWidth, dataSeries.arrayHeight, zValuesVector);\r\n this.packedFloatParams.x = 0;\r\n this.packedFloatParams.y = 1;\r\n // DEBUG CODE: REMOVE AFTER DEVELOPMENT COMPLETE\r\n // renderContext.getNativeContext().DrawTexture(heatTexture, 10, 100, 256, 256);\r\n // renderContext.getNativeContext().DrawTexture(this.paletteTexture.getTexture(), 310, 100, 256, 256);\r\n // END DEBUG CODE\r\n var xRange = dataSeries.xRange;\r\n var yRange = dataSeries.yRange;\r\n var xMin = renderPassData.xCoordinateCalculator.getCoordinate(xRange.min);\r\n var yMin = renderPassData.yCoordinateCalculator.getCoordinate(yRange.min);\r\n var xMax = renderPassData.xCoordinateCalculator.getCoordinate(xRange.max);\r\n var yMax = renderPassData.yCoordinateCalculator.getCoordinate(yRange.max);\r\n var nativeContext = renderContext.getNativeContext();\r\n var viewRect = this.parentSeries.parentSurface.seriesViewRect;\r\n var textureWidth = Math.abs(xMin - xMax);\r\n if (isVerticalChart) {\r\n nativeContext.PushMatrix();\r\n nativeContext.PushState();\r\n nativeContext.Rotate(-90);\r\n var xTrans = hasFlippedXCoordinates ? -xMin : -textureWidth - xMin;\r\n nativeContext.Translate(xTrans, 0);\r\n var x = hasFlippedXCoordinates ? 0 : textureWidth;\r\n var width = hasFlippedXCoordinates ? textureWidth : 0;\r\n var y = yMin;\r\n var height = yMax;\r\n this.drawHeatmap(nativeContext, x, y, width, height);\r\n // Maybe to use nativeContext.Scale(-1, 1);???\r\n nativeContext.PopMatrix();\r\n nativeContext.PopState();\r\n }\r\n else {\r\n this.drawHeatmap(nativeContext, xMin, yMin, xMax, yMax);\r\n }\r\n }\r\n };\r\n UniformHeatmapDrawingProvider.prototype.createPaletteTexture = function (width, height, gradientStops, globalOpacity, hasNaNs) {\r\n if (app_1.IS_TEST_ENV) {\r\n return undefined;\r\n }\r\n Guard_1.Guard.isTrue(width > 0, \"width must be greater than 0\");\r\n Guard_1.Guard.isTrue(height > 0, \"height must be greater than 0\");\r\n Guard_1.Guard.notNull(gradientStops, \"gradientStops\");\r\n var canvasTexture = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, width, height);\r\n canvasTexture.clear();\r\n var ctx = canvasTexture.getContext();\r\n // Add transparent line for NaNs\r\n if (hasNaNs) {\r\n ctx.fillStyle = \"#ffffff00\";\r\n ctx.fillRect(0, 0, 1, height);\r\n }\r\n // BEGIN: Drawing gradient rectangle on canvas2D\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = width;\r\n var y2 = 0;\r\n var gradient = ctx.createLinearGradient(x1, y1, x2, y2);\r\n gradientStops.forEach(function (el) {\r\n gradient.addColorStop(el.offset, el.color);\r\n });\r\n ctx.fillStyle = gradient;\r\n ctx.globalAlpha = globalOpacity;\r\n var xStartForGradient = hasNaNs ? 1 : 0;\r\n ctx.fillRect(xStartForGradient, 0, width, height);\r\n // END: Drawing gradient rectangle on canvas2D\r\n canvasTexture.copyTexture();\r\n return canvasTexture;\r\n };\r\n UniformHeatmapDrawingProvider.prototype.recreatePalette = function () {\r\n var _a, _b;\r\n // TODO comsoder using generic solution for memoization\r\n var hasNaNs = (_a = this.parentSeries.dataSeries) === null || _a === void 0 ? void 0 : _a.hasNaNs;\r\n // check if palette texture should be recreated\r\n if (this.hasNaNs === hasNaNs &&\r\n this.opacity === this.parentSeries.opacity &&\r\n this.gradientStops === ((_b = this.parentSeries.colorMap) === null || _b === void 0 ? void 0 : _b.gradientStops)) {\r\n return;\r\n }\r\n this.paletteTexture = (0, Deleter_1.deleteSafe)(this.paletteTexture);\r\n if (this.parentSeries.colorMap && this.parentSeries.colorMap.gradientStops) {\r\n this.hasNaNs = hasNaNs;\r\n this.opacity = this.parentSeries.opacity;\r\n this.gradientStops = this.parentSeries.colorMap.gradientStops;\r\n // console.log(\"Creating palette texture\");\r\n // create palette texture at size 256x1\r\n this.paletteTexture = this.createPaletteTexture(256, 1, this.parentSeries.colorMap.gradientStops, this.parentSeries.opacity, hasNaNs);\r\n }\r\n };\r\n UniformHeatmapDrawingProvider.prototype.drawHeatmap = function (nativeContext, x, y, width, height) {\r\n // Draw the heatmap at the specified locations\r\n // TODO: figure out what todo with this TSRVector4\r\n var v4 = this.packedFloatParams;\r\n var contourParams = new this.webAssemblyContext.SCRTContourParams();\r\n var heatTexture = this.heatTextureCache.value;\r\n this.recreatePalette();\r\n // nativeContext.DrawHeatmapRect(this.paletteTexture.getTexture(), heatTexture, x, y, width, height, v4);\r\n nativeContext.DrawHeatmapRectWithContours(this.paletteTexture.getTexture(), // this.paletteTexture.getTexture\r\n heatTexture, x, y, width, height, v4, contourParams);\r\n contourParams.delete();\r\n v4.delete();\r\n };\r\n return UniformHeatmapDrawingProvider;\r\n}(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));\r\nexports.UniformHeatmapDrawingProvider = UniformHeatmapDrawingProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FastBandRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BaseBandRenderableSeries_1 = require(\"./BaseBandRenderableSeries\");\r\n/**\r\n * Defines a JavaScript Band-series or High-Low polygon fill chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a line series to a {@link SciChartSurface} you need to declare both the {@link FastBandRenderableSeries | RenderableSeries}\r\n * and a {@link XyyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyyDataSeries(wasmContext);\r\n * dataSeries.append(1,2,3);\r\n * dataSeries.append(2,3,4);\r\n * // Create the renderableSeries\r\n * const bandSeries = new FastBandRenderableSeries(wasmContext);\r\n * bandSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(bandSeries);\r\n * ```\r\n */\r\nvar FastBandRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastBandRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastBandRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IBandRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function FastBandRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.BandSeries;\r\n // Must be called here for the series type to be available\r\n if ((_a = _this.paletteProvider) === null || _a === void 0 ? void 0 : _a.onAttached) {\r\n (_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached(_this);\r\n }\r\n return _this;\r\n }\r\n return FastBandRenderableSeries;\r\n}(BaseBandRenderableSeries_1.BaseBandRenderableSeries));\r\nexports.FastBandRenderableSeries = FastBandRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FastBubbleRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar XyzPointSeriesWrapped_1 = require(\"../../Model/PointSeries/XyzPointSeriesWrapped\");\r\nvar EllipsePointMarker_1 = require(\"../PointMarkers/EllipsePointMarker\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar BubbleSeriesDrawingProvider_1 = require(\"./DrawingProviders/BubbleSeriesDrawingProvider\");\r\nvar BubbleSeriesHitTestProvider_1 = require(\"./HitTest/BubbleSeriesHitTestProvider\");\r\nvar BubbleSeriesDataLabelProvider_1 = require(\"./DataLabels/BubbleSeriesDataLabelProvider\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * Defines a bubble-series or JavaScript bubble chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a bubble series to a {@link SciChartSurface} you need to declare both the {@link FastBubbleRenderableSeries | RenderableSeries}\r\n * and a {@link XyzDataSeries | XyzDataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyzDataSeries(wasmContext);\r\n * dataSeries.append(1,2,3);\r\n * dataSeries.append(4,5,6);\r\n * // Create the renderableSeries\r\n * const bubbleSeries = new FastBubbleRenderableSeries(wasmContext);\r\n * bubbleSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(bubbleSeries);\r\n * ```\r\n */\r\nvar FastBubbleRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastBubbleRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastBubbleRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IBubbleRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function FastBubbleRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n /** @inheritDoc */\r\n _this.type = SeriesType_1.ESeriesType.BubbleSeries;\r\n _this.zMultiplierProperty = 1;\r\n _this.zMultiplierProperty = (_a = options === null || options === void 0 ? void 0 : options.zMultiplier) !== null && _a !== void 0 ? _a : _this.zMultiplierProperty;\r\n if (!_this.pointMarker) {\r\n _this.pointMarker = new EllipsePointMarker_1.EllipsePointMarker(webAssemblyContext, { width: 64, height: 64 });\r\n }\r\n // Must be called here for the series type to be available\r\n if ((_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached) {\r\n (_c = _this.paletteProvider) === null || _c === void 0 ? void 0 : _c.onAttached(_this);\r\n }\r\n _this.drawingProviders = [];\r\n _this.drawingProviders.push(new BubbleSeriesDrawingProvider_1.BubbleSeriesDrawingProvider(webAssemblyContext, _this));\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new BubbleSeriesDataLabelProvider_1.BubbleSeriesDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(FastBubbleRenderableSeries.prototype, \"paletteProvider\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.paletteProviderProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (paletteProvider) {\r\n this.setPaletteProvider(paletteProvider);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastBubbleRenderableSeries.prototype, \"zMultiplier\", {\r\n /**\r\n * Gets or sets the scale value of the bubble sizes\r\n */\r\n get: function () {\r\n return this.zMultiplierProperty;\r\n },\r\n /**\r\n * Gets or sets the scale value of the bubble sizes\r\n */\r\n set: function (value) {\r\n this.zMultiplierProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Z_MULTIPLIER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n FastBubbleRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.stroke === previousThemeProvider.lineSeriesColor) {\r\n this.stroke = themeProvider.lineSeriesColor;\r\n }\r\n };\r\n /**\r\n * Gets the bubble diameter in pixels for the point index, by looking up the Z-value in the\r\n * associated {@link XyzDataSeries}\r\n * @param pointIndex\r\n */\r\n FastBubbleRenderableSeries.prototype.getBubbleDiameter = function (pointIndex) {\r\n return this.dataSeries.getNativeZValues().get(pointIndex);\r\n };\r\n /**\r\n * Returns the {@link XyyDataSeries.getNativeZValues} for the associated {@link dataSeries}\r\n */\r\n FastBubbleRenderableSeries.prototype.getNativeZValues = function () {\r\n return this.dataSeries.getNativeZValues();\r\n };\r\n /** @inheritDoc */\r\n FastBubbleRenderableSeries.prototype.toPointSeries = function (resamplingParams) {\r\n return new XyzPointSeriesWrapped_1.XyzPointSeriesWrapped(this.dataSeries);\r\n };\r\n /** @inheritDoc */\r\n FastBubbleRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new BubbleSeriesHitTestProvider_1.BubbleSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n /** @inheritDoc */\r\n FastBubbleRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n zMultiplier: this.zMultiplier\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return FastBubbleRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.FastBubbleRenderableSeries = FastBubbleRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FastCandlestickRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar BaseOhlcRenderableSeries_1 = require(\"./BaseOhlcRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar OhlcSeriesDrawingProvider_1 = require(\"./DrawingProviders/OhlcSeriesDrawingProvider\");\r\n/**\r\n * Defines a JavaScript Candlestick stock-chart series in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a Candlestick series to a {@link SciChartSurface} you need to declare both the {@link FastCandlestickRenderableSeries | RenderableSeries}\r\n * and a {@link OhlcDataSeries | OhlcDataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new OhlcDataSeries(wasmContext);\r\n * dataSeries.append(dateValues, openValues, highValues, lowValues, closeValues);\r\n * // Create the renderableSeries\r\n * const ohlcSeries = new FastCandlestickRenderableSeries(wasmContext);\r\n * ohlcSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(ohlcSeries);\r\n * ```\r\n */\r\nvar FastCandlestickRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastCandlestickRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastCandlestickRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@linICandlestickRenderableSeriesOptionsns} applied when constructing the series type\r\n */\r\n function FastCandlestickRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.CandlestickSeries;\r\n _this.brushUp = (options === null || options === void 0 ? void 0 : options.brushUp) || SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.upBodyBrush;\r\n _this.brushDown = (options === null || options === void 0 ? void 0 : options.brushDown) || SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.downBodyBrush;\r\n // Must be called here for the series type to be available\r\n if ((_a = _this.paletteProvider) === null || _a === void 0 ? void 0 : _a.onAttached) {\r\n (_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached(_this);\r\n }\r\n _this.drawingProviders = [];\r\n _this.drawingProviders.push(new OhlcSeriesDrawingProvider_1.OhlcSeriesDrawingProvider(webAssemblyContext, _this, OhlcSeriesDrawingProvider_1.EOhlcDrawingMode.Candles));\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n FastCandlestickRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.brushUp === previousThemeProvider.upBodyBrush) {\r\n this.brushUp = themeProvider.upBodyBrush;\r\n }\r\n if (this.brushDown === previousThemeProvider.downBodyBrush) {\r\n this.brushDown = themeProvider.downBodyBrush;\r\n }\r\n };\r\n Object.defineProperty(FastCandlestickRenderableSeries.prototype, \"brushUp\", {\r\n /**\r\n * Gets or sets the fill when candlestick close is greater than open, as an HTML color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.brushUpProperty);\r\n },\r\n /**\r\n * Gets or sets the fill when candlestick close is greater than open, as an HTML color code\r\n */\r\n set: function (htmlColorCode) {\r\n this.brushUpProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.BRUSH_UP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastCandlestickRenderableSeries.prototype, \"brushDown\", {\r\n /**\r\n * Gets or sets the fill when candlestick close is less than open, as an HTML color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.brushDownProperty);\r\n },\r\n /**\r\n * Gets or sets the fill when candlestick close is less than open, as an HTML color code\r\n */\r\n set: function (htmlColorCode) {\r\n this.brushDownProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.BRUSH_DOWN);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n FastCandlestickRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n brushDown: this.brushDown,\r\n brushUp: this.brushUp\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n FastCandlestickRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n _super.prototype.resolveAutoColors.call(this, index, maxSeries, theme);\r\n if (this.brushUpProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(index, maxSeries, this.webAssemblyContext);\r\n this.brushUp = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"brushUp\", color);\r\n }\r\n var y1Index = (index + Math.floor(maxSeries / 2)) % maxSeries;\r\n if (this.brushDownProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(y1Index, maxSeries, this.webAssemblyContext);\r\n this.brushDown = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"brushDown\", color);\r\n }\r\n };\r\n return FastCandlestickRenderableSeries;\r\n}(BaseOhlcRenderableSeries_1.BaseOhlcRenderableSeries));\r\nexports.FastCandlestickRenderableSeries = FastCandlestickRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getXRange = exports.FastColumnRenderableSeries = void 0;\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar ColumnSeriesDataLabelProvider_1 = require(\"./DataLabels/ColumnSeriesDataLabelProvider\");\r\nvar ColumnSeriesDrawingProvider_1 = require(\"./DrawingProviders/ColumnSeriesDrawingProvider\");\r\nvar PointMarkerDrawingProvider_1 = require(\"./DrawingProviders/PointMarkerDrawingProvider\");\r\nvar ColumnSeriesHitTestProvider_1 = require(\"./HitTest/ColumnSeriesHitTestProvider\");\r\n/**\r\n * Defines a column-series or JavaScript column chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a column series to a {@link SciChartSurface} you need to declare both the {@link FastColumnRenderableSeries | RenderableSeries}\r\n * and a {@link XyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyDataSeries(wasmContext);\r\n * dataSeries.append(1,2);\r\n * dataSeries.append(1,2);\r\n * // Create the renderableSeries\r\n * const columnSeries = new FastColumnRenderableSeries(wasmContext);\r\n * columnSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(columnSeries);\r\n * ```\r\n */\r\nvar FastColumnRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastColumnRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastColumnRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IColumnRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function FastColumnRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n /** @inheritDoc */\r\n _this.type = SeriesType_1.ESeriesType.ColumnSeries;\r\n _this.fillProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.columnFillBrush;\r\n _this.zeroLineYProperty = 0;\r\n _this.dataPointWidthProperty = 0.8;\r\n _this.cornerRadiusProperty = 0;\r\n _this.fill = (_a = options === null || options === void 0 ? void 0 : options.fill) !== null && _a !== void 0 ? _a : _this.fillProperty;\r\n _this.zeroLineY = (_b = options === null || options === void 0 ? void 0 : options.zeroLineY) !== null && _b !== void 0 ? _b : _this.zeroLineYProperty;\r\n _this.dataPointWidthProperty = (_c = options === null || options === void 0 ? void 0 : options.dataPointWidth) !== null && _c !== void 0 ? _c : _this.dataPointWidthProperty;\r\n _this.fillLinearGradientProperty = (_d = options === null || options === void 0 ? void 0 : options.fillLinearGradient) !== null && _d !== void 0 ? _d : _this.fillLinearGradientProperty;\r\n _this.cornerRadiusProperty = (_e = options === null || options === void 0 ? void 0 : options.cornerRadius) !== null && _e !== void 0 ? _e : _this.cornerRadiusProperty;\r\n // Must be called here for the series type to be available\r\n if ((_f = _this.paletteProvider) === null || _f === void 0 ? void 0 : _f.onAttached) {\r\n (_g = _this.paletteProvider) === null || _g === void 0 ? void 0 : _g.onAttached(_this);\r\n }\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new ColumnSeriesDataLabelProvider_1.ColumnSeriesDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n _this.drawingProviders.push(new ColumnSeriesDrawingProvider_1.ColumnSeriesDrawingProvider(webAssemblyContext, _this));\r\n _this.drawingProviders.push(new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this));\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n FastColumnRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.fill === previousThemeProvider.columnFillBrush) {\r\n this.fill = themeProvider.columnFillBrush;\r\n }\r\n if (this.stroke === previousThemeProvider.columnLineColor) {\r\n this.stroke = themeProvider.columnLineColor;\r\n }\r\n };\r\n Object.defineProperty(FastColumnRenderableSeries.prototype, \"fill\", {\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.fillProperty);\r\n },\r\n set: function (htmlColorCode) {\r\n this.fillProperty = htmlColorCode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastColumnRenderableSeries.prototype, \"fillLinearGradient\", {\r\n /**\r\n * Gets or sets the fill as a gradient brush\r\n */\r\n get: function () {\r\n return this.fillLinearGradientProperty;\r\n },\r\n /**\r\n * Gets or sets the fill as a gradient brush\r\n */\r\n set: function (gradientBrushParams) {\r\n // We need this check, to prevent creating new Texture if we set the same value\r\n if (gradientBrushParams !== this.fillLinearGradientProperty) {\r\n this.fillLinearGradientProperty = gradientBrushParams;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL_LINEAR_GRADIENT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastColumnRenderableSeries.prototype, \"zeroLineY\", {\r\n /**\r\n * Gets or sets the Zero-line Y, the Y-value for the base of the columns. Default is 0\r\n */\r\n get: function () {\r\n return this.zeroLineYProperty;\r\n },\r\n /**\r\n * Gets or sets the Zero-line Y, the Y-value for the base of the columns. Default is 0\r\n */\r\n set: function (zeroLineY) {\r\n this.zeroLineYProperty = zeroLineY;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ZERO_LINE_Y);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastColumnRenderableSeries.prototype, \"dataPointWidth\", {\r\n /**\r\n * Gets or sets the width of columns as a fraction of available space. Valid values range from 0.0 - 1.0\r\n */\r\n get: function () {\r\n return this.dataPointWidthProperty;\r\n },\r\n /**\r\n * Gets or sets the width of columns as a fraction of available space. Valid values range from 0.0 - 1.0\r\n */\r\n set: function (dataPointWidth) {\r\n this.dataPointWidthProperty = dataPointWidth;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DATA_POINT_WIDTH);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastColumnRenderableSeries.prototype, \"cornerRadius\", {\r\n /**\r\n * Gets or sets the corner radius, to give the columns rounded corners. Default is 0\r\n */\r\n get: function () {\r\n return this.cornerRadiusProperty;\r\n },\r\n /**\r\n * Gets or sets the corner radius, to give the columns rounded corners. Default is 0\r\n */\r\n set: function (cornerRadius) {\r\n this.cornerRadiusProperty = cornerRadius;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CORNER_RADIUS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n FastColumnRenderableSeries.prototype.getXRange = function () {\r\n var range = _super.prototype.getXRange.call(this);\r\n var count = this.dataSeries.count();\r\n return (0, exports.getXRange)(range, count, this.dataPointWidth);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n FastColumnRenderableSeries.prototype.getYRange = function (xVisibleRange, isXCategoryAxis) {\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n var yRange = _super.prototype.getYRange.call(this, xVisibleRange, isXCategoryAxis);\r\n if (!yRange) {\r\n return undefined;\r\n }\r\n return new NumberRange_1.NumberRange(Math.min(yRange.min, this.zeroLineY), Math.max(yRange.max, this.zeroLineY));\r\n };\r\n /** @inheritDoc */\r\n FastColumnRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n _super.prototype.resolveAutoColors.call(this, index, maxSeries, theme);\r\n if (this.fillProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(index, maxSeries, this.webAssemblyContext);\r\n this.fill = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"fill\", color);\r\n }\r\n };\r\n /** @inheritDoc */\r\n FastColumnRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n dataPointWidth: this.dataPointWidth,\r\n fill: this.fill,\r\n zeroLineY: this.zeroLineY,\r\n fillLinearGradient: this.fillLinearGradient,\r\n cornerRadius: this.cornerRadius\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n FastColumnRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new ColumnSeriesHitTestProvider_1.ColumnSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return FastColumnRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.FastColumnRenderableSeries = FastColumnRenderableSeries;\r\nvar getXRange = function (range, count, widthFraction) {\r\n if (count > 1) {\r\n var additionalValue = ((range.diff / (count - 1)) * widthFraction) / 2;\r\n return new NumberRange_1.NumberRange(range.min - additionalValue, range.max + additionalValue);\r\n }\r\n // TODO: figure out what to do if we have only one point\r\n return range;\r\n};\r\nexports.getXRange = getXRange;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.adjustRangeByStrokeThickness = exports.FastErrorBarsRenderableSeries = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar AxisType_1 = require(\"../../../types/AxisType\");\r\nvar DataPointWidthMode_1 = require(\"../../../types/DataPointWidthMode\");\r\nvar ErrorDirection_1 = require(\"../../../types/ErrorDirection\");\r\nvar ErrorMode_1 = require(\"../../../types/ErrorMode\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar IDataSeries_1 = require(\"../../Model/IDataSeries\");\r\nvar HlcPointSeriesWrapped_1 = require(\"../../Model/PointSeries/HlcPointSeriesWrapped\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar ErrorSeriesDrawingProvider_1 = require(\"./DrawingProviders/ErrorSeriesDrawingProvider\");\r\nvar PointMarkerDrawingProvider_1 = require(\"./DrawingProviders/PointMarkerDrawingProvider\");\r\nvar ErrorSeriesHitTestProvider_1 = require(\"./HitTest/ErrorSeriesHitTestProvider\");\r\n/**\r\n * Defines an Error Bars Series or Error Bars chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a line series to a {@link SciChartSurface} you need to declare both the {@link FastErrorBarsRenderableSeries | RenderableSeries}\r\n * and a {@link HlcDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new HlcDataSeries(wasmContext);\r\n * dataSeries.append(1, 2, 0,4, 0.5);\r\n * dataSeries.append(2, 3, 0,2, 0.3);\r\n * // Create the renderableSeries\r\n * const errorSeries = new FastErrorBarsRenderableSeries(wasmContext);\r\n * errorSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(errorSeries);\r\n * ```\r\n */\r\nvar FastErrorBarsRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastErrorBarsRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastErrorBarsRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IFastErrorBarsRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function FastErrorBarsRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.ErrorBarsSeries;\r\n _this.dataPointWidthProperty = 0.5;\r\n _this.dataPointWidthModeProperty = DataPointWidthMode_1.EDataPointWidthMode.Relative;\r\n _this.errorModeProperty = ErrorMode_1.EErrorMode.Both;\r\n _this.errorDirectionProperty = ErrorDirection_1.EErrorDirection.Vertical;\r\n _this.strokeDashArrayProperty = [];\r\n _this.drawWhiskersProperty = true;\r\n _this.drawConnectorProperty = true;\r\n _this.dataPointWidth = (_a = options === null || options === void 0 ? void 0 : options.dataPointWidth) !== null && _a !== void 0 ? _a : _this.dataPointWidthProperty;\r\n _this.errorModeProperty = (_b = options === null || options === void 0 ? void 0 : options.errorMode) !== null && _b !== void 0 ? _b : _this.errorModeProperty;\r\n _this.errorDirectionProperty = (_c = options === null || options === void 0 ? void 0 : options.errorDirection) !== null && _c !== void 0 ? _c : _this.errorDirectionProperty;\r\n _this.dataPointWidthMode = (_d = options === null || options === void 0 ? void 0 : options.dataPointWidthMode) !== null && _d !== void 0 ? _d : _this.dataPointWidthModeProperty;\r\n _this.strokeDashArray = (_e = options === null || options === void 0 ? void 0 : options.strokeDashArray) !== null && _e !== void 0 ? _e : _this.strokeDashArrayProperty;\r\n _this.drawWhiskers = (_f = options === null || options === void 0 ? void 0 : options.drawWhiskers) !== null && _f !== void 0 ? _f : _this.drawWhiskersProperty;\r\n _this.drawConnector = (_g = options === null || options === void 0 ? void 0 : options.drawConnector) !== null && _g !== void 0 ? _g : _this.drawConnectorProperty;\r\n // delete inherited drawing providers\r\n _this.drawingProviders = [\r\n new ErrorSeriesDrawingProvider_1.ErrorSeriesDrawingProvider(webAssemblyContext, _this),\r\n new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this)\r\n ];\r\n // Must be called here for the series type to be available\r\n if ((_h = _this.paletteProvider) === null || _h === void 0 ? void 0 : _h.onAttached) {\r\n (_j = _this.paletteProvider) === null || _j === void 0 ? void 0 : _j.onAttached(_this);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n FastErrorBarsRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.stroke === previousThemeProvider.lineSeriesColor) {\r\n this.stroke = themeProvider.lineSeriesColor;\r\n }\r\n };\r\n Object.defineProperty(FastErrorBarsRenderableSeries.prototype, \"strokeDashArray\", {\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n get: function () {\r\n return this.strokeDashArrayProperty;\r\n },\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n set: function (strokeDashArray) {\r\n this.strokeDashArrayProperty = strokeDashArray;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_DASH_ARRAY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastErrorBarsRenderableSeries.prototype, \"drawWhiskers\", {\r\n /**\r\n * Gets or sets whether Error Bars should be drawn with whiskers\r\n * @remarks enabled by default\r\n */\r\n get: function () {\r\n return this.drawWhiskersProperty;\r\n },\r\n /**\r\n * Gets or sets whether Error Bars should be drawn with whiskers\r\n * @remarks enabled by default\r\n */\r\n set: function (value) {\r\n this.drawWhiskersProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_WHISKERS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastErrorBarsRenderableSeries.prototype, \"drawConnector\", {\r\n /**\r\n * Gets or sets whether Error Bars should be drawn with a connector\r\n * @remarks enabled by default\r\n */\r\n get: function () {\r\n return this.drawConnectorProperty;\r\n },\r\n /**\r\n * Gets or sets whether Error Bars should be drawn with a connector\r\n * @remarks enabled by default\r\n */\r\n set: function (value) {\r\n this.drawConnectorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_CONNECTOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastErrorBarsRenderableSeries.prototype, \"paletteProvider\", {\r\n /**\r\n * Gets or sets the paletteProvider of Renderable Series\r\n * @remarks paletteProvider is not supported by {@link FastErrorBarsRenderableSeries}\r\n */\r\n get: function () {\r\n // TODO implement paletting for FastErrorBarsRenderableSeries\r\n return undefined;\r\n },\r\n set: function (paletteProvider) {\r\n throw new Error(\"paletteProvider is not supported by FastErrorBarsRenderableSeries!\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastErrorBarsRenderableSeries.prototype, \"dataPointWidth\", {\r\n /**\r\n * Gets or sets the width of error bar caps.\r\n * By default the value is treated as relative, valid values range from 0.0 - 1.0.\r\n * @remarks\r\n * To specify if the value should be treated as relative or absolute use {@link errorType}\r\n */\r\n get: function () {\r\n return this.dataPointWidthProperty;\r\n },\r\n /**\r\n * Gets or sets the width of error bar caps.\r\n * By default the value is treated as relative, valid values range from 0.0 - 1.0.\r\n * @remarks\r\n * To specify if the value should be treated as relative or absolute use {@link dataPointWidthMode}\r\n */\r\n set: function (value) {\r\n this.dataPointWidthProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DATA_POINT_WIDTH);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastErrorBarsRenderableSeries.prototype, \"errorMode\", {\r\n /**\r\n * Gets or sets the errorMode of Error Bars. Available values are {@link EErrorMode}\r\n */\r\n get: function () {\r\n return this.errorModeProperty;\r\n },\r\n /**\r\n * Gets or sets the errorMode of Error Bars. Available values are {@link EErrorMode}\r\n */\r\n set: function (value) {\r\n this.errorModeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ERROR_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastErrorBarsRenderableSeries.prototype, \"errorDirection\", {\r\n /**\r\n * Gets or sets the errorDirection of Error Bars. Available values are {@link EErrorDirection}\r\n */\r\n get: function () {\r\n return this.errorDirectionProperty;\r\n },\r\n /**\r\n * Gets or sets the errorDirection of Error Bars. Available values are {@link EErrorDirection}\r\n */\r\n set: function (value) {\r\n this.errorDirectionProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ERROR_DIRECTION);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastErrorBarsRenderableSeries.prototype, \"dataPointWidthMode\", {\r\n /**\r\n * Gets or sets the value mode for data point width. Available values are {@link EDataPointWidthMode}\r\n */\r\n get: function () {\r\n return this.dataPointWidthModeProperty;\r\n },\r\n /**\r\n * Gets or sets the value mode for data point width. Available values are {@link EDataPointWidthMode}\r\n */\r\n set: function (value) {\r\n this.dataPointWidthModeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DATA_POINT_WIDTH_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n FastErrorBarsRenderableSeries.prototype.delete = function () {\r\n _super.prototype.delete.call(this);\r\n this.pointSeries = (0, Deleter_1.deleteSafe)(this.pointSeries);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n FastErrorBarsRenderableSeries.prototype.getDataPointWidth = function (coordCalc, widthFraction) {\r\n var isVerticalDirection = this.errorDirection === ErrorDirection_1.EErrorDirection.Vertical;\r\n var values = isVerticalDirection ? this.dataSeries.getNativeXValues() : this.dataSeries.getNativeYValues();\r\n var seriesViewRectWidth = coordCalc.viewportDimension;\r\n var isCategoryAxis = coordCalc.isCategoryCoordinateCalculator;\r\n return (0, BaseRenderableSeries_1.getDataPointWidth)(values, coordCalc, seriesViewRectWidth, widthFraction, isCategoryAxis, this.webAssemblyContext);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n FastErrorBarsRenderableSeries.prototype.getXRange = function () {\r\n var _a;\r\n var isVerticalDirection = this.errorDirection === ErrorDirection_1.EErrorDirection.Vertical;\r\n var hasHighCap = this.errorMode !== ErrorMode_1.EErrorMode.Low;\r\n var hasLowCap = this.errorMode !== ErrorMode_1.EErrorMode.High;\r\n var range = this.dataSeries.getXRange(IDataSeries_1.EDataSeriesValueType.Default, !isVerticalDirection, hasHighCap, hasLowCap);\r\n if (this.xAxis.type === AxisType_1.EAxisType.LogarithmicAxis)\r\n return range;\r\n else\r\n return isVerticalDirection\r\n ? this.adjustRangeByDataPointWidth(range)\r\n : (0, exports.adjustRangeByStrokeThickness)(range, this.strokeThickness, (_a = this.parentSurface.seriesViewRect) === null || _a === void 0 ? void 0 : _a.width);\r\n };\r\n /** @inheritDoc */\r\n FastErrorBarsRenderableSeries.prototype.getYRange = function (xVisibleRange, isXCategoryAxis) {\r\n var _a;\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n var isHorizontalDirection = this.errorDirection === ErrorDirection_1.EErrorDirection.Horizontal;\r\n var hasHighCap = this.errorMode !== ErrorMode_1.EErrorMode.Low;\r\n var hasLowCap = this.errorMode !== ErrorMode_1.EErrorMode.High;\r\n var dataSeriesValueType = this.isRunningDataAnimation\r\n ? IDataSeries_1.EDataSeriesValueType.FinalAnimationValues\r\n : IDataSeries_1.EDataSeriesValueType.Default;\r\n var range = this.dataSeries.getWindowedYRange(xVisibleRange, true, isXCategoryAxis, dataSeriesValueType, this.yRangeMode, isHorizontalDirection, hasHighCap, hasLowCap);\r\n // Not sure how to adjust this sensibly without having the dataPointWidth in pixels. Not sure if we can reliably get a valid coordCacluator\r\n if (this.yAxis.type === AxisType_1.EAxisType.LogarithmicAxis)\r\n return range;\r\n else\r\n return isHorizontalDirection\r\n ? this.adjustRangeByDataPointWidth(range)\r\n : (0, exports.adjustRangeByStrokeThickness)(range, this.strokeThickness, (_a = this.parentSurface.seriesViewRect) === null || _a === void 0 ? void 0 : _a.height);\r\n };\r\n /** @inheritDoc */\r\n FastErrorBarsRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n dataPointWidth: this.dataPointWidth,\r\n dataPointWidthMode: this.dataPointWidthMode,\r\n errorDirection: this.errorDirection,\r\n errorMode: this.errorMode,\r\n drawWhiskers: this.drawWhiskers,\r\n drawConnector: this.drawConnector,\r\n strokeDashArray: this.strokeDashArray\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n FastErrorBarsRenderableSeries.prototype.toPointSeries = function (rp) {\r\n if (rp) {\r\n throw new Error(\"Error Bars Series don't support resampling!\");\r\n }\r\n else {\r\n return new HlcPointSeriesWrapped_1.HlcPointSeriesWrapped(this.dataSeries);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n FastErrorBarsRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new ErrorSeriesHitTestProvider_1.ErrorSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n FastErrorBarsRenderableSeries.prototype.adjustRangeByDataPointWidth = function (range) {\r\n var _a, _b, _c, _d;\r\n var count = this.dataSeries.count();\r\n if (count > 1) {\r\n var areaSize = this.errorDirection === ErrorDirection_1.EErrorDirection.Vertical\r\n ? (_b = (_a = this.parentSurface.seriesViewRect) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0\r\n : (_d = (_c = this.parentSurface.seriesViewRect) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0;\r\n var additionalValue = this.dataPointWidthMode === DataPointWidthMode_1.EDataPointWidthMode.Relative\r\n ? ((range.diff / (count - 1)) * this.dataPointWidth) / 2\r\n : areaSize &&\r\n (0, BaseRenderableSeries_1.getDelta)({\r\n range: range,\r\n areaSize: areaSize,\r\n pointSize: this.dataPointWidth\r\n });\r\n return new NumberRange_1.NumberRange(range.min - additionalValue, range.max + additionalValue);\r\n }\r\n // TODO: figure out what to do if we have only one point\r\n return range;\r\n };\r\n return FastErrorBarsRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.FastErrorBarsRenderableSeries = FastErrorBarsRenderableSeries;\r\n/** @ignore */\r\nvar adjustRangeByStrokeThickness = function (range, strokeThickness, areaSize) {\r\n if (areaSize === void 0) { areaSize = 0; }\r\n var delta = areaSize && (0, BaseRenderableSeries_1.getDelta)({ pointSize: strokeThickness, areaSize: areaSize, range: range });\r\n return new NumberRange_1.NumberRange(range.min - delta, range.max + delta);\r\n};\r\nexports.adjustRangeByStrokeThickness = adjustRangeByStrokeThickness;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FastImpulseRenderableSeries = void 0;\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar EllipsePointMarker_1 = require(\"../PointMarkers/EllipsePointMarker\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar FastColumnRenderableSeries_1 = require(\"./FastColumnRenderableSeries\");\r\nvar ImpulseSeriesHitTestProvider_1 = require(\"./HitTest/ImpulseSeriesHitTestProvider\");\r\n/**\r\n * Defines a impulse-series or JavaScript impulse chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a impulse series to a {@link SciChartSurface} you need to declare both the {@link FastImpulseRenderableSeries | RenderableSeries}\r\n * and a {@link XyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyDataSeries(wasmContext);\r\n * dataSeries.append(1,2);\r\n * dataSeries.append(1,2);\r\n * // Create the renderableSeries\r\n * const impulseSeries = new FastImpulseRenderableSeries(wasmContext);\r\n * impulseSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(impulseSeries);\r\n * ```\r\n */\r\nvar FastImpulseRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastImpulseRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastImpulseRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IImpulseRenderableSeries} applied when constructing the series type\r\n */\r\n function FastImpulseRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n /** @inheritDoc */\r\n _this.type = SeriesType_1.ESeriesType.ImpulseSeries;\r\n _this.impulseFillProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.impulseFillBrush;\r\n _this.impulseSizeProperty = 10;\r\n _this.impulseDataPointWidthProperty = 0;\r\n _this.impulseStrokeThicknessProperty = 1;\r\n _this.strokeThickness = (_a = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _a !== void 0 ? _a : _this.impulseStrokeThicknessProperty;\r\n _this.fill = (_b = options === null || options === void 0 ? void 0 : options.fill) !== null && _b !== void 0 ? _b : _this.impulseFillProperty;\r\n _this.size = (_c = options === null || options === void 0 ? void 0 : options.size) !== null && _c !== void 0 ? _c : _this.impulseSizeProperty;\r\n _this.stroke = (_d = options === null || options === void 0 ? void 0 : options.fill) !== null && _d !== void 0 ? _d : _this.impulseFillProperty;\r\n _this.dataPointWidth = _this.impulseDataPointWidthProperty;\r\n if (!(options === null || options === void 0 ? void 0 : options.pointMarker)) {\r\n _this.pointMarker = new EllipsePointMarker_1.EllipsePointMarker(webAssemblyContext, {\r\n width: _this.impulseSizeProperty,\r\n height: _this.impulseSizeProperty,\r\n fill: _this.fill,\r\n stroke: _this.fill\r\n });\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(FastImpulseRenderableSeries.prototype, \"fill\", {\r\n /**\r\n * Gets or sets the color of each impulse\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.impulseFillProperty);\r\n },\r\n set: function (htmlColorCode) {\r\n this.impulseFillProperty = htmlColorCode;\r\n this.stroke = htmlColorCode;\r\n if (this.pointMarker) {\r\n this.pointMarker.fill = htmlColorCode;\r\n this.pointMarker.stroke = htmlColorCode;\r\n }\r\n if (this.impulseFillProperty !== htmlColorCode) {\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FastImpulseRenderableSeries.prototype, \"size\", {\r\n /**\r\n * Gets or sets the size of each impulse point\r\n */\r\n get: function () {\r\n return this.impulseSizeProperty;\r\n },\r\n set: function (sizeParam) {\r\n this.impulseSizeProperty = sizeParam;\r\n if (this.pointMarker) {\r\n this.pointMarker.width = sizeParam;\r\n this.pointMarker.height = sizeParam;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n FastImpulseRenderableSeries.prototype.getXRange = function () {\r\n var _a, _b;\r\n var range = _super.prototype.getXRange.call(this);\r\n var delta = (0, BaseRenderableSeries_1.getDelta)({\r\n pointSize: this.size,\r\n areaSize: (_b = (_a = this.parentSurface.seriesViewRect) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0,\r\n range: range\r\n });\r\n return new NumberRange_1.NumberRange(range.min - delta, range.max + delta);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n FastImpulseRenderableSeries.prototype.getYRange = function (xVisibleRange, isXCategoryAxis) {\r\n var _a, _b;\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n var yRange = _super.prototype.getYRange.call(this, xVisibleRange, isXCategoryAxis);\r\n if (!yRange) {\r\n return undefined;\r\n }\r\n var delta = (0, BaseRenderableSeries_1.getDelta)({\r\n pointSize: this.size,\r\n areaSize: (_b = (_a = this.parentSurface.seriesViewRect) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0,\r\n range: yRange\r\n });\r\n return new NumberRange_1.NumberRange(yRange.min - delta, yRange.max + delta);\r\n };\r\n /** @inheritDoc */\r\n FastImpulseRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n fill: this.fill,\r\n size: this.size,\r\n zeroLineY: this.zeroLineY\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n FastImpulseRenderableSeries.prototype.applyTheme = function (themeProvider) {\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (this.fill === previousThemeProvider.impulseFillBrush) {\r\n this.fill = themeProvider.impulseFillBrush;\r\n }\r\n };\r\n /** @inheritDoc */\r\n FastImpulseRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n _super.prototype.resolveAutoColors.call(this, index, maxSeries, theme);\r\n if (this.impulseFillProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getStrokeColor(index, maxSeries, this.webAssemblyContext);\r\n this.fill = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"impulseFill\", color);\r\n }\r\n };\r\n /** @inheritDoc */\r\n FastImpulseRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new ImpulseSeriesHitTestProvider_1.ImpulseSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return FastImpulseRenderableSeries;\r\n}(FastColumnRenderableSeries_1.FastColumnRenderableSeries));\r\nexports.FastImpulseRenderableSeries = FastImpulseRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FastLineRenderableSeries = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BaseLineRenderableSeries_1 = require(\"./BaseLineRenderableSeries\");\r\n/**\r\n * Defines a line-series or line chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a line series to a {@link SciChartSurface} you need to declare both the {@link FastLineRenderableSeries | RenderableSeries}\r\n * and a {@link XyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyDataSeries(wasmContext);\r\n * dataSeries.append(1,2);\r\n * dataSeries.append(1,2);\r\n * // Create the renderableSeries\r\n * const lineSeries = new FastLineRenderableSeries(wasmContext);\r\n * lineSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(lineSeries);\r\n * ```\r\n */\r\nvar FastLineRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastLineRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastLineRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IFastLineRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function FastLineRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.LineSeries;\r\n // Must be called here for the series type to be available\r\n if ((_a = _this.paletteProvider) === null || _a === void 0 ? void 0 : _a.onAttached) {\r\n (_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached(_this);\r\n }\r\n return _this;\r\n }\r\n FastLineRenderableSeries.prototype.delete = function () {\r\n _super.prototype.delete.call(this);\r\n this.resamplerHelper = (0, Deleter_1.deleteSafe)(this.resamplerHelper);\r\n this.pointSeries = (0, Deleter_1.deleteSafe)(this.pointSeries);\r\n };\r\n return FastLineRenderableSeries;\r\n}(BaseLineRenderableSeries_1.BaseLineRenderableSeries));\r\nexports.FastLineRenderableSeries = FastLineRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FastMountainRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BaseMountainRenderableSeries_1 = require(\"./BaseMountainRenderableSeries\");\r\n/**\r\n * Defines a mountain/area series or JavaScript mountain chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a mountain series to a {@link SciChartSurface} you need to declare both the {@link FastMountainRenderableSeries | RenderableSeries}\r\n * and a {@link XyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyDataSeries(wasmContext);\r\n * dataSeries.append(1,2);\r\n * dataSeries.append(1,2);\r\n * // Create the renderableSeries\r\n * const mountainSeries = new FastMountainRenderableSeries(wasmContext);\r\n * mountainSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(mountainSeries);\r\n * ```\r\n */\r\nvar FastMountainRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastMountainRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastMountainRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IMountainRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function FastMountainRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.MountainSeries;\r\n // Must be called here for the series type to be available\r\n if ((_a = _this.paletteProvider) === null || _a === void 0 ? void 0 : _a.onAttached) {\r\n (_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached(_this);\r\n }\r\n return _this;\r\n }\r\n return FastMountainRenderableSeries;\r\n}(BaseMountainRenderableSeries_1.BaseMountainRenderableSeries));\r\nexports.FastMountainRenderableSeries = FastMountainRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FastOhlcRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BaseOhlcRenderableSeries_1 = require(\"./BaseOhlcRenderableSeries\");\r\nvar OhlcSeriesDrawingProvider_1 = require(\"./DrawingProviders/OhlcSeriesDrawingProvider\");\r\n/**\r\n * Defines a JavaScript OHLC stock-chart series in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add an OHLC series to a {@link SciChartSurface} you need to declare both the {@link FastOhlcRenderableSeries | RenderableSeries}\r\n * and a {@link OhlcDataSeries | OhlcDataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new OhlcDataSeries(wasmContext);\r\n * dataSeries.append(dateValues, openValues, highValues, lowValues, closeValues);\r\n * // Create the renderableSeries\r\n * const ohlcSeries = new FastOhlcRenderableSeries(wasmContext);\r\n * ohlcSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(ohlcSeries);\r\n * ```\r\n */\r\nvar FastOhlcRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastOhlcRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link FastOhlcRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IOhlcRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function FastOhlcRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.OhlcSeries;\r\n // Must be called here for the series type to be available\r\n if ((_a = _this.paletteProvider) === null || _a === void 0 ? void 0 : _a.onAttached) {\r\n (_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached(_this);\r\n }\r\n _this.drawingProviders = [];\r\n _this.drawingProviders.push(new OhlcSeriesDrawingProvider_1.OhlcSeriesDrawingProvider(webAssemblyContext, _this, OhlcSeriesDrawingProvider_1.EOhlcDrawingMode.Ohlc));\r\n return _this;\r\n }\r\n FastOhlcRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n dataPointWidth: this.dataPointWidth,\r\n strokeDown: this.strokeDown,\r\n strokeUp: this.strokeUp\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return FastOhlcRenderableSeries;\r\n}(BaseOhlcRenderableSeries_1.BaseOhlcRenderableSeries));\r\nexports.FastOhlcRenderableSeries = FastOhlcRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FastTextRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar ResamplingMode_1 = require(\"../../Numerics/Resamplers/ResamplingMode\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar TextDataLabelProvider_1 = require(\"./DataLabels/TextDataLabelProvider\");\r\nvar PointMarkerDrawingProvider_1 = require(\"./DrawingProviders/PointMarkerDrawingProvider\");\r\nvar TextSeriesHitTestProvider_1 = require(\"./HitTest/TextSeriesHitTestProvider\");\r\nvar FastTextRenderableSeries = /** @class */ (function (_super) {\r\n __extends(FastTextRenderableSeries, _super);\r\n function FastTextRenderableSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.TextSeries;\r\n _this.drawingProviders = [];\r\n _this.drawingProviders.push(new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this));\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new TextDataLabelProvider_1.TextDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n FastTextRenderableSeries.prototype.needsResampling = function (rp) {\r\n if (this.dataSeries.fifoCapacity) {\r\n rp.resamplingMode = ResamplingMode_1.EResamplingMode.None;\r\n this.resamplerHelper.resetAndFillBasicNativeArgs(rp, this.getNativeXValues());\r\n return true;\r\n }\r\n return false;\r\n };\r\n FastTextRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new TextSeriesHitTestProvider_1.TextSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return FastTextRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.FastTextRenderableSeries = FastTextRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GlowEffect = void 0;\r\nvar ShaderEffectType_1 = require(\"../../../types/ShaderEffectType\");\r\nvar ShaderEffect_1 = require(\"./ShaderEffect\");\r\n/**\r\n * Defines a glow shader effect that may be applied to a {@link BaseRenderableSeries | RenderableSeries}\r\n * @remarks\r\n * To apply a Glow effect to a chart series, use the following code:\r\n * ```ts\r\n * const effect = new GlowEffect(wasmContext, {\r\n * range: 1,\r\n * intensity: 1\r\n * });\r\n * const lineSeries = new FastLineRenderableSeries(wasmContext, { stroke, effect });\r\n * ```\r\n * Note that effects implement {@link IDeletable} and must be manually deleted to free webassembly / native memory\r\n */\r\nvar GlowEffect = /** @class */ (function (_super) {\r\n __extends(GlowEffect, _super);\r\n /**\r\n * Creates an instance of the {@link GlowEffect}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IShaderEffectOptions} to configure the effect\r\n */\r\n function GlowEffect(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, new webAssemblyContext.SCRTGlowEffect(), {\r\n range: (options === null || options === void 0 ? void 0 : options.range) || 1,\r\n intensity: (options === null || options === void 0 ? void 0 : options.intensity) || 1\r\n }) || this;\r\n _this.type = ShaderEffectType_1.EShaderEffectType.Glow;\r\n return _this;\r\n }\r\n return GlowEffect;\r\n}(ShaderEffect_1.ShaderEffect));\r\nexports.GlowEffect = GlowEffect;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HeatmapColorMap = void 0;\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\nvar PropertyChangedEventArgs_1 = require(\"../../../Core/PropertyChangedEventArgs\");\r\nvar constants_1 = require(\"./constants\");\r\nvar HeatmapColorMap = /** @class */ (function () {\r\n function HeatmapColorMap(options) {\r\n var _a, _b;\r\n this.minimumProperty = (_a = options === null || options === void 0 ? void 0 : options.minimum) !== null && _a !== void 0 ? _a : 0;\r\n this.maximumProperty = (_b = options === null || options === void 0 ? void 0 : options.maximum) !== null && _b !== void 0 ? _b : 100;\r\n this.gradientStops = (options === null || options === void 0 ? void 0 : options.gradientStops) || [\r\n { offset: 0, color: \"Red\" },\r\n { offset: 1, color: \"Green\" }\r\n ];\r\n this.propertyChanged = new EventHandler_1.EventHandler();\r\n this.calculateScaleFactor();\r\n }\r\n Object.defineProperty(HeatmapColorMap.prototype, \"gradientStops\", {\r\n get: function () {\r\n return this.gradientStopsProperty;\r\n },\r\n set: function (gradientStops) {\r\n this.gradientStopsProperty = gradientStops;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.GRADIENT_STOPS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatmapColorMap.prototype, \"minimum\", {\r\n get: function () {\r\n return this.minimumProperty;\r\n },\r\n set: function (minimum) {\r\n this.minimumProperty = minimum;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MINIMUM);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeatmapColorMap.prototype, \"maximum\", {\r\n get: function () {\r\n return this.maximumProperty;\r\n },\r\n set: function (maximum) {\r\n this.maximumProperty = maximum;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MAXIMUM);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n HeatmapColorMap.prototype.toJSON = function () {\r\n return {\r\n minimum: this.minimum,\r\n maximum: this.maximum,\r\n gradientStops: this.gradientStops\r\n };\r\n };\r\n HeatmapColorMap.prototype.notifyPropertyChanged = function (property) {\r\n var _a;\r\n (_a = this.propertyChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new PropertyChangedEventArgs_1.PropertyChangedEventArgs(property));\r\n };\r\n HeatmapColorMap.prototype.calculateScaleFactor = function () {\r\n this.scaleFactorProperty =\r\n (HeatmapColorMap.DefaultPrecision - 1) / Math.abs(this.maximumProperty - this.minimumProperty);\r\n };\r\n HeatmapColorMap.DefaultPrecision = 1000;\r\n return HeatmapColorMap;\r\n}());\r\nexports.HeatmapColorMap = HeatmapColorMap;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BandSeriesHitTestProvider = void 0;\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link BaseBandRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar BandSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(BandSeriesHitTestProvider, _super);\r\n function BandSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesHitTestProvider.prototype.hitTest = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var y1NativeValues = dataSeries.getNativeY1Values();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (dataSeries.dataDistributionCalculator.isSortedAscending && nearestPointIndex >= 0) {\r\n hitTestInfo.y1Value = y1NativeValues.get(nearestPointIndex);\r\n hitTestInfo.y1Coord = yCoordinateCalculator.getCoordinate(hitTestInfo.y1Value);\r\n var hitRes = hitTestHelpers_1.hitTestHelpers.testIsHitForBand(this.parentSeries.isDigitalLine, xCoordinateCalculator, yCoordinateCalculator, dataSeries.getNativeXValues(), function (index) { return yNativeValues.get(index); }, function (index) { return y1NativeValues.get(index); }, nearestPointIndex, xHitCoord, yHitCoord, dataSeries);\r\n hitTestInfo.isHit = hitRes.isHit;\r\n hitTestInfo.point2dataSeriesIndex = hitRes.secondPointIndex;\r\n if (hitRes.secondPointIndex !== undefined) {\r\n hitTestInfo.point2xValue = xNativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2xCoord = xCoordinateCalculator.getCoordinate(hitTestInfo.point2xValue);\r\n hitTestInfo.point2yValue = yNativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2yCoord = yCoordinateCalculator.getCoordinate(hitTestInfo.point2yValue);\r\n hitTestInfo.point2y1Value = y1NativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2y1Coord = yCoordinateCalculator.getCoordinate(hitTestInfo.point2y1Value);\r\n hitTestInfo.point2metadata = dataSeries.getMetadataAt(hitRes.secondPointIndex);\r\n }\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesHitTestProvider.prototype.hitTestDataPoint = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _b = hitTestHelpers_1.hitTestHelpers.getNearestXyyPoint(this.webAssemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius), nearestPointIndex = _b.nearestPointIndex, distance = _b.distance;\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, dataSeries.getNativeXValues(), dataSeries.getNativeYValues(), xHitCoord, yHitCoord, nearestPointIndex, hitTestRadius, distance);\r\n if (nearestPointIndex >= 0) {\r\n hitTestInfo.y1Value = dataSeries.getNativeY1Values().get(nearestPointIndex);\r\n hitTestInfo.y1Coord = yCoordinateCalculator.getCoordinate(hitTestInfo.y1Value);\r\n hitTestInfo.isHit =\r\n hitTestHelpers_1.hitTestHelpers.testIsHitForPoint(xCoordinateCalculator, yCoordinateCalculator, dataSeries.getNativeXValues(), dataSeries.getNativeYValues(), nearestPointIndex, xHitCoord, yHitCoord, hitTestRadius, dataSeries) ||\r\n hitTestHelpers_1.hitTestHelpers.testIsHitForPoint(xCoordinateCalculator, yCoordinateCalculator, dataSeries.getNativeXValues(), dataSeries.getNativeY1Values(), nearestPointIndex, xHitCoord, yHitCoord, hitTestRadius, dataSeries);\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BandSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var y1NativeValues = dataSeries.getNativeY1Values();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n hitTestInfo.y1Value = y1NativeValues.get(nearestPointIndex);\r\n hitTestInfo.y1Coord = yCoordinateCalculator.getCoordinate(hitTestInfo.y1Value);\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n if (dataSeries.dataDistributionCalculator.isSortedAscending && nearestPointIndex >= 0) {\r\n var dataSeriesCount = xNativeValues.size();\r\n var nearestXCoord = xCoordinateCalculator.getCoordinate(xCoordinateCalculator.isCategoryCoordinateCalculator\r\n ? nearestPointIndex\r\n : xNativeValues.get(nearestPointIndex));\r\n if (!(nearestPointIndex === dataSeriesCount - 1 &&\r\n (xCoordinateCalculator.hasFlippedCoordinates\r\n ? xHitCoord >= nearestXCoord\r\n : xHitCoord <= nearestXCoord)) &&\r\n !(nearestPointIndex === 0 &&\r\n (xCoordinateCalculator.hasFlippedCoordinates\r\n ? xHitCoord <= nearestXCoord\r\n : xHitCoord >= nearestXCoord))) {\r\n var hitRes = hitTestHelpers_1.hitTestHelpers.testIsHitForLine(xCoordinateCalculator, yCoordinateCalculator, xNativeValues, yNativeValues, nearestPointIndex, xHitCoord, yHitCoord, 0, dataSeries);\r\n hitTestInfo.point2dataSeriesIndex = hitRes.secondPointIndex;\r\n if (hitRes.secondPointIndex !== undefined) {\r\n hitTestInfo.point2xValue = xNativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2xCoord = xCoordinateCalculator.getCoordinate(hitTestInfo.point2xValue);\r\n hitTestInfo.point2yValue = yNativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2yCoord = yCoordinateCalculator.getCoordinate(hitTestInfo.point2yValue);\r\n hitTestInfo.point2y1Value = y1NativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2y1Coord = yCoordinateCalculator.getCoordinate(hitTestInfo.point2y1Value);\r\n hitTestInfo.point2metadata = dataSeries.getMetadataAt(hitRes.secondPointIndex);\r\n }\r\n }\r\n }\r\n return hitTestInfo;\r\n };\r\n return BandSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.BandSeriesHitTestProvider = BandSeriesHitTestProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseHitTestProvider = void 0;\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar translate_1 = require(\"../../../../utils/translate\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Defines the base class to Hit-Test Providers: classes which performs hit-tests on series, returning data-values at X-Y mouse locations\r\n */\r\nvar BaseHitTestProvider = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the {@link BaseHitTestProvider}\r\n * @param parentSeries the parent {@link IRenderableSeries | RenderableSeries} that this Hit-Test provider is attached to\r\n * @param wasmContext the {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n */\r\n function BaseHitTestProvider(parentSeries, wasmContext) {\r\n Guard_1.Guard.notNull(parentSeries, \"parentSeries\");\r\n this.parentSeries = parentSeries;\r\n this.webAssemblyContext = wasmContext;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHitTestProvider.prototype.update = function (renderPassData) {\r\n this.currentRenderPassData = renderPassData;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHitTestProvider.prototype.hitTestDataPoint = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearest = hitTestHelpers_1.hitTestHelpers.getNearestXyPoint(this.webAssemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearest.nearestPointIndex, hitTestRadius, nearest.distance);\r\n if (nearest.nearestPointIndex >= 0) {\r\n hitTestInfo.isHit = hitTestHelpers_1.hitTestHelpers.testIsHitForPoint(xCoordinateCalculator, yCoordinateCalculator, xNativeValues, yNativeValues, nearest.nearestPointIndex, xHitCoord, yHitCoord, hitTestRadius, dataSeries);\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHitTestProvider.prototype.hitTestForDataPointSelectionModifier = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n return this.hitTestDataPoint(x, y, hitTestRadius);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0, undefined);\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n if (dataSeries.dataDistributionCalculator.isSortedAscending && nearestPointIndex >= 0) {\r\n var dataSeriesCount = xNativeValues.size();\r\n var nearestXCoord = xCoordinateCalculator.getCoordinate(xCoordinateCalculator.isCategoryCoordinateCalculator\r\n ? nearestPointIndex\r\n : xNativeValues.get(nearestPointIndex));\r\n if (!(nearestPointIndex === dataSeriesCount - 1 &&\r\n (xCoordinateCalculator.hasFlippedCoordinates\r\n ? xHitCoord >= nearestXCoord\r\n : xHitCoord <= nearestXCoord)) &&\r\n !(nearestPointIndex === 0 &&\r\n (xCoordinateCalculator.hasFlippedCoordinates\r\n ? xHitCoord <= nearestXCoord\r\n : xHitCoord >= nearestXCoord))) {\r\n var hitRes = hitTestHelpers_1.hitTestHelpers.testIsHitForLine(xCoordinateCalculator, yCoordinateCalculator, xNativeValues, yNativeValues, nearestPointIndex, xHitCoord, yHitCoord, 0, dataSeries);\r\n hitTestInfo.point2dataSeriesIndex = hitRes.secondPointIndex;\r\n hitTestInfo.point2xValue = xNativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2xCoord = xCoordinateCalculator.getCoordinate(hitTestInfo.point2xValue);\r\n hitTestInfo.point2yValue = yNativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2yCoord = yCoordinateCalculator.getCoordinate(hitTestInfo.point2yValue);\r\n hitTestInfo.point2metadata = dataSeries.getMetadataAt(hitRes.secondPointIndex);\r\n }\r\n }\r\n return hitTestInfo;\r\n };\r\n BaseHitTestProvider.prototype.getTranslatedHitTestPoint = function (x, y) {\r\n if (!this.currentRenderPassData || x === undefined || y === undefined) {\r\n return undefined;\r\n }\r\n return (0, translate_1.translateFromCanvasToSeriesViewRect)(new Point_1.Point(x, y), this.parentSeries.parentSurface.seriesViewRect);\r\n };\r\n BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS = 7.07;\r\n return BaseHitTestProvider;\r\n}());\r\nexports.BaseHitTestProvider = BaseHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BubbleSeriesHitTestProvider = void 0;\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar DpiHelper_1 = require(\"../../TextureManager/DpiHelper\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link FastBubbleRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar BubbleSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(BubbleSeriesHitTestProvider, _super);\r\n function BubbleSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n BubbleSeriesHitTestProvider.prototype.hitTest = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = 0; }\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearest = hitTestHelpers_1.hitTestHelpers.getNearestXyPoint(this.webAssemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var zNativeValues = dataSeries.getNativeZValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearest.nearestPointIndex, hitTestRadius);\r\n if (nearest.nearestPointIndex >= 0) {\r\n hitTestInfo.zValue = zNativeValues.get(nearest.nearestPointIndex);\r\n var distance = (0, pointUtil_1.calcDistance)(xHitCoord, yHitCoord, hitTestInfo.xCoord, hitTestInfo.yCoord);\r\n hitTestInfo.isHit = distance < (hitTestInfo.zValue * DpiHelper_1.DpiHelper.PIXEL_RATIO) / 2 + hitTestRadius;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n var xFirstCoord = xCoordinateCalculator.getCoordinate(xFirstValue);\r\n var zFirstHalf = dataSeries.getNativeZValues().get(0) / 2;\r\n var xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n var xLastCoord = xCoordinateCalculator.getCoordinate(xLastValue);\r\n var zLastHalf = dataSeries.getNativeZValues().get(xNativeValues.size() - 1) / 2;\r\n if (xFirstCoord < xLastCoord) {\r\n hitTestInfo.isWithinDataBounds =\r\n xFirstCoord - zFirstHalf <= hitTestInfo.hitTestPoint.x &&\r\n hitTestInfo.hitTestPoint.x <= xLastCoord + zLastHalf;\r\n }\r\n else {\r\n hitTestInfo.isWithinDataBounds =\r\n xLastCoord - zLastHalf <= hitTestInfo.hitTestPoint.x &&\r\n hitTestInfo.hitTestPoint.x <= xFirstCoord + zFirstHalf;\r\n }\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BubbleSeriesHitTestProvider.prototype.hitTestDataPoint = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n return this.hitTest(x, y, hitTestRadius);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BubbleSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var zNativeValues = dataSeries.getNativeZValues();\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n hitTestInfo.zValue = zNativeValues.get(nearestPointIndex);\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n var xFirstCoord = xCoordinateCalculator.getCoordinate(xFirstValue);\r\n var zFirstHalf = dataSeries.getNativeZValues().get(0) / 2;\r\n var xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n var xLastCoord = xCoordinateCalculator.getCoordinate(xLastValue);\r\n var zLastHalf = dataSeries.getNativeZValues().get(xNativeValues.size() - 1) / 2;\r\n if (xFirstCoord < xLastCoord) {\r\n hitTestInfo.isWithinDataBounds =\r\n xFirstCoord - zFirstHalf <= hitTestInfo.hitTestPoint.x &&\r\n hitTestInfo.hitTestPoint.x <= xLastCoord + zLastHalf;\r\n }\r\n else {\r\n hitTestInfo.isWithinDataBounds =\r\n xLastCoord - zLastHalf <= hitTestInfo.hitTestPoint.x &&\r\n hitTestInfo.hitTestPoint.x <= xFirstCoord + zFirstHalf;\r\n }\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n return BubbleSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.BubbleSeriesHitTestProvider = BubbleSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ColumnSeriesHitTestProvider = void 0;\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link FastColumnRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar ColumnSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(ColumnSeriesHitTestProvider, _super);\r\n function ColumnSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ColumnSeriesHitTestProvider.prototype.hitTest = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n hitTestInfo.isHit = hitTestHelpers_1.hitTestHelpers.testIsHitForColumn(xCoordinateCalculator, yCoordinateCalculator, this.parentSeries, xNativeValues, yNativeValues, nearestPointIndex, xHitCoord, yHitCoord);\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ColumnSeriesHitTestProvider.prototype.hitTestForDataPointSelectionModifier = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n return this.hitTest(x, y);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ColumnSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n if (nearestPointIndex >= 0) {\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n var xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n var dataPointWidth = this.parentSeries.dataPointWidth;\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(hitTestInfo.hitTestPointValues.x, xFirstValue, xLastValue, dataPointWidth / 2);\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n return ColumnSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.ColumnSeriesHitTestProvider = ColumnSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ErrorSeriesHitTestProvider = void 0;\r\nvar ErrorDirection_1 = require(\"../../../../types/ErrorDirection\");\r\nvar ErrorMode_1 = require(\"../../../../types/ErrorMode\");\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link FastColumnRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar ErrorSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(ErrorSeriesHitTestProvider, _super);\r\n function ErrorSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesHitTestProvider.prototype.hitTest = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n // TODO handle horizontal direction\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n var res = hitTestHelpers_1.hitTestHelpers.testIsHitForErrorBars(xCoordinateCalculator, yCoordinateCalculator, this.parentSeries, xNativeValues, yNativeValues, nearestPointIndex, xHitCoord, yHitCoord);\r\n hitTestInfo.isHit = res.isHit;\r\n hitTestInfo.highValue = res.highValue;\r\n hitTestInfo.lowValue = res.lowValue;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesHitTestProvider.prototype.hitTestForDataPointSelectionModifier = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n return this.hitTest(x, y);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ErrorSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var lowNativeValues = dataSeries.getNativeLowValues();\r\n var highNativeValues = dataSeries.getNativeHighValues();\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n if (nearestPointIndex >= 0) {\r\n var isVerticalDirection = this.parentSeries.errorDirection === ErrorDirection_1.EErrorDirection.Vertical;\r\n hitTestInfo.highValue = highNativeValues.get(nearestPointIndex);\r\n hitTestInfo.lowValue = lowNativeValues.get(nearestPointIndex);\r\n var hasLowCap = this.parentSeries.errorMode !== ErrorMode_1.EErrorMode.High;\r\n var hasHighCap = this.parentSeries.errorMode !== ErrorMode_1.EErrorMode.Low;\r\n var xFirstValue = void 0;\r\n var xLastValue = void 0;\r\n if (isVerticalDirection) {\r\n xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n }\r\n else {\r\n xFirstValue = hasLowCap ? lowNativeValues.get(0) : xNativeValues.get(0);\r\n xLastValue = hasHighCap\r\n ? highNativeValues.get(xNativeValues.size() - 1)\r\n : xNativeValues.get(xNativeValues.size() - 1);\r\n }\r\n var dataPointWidthPx = this.parentSeries.getDataPointWidth(isVerticalDirection ? xCoordinateCalculator : yCoordinateCalculator, this.parentSeries.dataPointWidth);\r\n var halfRange = dataPointWidthPx / 2;\r\n var xCoord = xCoordinateCalculator.getCoordinate(hitTestInfo.hitTestPointValues.x);\r\n var xFirstCoord = xCoordinateCalculator.getCoordinate(xFirstValue);\r\n var xLastCoord = xCoordinateCalculator.getCoordinate(xLastValue);\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(xCoord, xFirstCoord - halfRange, xLastCoord + halfRange);\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n return ErrorSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.ErrorSeriesHitTestProvider = ErrorSeriesHitTestProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HitTestInfo = void 0;\r\n/**\r\n * The HitTestInfo class contains properties about the data-point under the mouse when a Hit-Test operation is performed\r\n */\r\nvar HitTestInfo = /** @class */ (function () {\r\n function HitTestInfo(renderableSeries, isEmpty) {\r\n if (isEmpty === void 0) { isEmpty = false; }\r\n this.isEmpty = isEmpty;\r\n this.associatedSeries = renderableSeries;\r\n }\r\n /**\r\n * The default empty {@link HitTestInfo} instance\r\n */\r\n HitTestInfo.empty = function () {\r\n return new HitTestInfo(undefined, true);\r\n };\r\n /**\r\n * Euclidean distance between the hitTestPoint and the nearest data-point\r\n */\r\n HitTestInfo.prototype.getEuclideanDistance = function () {\r\n var _a, _b;\r\n var dx = ((_a = this.hitTestPoint) === null || _a === void 0 ? void 0 : _a.x) - this.xCoord;\r\n var dy = ((_b = this.hitTestPoint) === null || _b === void 0 ? void 0 : _b.y) - this.yCoord;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Object.defineProperty(HitTestInfo.prototype, \"distance\", {\r\n /** The distance from the hitTest coordinate to the point */\r\n get: function () {\r\n if (this.distanceProperty !== undefined)\r\n return this.distanceProperty;\r\n return this.getEuclideanDistance();\r\n },\r\n set: function (value) {\r\n this.distanceProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return HitTestInfo;\r\n}());\r\nexports.HitTestInfo = HitTestInfo;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImpulseSeriesHitTestProvider = void 0;\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar DpiHelper_1 = require(\"../../TextureManager/DpiHelper\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link FastColumnRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar ImpulseSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(ImpulseSeriesHitTestProvider, _super);\r\n function ImpulseSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ImpulseSeriesHitTestProvider.prototype.hitTest = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestXy = hitTestHelpers_1.hitTestHelpers.getNearestXyPoint(this.webAssemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius);\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0 || nearestXy.nearestPointIndex >= 0) {\r\n hitTestInfo.isHit =\r\n hitTestHelpers_1.hitTestHelpers.testIsHitForImpulse(xCoordinateCalculator, yCoordinateCalculator, this.parentSeries, xNativeValues, yNativeValues, nearestPointIndex, xHitCoord, yHitCoord, hitTestRadius) ||\r\n hitTestHelpers_1.hitTestHelpers.testIsHitForPoint(xCoordinateCalculator, yCoordinateCalculator, xNativeValues, yNativeValues, nearestXy.nearestPointIndex, xHitCoord, yHitCoord, this.parentSeries.size, dataSeries);\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ImpulseSeriesHitTestProvider.prototype.hitTestForDataPointSelectionModifier = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n return this.hitTest(x, y, hitTestRadius);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ImpulseSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var _a;\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _b = this.currentRenderPassData, xCoordinateCalculator = _b.xCoordinateCalculator, yCoordinateCalculator = _b.yCoordinateCalculator, isVerticalChart = _b.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var markerWidth = ((_a = this.parentSeries.size) !== null && _a !== void 0 ? _a : 0) * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var markerDataWidth = Math.abs(xCoordinateCalculator.getDataValue(markerWidth) - xCoordinateCalculator.getDataValue(0));\r\n if (nearestPointIndex >= 0) {\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n var xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(hitTestInfo.hitTestPointValues.x, xFirstValue, xLastValue, markerDataWidth / 2);\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n return ImpulseSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.ImpulseSeriesHitTestProvider = ImpulseSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LineSeriesHitTestProvider = void 0;\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link BaseLineRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar LineSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(LineSeriesHitTestProvider, _super);\r\n function LineSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n LineSeriesHitTestProvider.prototype.hitTest = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var isVerticalChart = this.currentRenderPassData.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var isSortedData = this.parentSeries.dataSeries.dataDistributionCalculator.isSortedAscending;\r\n if (isSortedData) {\r\n return this.hitTestSorted(xHitCoord, yHitCoord, hitTestRadius);\r\n }\r\n else {\r\n return this.hitTestUnsorted(xHitCoord, yHitCoord, hitTestRadius);\r\n }\r\n };\r\n LineSeriesHitTestProvider.prototype.hitTestSorted = function (xHitCoord, yHitCoord, hitTestRadius) {\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, hitTestRadius, undefined);\r\n if (nearestPointIndex >= 0) {\r\n var dataSeriesCount = xNativeValues.size();\r\n var nearestXCoord = xCoordinateCalculator.getCoordinate(xCoordinateCalculator.isCategoryCoordinateCalculator\r\n ? nearestPointIndex\r\n : xNativeValues.get(nearestPointIndex));\r\n if ((nearestPointIndex === dataSeriesCount - 1 &&\r\n (xCoordinateCalculator.hasFlippedCoordinates\r\n ? xHitCoord >= nearestXCoord\r\n : xHitCoord <= nearestXCoord)) ||\r\n (nearestPointIndex === 0 &&\r\n (xCoordinateCalculator.hasFlippedCoordinates\r\n ? xHitCoord <= nearestXCoord\r\n : xHitCoord >= nearestXCoord))) {\r\n hitTestInfo.isHit = hitTestHelpers_1.hitTestHelpers.testIsHitForPoint(xCoordinateCalculator, yCoordinateCalculator, xNativeValues, yNativeValues, nearestPointIndex, xHitCoord, yHitCoord, hitTestRadius, dataSeries);\r\n }\r\n else {\r\n var hitRes = hitTestHelpers_1.hitTestHelpers.testIsHitForLine(xCoordinateCalculator, yCoordinateCalculator, xNativeValues, yNativeValues, nearestPointIndex, xHitCoord, yHitCoord, hitTestRadius, dataSeries);\r\n hitTestInfo.isHit = hitRes.isHit;\r\n hitTestInfo.point2dataSeriesIndex = hitRes.secondPointIndex;\r\n hitTestInfo.point2xValue = xNativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2xCoord = xCoordinateCalculator.getCoordinate(hitTestInfo.point2xValue);\r\n hitTestInfo.point2yValue = yNativeValues.get(hitRes.secondPointIndex);\r\n hitTestInfo.point2yCoord = yCoordinateCalculator.getCoordinate(hitTestInfo.point2yValue);\r\n hitTestInfo.point2metadata = dataSeries.getMetadataAt(hitRes.secondPointIndex);\r\n }\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n LineSeriesHitTestProvider.prototype.hitTestUnsorted = function (xHitCoord, yHitCoord, hitTestRadius) {\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearest = hitTestHelpers_1.hitTestHelpers.getNearestXyPoint(this.webAssemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearest.nearestPointIndex, hitTestRadius, nearest.distance);\r\n if (nearest.nearestPointIndex >= 0) {\r\n var dataSeriesCount = xNativeValues.size();\r\n var minX = Number.MAX_VALUE;\r\n var maxX = Number.MIN_VALUE;\r\n var minY = Number.MAX_VALUE;\r\n var maxY = Number.MIN_VALUE;\r\n for (var i = 0; i < dataSeriesCount; i++) {\r\n var x = xNativeValues.get(i);\r\n var y = yNativeValues.get(i);\r\n minX = x < minX ? x : minX;\r\n maxX = x > maxX ? x : maxX;\r\n minY = y < minY ? y : minY;\r\n maxY = y > maxY ? y : maxY;\r\n }\r\n hitTestInfo.isWithinDataBounds =\r\n minX <= hitTestInfo.hitTestPointValues.x &&\r\n hitTestInfo.hitTestPointValues.x <= maxX &&\r\n minY <= hitTestInfo.hitTestPointValues.y &&\r\n hitTestInfo.hitTestPointValues.y <= maxY;\r\n // Test for the point\r\n var distance = (0, pointUtil_1.calcDistance)(xHitCoord, yHitCoord, hitTestInfo.xCoord, hitTestInfo.yCoord);\r\n if (distance < hitTestRadius) {\r\n hitTestInfo.isHit = true;\r\n return hitTestInfo;\r\n }\r\n // Test for lines\r\n var minDistance = Number.MAX_VALUE;\r\n var minDistanceIndex = -1;\r\n for (var i = 0; i < dataSeriesCount - 1; i++) {\r\n var x1Value = xNativeValues.get(i);\r\n var y1Value = yNativeValues.get(i);\r\n var x2Value = xNativeValues.get(i + 1);\r\n var y2Value = yNativeValues.get(i + 1);\r\n var x1Coord = xCoordinateCalculator.getCoordinate(x1Value);\r\n var y1Coord = yCoordinateCalculator.getCoordinate(y1Value);\r\n var x2Coord = xCoordinateCalculator.getCoordinate(x2Value);\r\n var y2Coord = yCoordinateCalculator.getCoordinate(y2Value);\r\n var lineSegmentLength = (0, pointUtil_1.calcDistance)(x1Coord, y1Coord, x2Coord, y2Coord);\r\n var distanceToPoint1 = (0, pointUtil_1.calcDistance)(x1Coord, y1Coord, xHitCoord, yHitCoord);\r\n var distanceToPoint2 = (0, pointUtil_1.calcDistance)(x2Coord, y2Coord, xHitCoord, yHitCoord);\r\n if (distanceToPoint1 <= lineSegmentLength + hitTestRadius &&\r\n distanceToPoint2 <= lineSegmentLength + hitTestRadius) {\r\n var distanceToLine = (0, pointUtil_1.calcDistanceFromLine)(xHitCoord, yHitCoord, x1Coord, y1Coord, x2Coord, y2Coord);\r\n if (distanceToLine <= minDistance) {\r\n minDistance = distanceToLine;\r\n minDistanceIndex = i;\r\n }\r\n }\r\n }\r\n if (minDistanceIndex !== -1) {\r\n hitTestInfo.dataSeriesIndex = minDistanceIndex;\r\n hitTestInfo.xValue = xNativeValues.get(minDistanceIndex);\r\n hitTestInfo.xCoord = xCoordinateCalculator.getCoordinate(hitTestInfo.xValue);\r\n hitTestInfo.yValue = yNativeValues.get(minDistanceIndex);\r\n hitTestInfo.yCoord = yCoordinateCalculator.getCoordinate(hitTestInfo.yValue);\r\n hitTestInfo.point2dataSeriesIndex = minDistanceIndex + 1;\r\n hitTestInfo.point2xValue = xNativeValues.get(minDistanceIndex + 1);\r\n hitTestInfo.point2xCoord = xCoordinateCalculator.getCoordinate(hitTestInfo.point2xValue);\r\n hitTestInfo.point2yValue = yNativeValues.get(minDistanceIndex + 1);\r\n hitTestInfo.point2yCoord = yCoordinateCalculator.getCoordinate(hitTestInfo.point2yValue);\r\n hitTestInfo.isHit = minDistance <= hitTestRadius;\r\n hitTestInfo.point2metadata = dataSeries.getMetadataAt(minDistanceIndex + 1);\r\n return hitTestInfo;\r\n }\r\n }\r\n hitTestInfo.isHit = false;\r\n return hitTestInfo;\r\n };\r\n return LineSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.LineSeriesHitTestProvider = LineSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MountainSeriesHitTestProvider = void 0;\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link BaseMountainRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar MountainSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(MountainSeriesHitTestProvider, _super);\r\n function MountainSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n MountainSeriesHitTestProvider.prototype.hitTest = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var renderableSeries = this.parentSeries;\r\n var dataSeries = renderableSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(renderableSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (dataSeries.dataDistributionCalculator.isSortedAscending && nearestPointIndex >= 0) {\r\n var res = hitTestHelpers_1.hitTestHelpers.testIsHitForMountain(this.parentSeries.isDigitalLine, xCoordinateCalculator, yCoordinateCalculator, dataSeries, renderableSeries.zeroLineY, nearestPointIndex, xHitCoord, yHitCoord);\r\n hitTestInfo.isHit = res.isHit;\r\n hitTestInfo.point2dataSeriesIndex = res.secondPointIndex;\r\n if (res.secondPointIndex !== undefined) {\r\n hitTestInfo.point2xValue = xNativeValues.get(res.secondPointIndex);\r\n hitTestInfo.point2xCoord = xCoordinateCalculator.getCoordinate(hitTestInfo.point2xValue);\r\n hitTestInfo.point2yValue = yNativeValues.get(res.secondPointIndex);\r\n hitTestInfo.point2yCoord = yCoordinateCalculator.getCoordinate(hitTestInfo.point2yValue);\r\n hitTestInfo.point2metadata = dataSeries.getMetadataAt(res.secondPointIndex);\r\n }\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n return MountainSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.MountainSeriesHitTestProvider = MountainSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NonUniformHeatmapHitTestProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link UniformHeatmapRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar NonUniformHeatmapHitTestProvider = /** @class */ (function (_super) {\r\n __extends(NonUniformHeatmapHitTestProvider, _super);\r\n function NonUniformHeatmapHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapHitTestProvider.prototype.hitTest = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var heatmapPoint = hitTestHelpers_1.hitTestHelpers.getNearestNonUniformHeatmapPoint(xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord);\r\n var xIndex = heatmapPoint.xIndex, yIndex = heatmapPoint.yIndex, zValue = heatmapPoint.zValue;\r\n var hitTestInfo = new HitTestInfo_1.HitTestInfo(this.parentSeries);\r\n hitTestInfo.dataSeriesName = this.parentSeries.type;\r\n hitTestInfo.dataSeriesType = dataSeries.type;\r\n hitTestInfo.hitTestPoint = new Point_1.Point(xHitCoord, yHitCoord);\r\n var hitTestPointXValue = xCoordinateCalculator.getDataValue(xHitCoord);\r\n var hitTestPointYValue = yCoordinateCalculator.getDataValue(yHitCoord);\r\n hitTestInfo.hitTestPointValues = new Point_1.Point(hitTestPointXValue, hitTestPointYValue);\r\n hitTestInfo.xValue = hitTestPointXValue;\r\n hitTestInfo.yValue = hitTestPointYValue;\r\n hitTestInfo.heatmapXIndex = xIndex;\r\n hitTestInfo.heatmapYIndex = yIndex;\r\n hitTestInfo.zValue = zValue;\r\n // TODO: set correct heatmapValue\r\n hitTestInfo.heatmapValue = zValue;\r\n // TODO maybe calculate coordinates of the cell center?\r\n hitTestInfo.xCoord = xHitCoord;\r\n hitTestInfo.yCoord = yHitCoord;\r\n hitTestInfo.isHit = xIndex !== -1 && yIndex !== -1;\r\n hitTestInfo.isWithinDataBounds = hitTestInfo.isHit;\r\n if (xIndex !== -1 && yIndex !== -1) {\r\n hitTestInfo.metadata = dataSeries.getMetadataAt(yIndex, xIndex);\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapHitTestProvider.prototype.hitTestDataPoint = function (x, y) {\r\n return this.hitTest(x, y);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n return this.hitTest(x, y);\r\n };\r\n return NonUniformHeatmapHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.NonUniformHeatmapHitTestProvider = NonUniformHeatmapHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OhlcSeriesHitTestProvider = void 0;\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link FastOhlcRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar OhlcSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(OhlcSeriesHitTestProvider, _super);\r\n function OhlcSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n OhlcSeriesHitTestProvider.prototype.hitTest = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = 0; }\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var renderableSeries = this.parentSeries;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, hitTestRadius);\r\n if (nearestPointIndex >= 0) {\r\n var res = hitTestHelpers_1.hitTestHelpers.testIsHitForOHLC(xCoordinateCalculator, yCoordinateCalculator, renderableSeries, dataSeries, nearestPointIndex, xHitCoord, yHitCoord, hitTestRadius);\r\n hitTestInfo.isHit = res.isHit;\r\n hitTestInfo.openValue = res.openValue;\r\n hitTestInfo.highValue = res.highValue;\r\n hitTestInfo.lowValue = res.lowValue;\r\n hitTestInfo.closeValue = res.closeValue;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n // Alternate method that deals slighty better with unsorted data where multiple candles share an x value, but fails for large candles.\r\n // See the new Editable Event Markers demo for yet another method which does better still, for a slightly special case\r\n // public hitTest(x: number, y: number, hitTestRadius: number = 0): HitTestInfo {\r\n // const hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n // if (!hitTestPoint) {\r\n // return HitTestInfo.empty();\r\n // }\r\n // const { xCoordinateCalculator, yCoordinateCalculator, isVerticalChart } = this.currentRenderPassData;\r\n // const xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n // const yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n // const renderableSeries = this.parentSeries as BaseOhlcRenderableSeries;\r\n // const dataSeries = this.parentSeries.dataSeries as OhlcDataSeries;\r\n // if (!dataSeries) {\r\n // return HitTestInfo.empty();\r\n // }\r\n // const isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n // const xValues = isCategoryAxis ? dataSeries.getNativeIndexes() : dataSeries.getNativeXValues();\r\n // const isSorted = dataSeries.dataDistributionCalculator.isSortedAscending;\r\n // const nearestClose = hitTestHelpers.getNearestPoint(\r\n // this.webAssemblyContext,\r\n // xCoordinateCalculator,\r\n // yCoordinateCalculator,\r\n // xValues,\r\n // dataSeries.getNativeCloseValues(),\r\n // isSorted,\r\n // xHitCoord,\r\n // yHitCoord,\r\n // hitTestRadius\r\n // );\r\n // const nearestOpen = hitTestHelpers.getNearestPoint(\r\n // this.webAssemblyContext,\r\n // xCoordinateCalculator,\r\n // yCoordinateCalculator,\r\n // xValues,\r\n // dataSeries.getNativeOpenValues(),\r\n // isSorted,\r\n // xHitCoord,\r\n // yHitCoord,\r\n // hitTestRadius\r\n // );\r\n // const nearestPoint = nearestClose.distance < nearestOpen.distance ? nearestClose : nearestOpen;\r\n // const xNativeValues = dataSeries.getNativeXValues();\r\n // const yNativeValues = dataSeries.getNativeYValues();\r\n // const hitTestInfo = hitTestHelpers.createHitTestInfo(\r\n // this.parentSeries,\r\n // xCoordinateCalculator,\r\n // yCoordinateCalculator,\r\n // isVerticalChart,\r\n // dataSeries,\r\n // xNativeValues,\r\n // yNativeValues,\r\n // xHitCoord,\r\n // yHitCoord,\r\n // nearestPoint.nearestPointIndex,\r\n // hitTestRadius,\r\n // nearestPoint.distance\r\n // );\r\n // if (nearestPoint.nearestPointIndex >= 0) {\r\n // const res = hitTestHelpers.testIsHitForOHLC(\r\n // xCoordinateCalculator,\r\n // yCoordinateCalculator,\r\n // renderableSeries,\r\n // dataSeries,\r\n // nearestPoint.nearestPointIndex,\r\n // xHitCoord,\r\n // yHitCoord,\r\n // hitTestRadius\r\n // );\r\n // hitTestInfo.isHit = res.isHit;\r\n // hitTestInfo.openValue = res.openValue;\r\n // hitTestInfo.highValue = res.highValue;\r\n // hitTestInfo.lowValue = res.lowValue;\r\n // hitTestInfo.closeValue = res.closeValue;\r\n // } else {\r\n // hitTestInfo.isHit = false;\r\n // }\r\n // return hitTestInfo;\r\n // }\r\n /**\r\n * @inheritDoc\r\n */\r\n OhlcSeriesHitTestProvider.prototype.hitTestForDataPointSelectionModifier = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n return this.hitTest(x, y, hitTestRadius);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OhlcSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n hitTestInfo.openValue = dataSeries.getNativeOpenValues().get(nearestPointIndex);\r\n hitTestInfo.highValue = dataSeries.getNativeHighValues().get(nearestPointIndex);\r\n hitTestInfo.lowValue = dataSeries.getNativeLowValues().get(nearestPointIndex);\r\n hitTestInfo.closeValue = dataSeries.getNativeCloseValues().get(nearestPointIndex);\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n var xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n var dataPointWidth = this.parentSeries.dataPointWidth;\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(hitTestInfo.hitTestPointValues.x, xFirstValue, xLastValue, dataPointWidth / 2);\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n return OhlcSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.OhlcSeriesHitTestProvider = OhlcSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ScatterSeriesHitTestProvider = void 0;\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link XyScatterRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar ScatterSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(ScatterSeriesHitTestProvider, _super);\r\n function ScatterSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ScatterSeriesHitTestProvider.prototype.hitTest = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = 0; }\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearest = hitTestHelpers_1.hitTestHelpers.getNearestXyPoint(this.webAssemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearest.nearestPointIndex, hitTestRadius);\r\n if (nearest.nearestPointIndex >= 0) {\r\n var _b = this.parentSeries.pointMarker, width = _b.width, height = _b.height;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n var xFirstCoord = xCoordinateCalculator.getCoordinate(xFirstValue);\r\n var xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n var xLastCoord = xCoordinateCalculator.getCoordinate(xLastValue);\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(xHitCoord, xFirstCoord, xLastCoord, width / 2);\r\n hitTestInfo.isHit = (0, pointUtil_1.testIsInBounds)(xHitCoord, yHitCoord, hitTestInfo.xCoord - width / 2 - hitTestRadius, hitTestInfo.yCoord + height / 2 + hitTestRadius, hitTestInfo.xCoord + width / 2 + hitTestRadius, hitTestInfo.yCoord - height / 2 - hitTestRadius);\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ScatterSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n var width = this.parentSeries.pointMarker.width;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xFirstCoord = void 0;\r\n var xLastCoord = void 0;\r\n if (dataSeries.dataDistributionCalculator.isSortedAscending) {\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n xFirstCoord = xCoordinateCalculator.getCoordinate(xFirstValue);\r\n var xLastValue = isCategoryAxis\r\n ? xNativeValues.size() - 1\r\n : xNativeValues.get(xNativeValues.size() - 1);\r\n xLastCoord = xCoordinateCalculator.getCoordinate(xLastValue);\r\n }\r\n else {\r\n var xRange = dataSeries.getXRange();\r\n xFirstCoord = xCoordinateCalculator.getCoordinate(xRange.min);\r\n xLastCoord = xCoordinateCalculator.getCoordinate(xRange.max);\r\n }\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(xHitCoord, xFirstCoord, xLastCoord, width / 2);\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n return ScatterSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.ScatterSeriesHitTestProvider = ScatterSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedColumnSeriesHitTestProvider = void 0;\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link StackedColumnRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar StackedColumnSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(StackedColumnSeriesHitTestProvider, _super);\r\n function StackedColumnSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedColumnSeriesHitTestProvider.prototype.hitTest = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var _b = this.parentSeries, accumulatedValues = _b.accumulatedValues, getGroupIndex = _b.getGroupIndex, getGroupsCount = _b.getGroupsCount, getColumnWidth = _b.getColumnWidth;\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, accumulatedValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n var groupIndex = getGroupIndex();\r\n var groupsCount = getGroupsCount();\r\n var columnWidth = getColumnWidth(xCoordinateCalculator);\r\n var halfWidth = columnWidth / 2;\r\n var coordShift = (0.5 + groupIndex - groupsCount / 2) * columnWidth;\r\n hitTestInfo.xValue = xCoordinateCalculator.getDataValue(hitTestInfo.xCoord + coordShift);\r\n var yValue = yNativeValues.get(nearestPointIndex);\r\n var accumValue = accumulatedValues.get(nearestPointIndex);\r\n var topCoord = yCoordinateCalculator.getCoordinate(accumValue);\r\n var bottomCoord = yCoordinateCalculator.getCoordinate(accumValue - yValue);\r\n var columnCenterX = hitTestInfo.xCoord + coordShift;\r\n hitTestInfo.isHit = (0, pointUtil_1.testIsInBounds)(xHitCoord, yHitCoord, columnCenterX - halfWidth, bottomCoord, columnCenterX + halfWidth, topCoord);\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n var xFirstCoord = xCoordinateCalculator.getCoordinate(xFirstValue);\r\n var xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n var xLastCoord = xCoordinateCalculator.getCoordinate(xLastValue);\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(hitTestInfo.hitTestPoint.x, xFirstCoord, xLastCoord, (columnWidth * groupsCount) / 2);\r\n // Hit-test on StackedColumnSeries returns Y accumulated, Y1 original\r\n hitTestInfo.y1Value = yNativeValues.get(nearestPointIndex);\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedColumnSeriesHitTestProvider.prototype.hitTestDataPoint = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n throw Error(\"hitTestDataPoint method is not supported for StackedColumnSeriesHitTestProvider\");\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedColumnSeriesHitTestProvider.prototype.hitTestForDataPointSelectionModifier = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n return this.hitTest(x, y);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedColumnSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var _b = this.parentSeries, accumulatedValues = _b.accumulatedValues, getGroupIndex = _b.getGroupIndex, getGroupsCount = _b.getGroupsCount, getColumnWidth = _b.getColumnWidth;\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, accumulatedValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n var groupIndex = getGroupIndex();\r\n var groupsCount = getGroupsCount();\r\n var columnWidth = getColumnWidth(xCoordinateCalculator);\r\n var halfWidth = columnWidth / 2;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xFirstValue = isCategoryAxis ? 0 : xNativeValues.get(0);\r\n var xFirstCoord = xCoordinateCalculator.getCoordinate(xFirstValue);\r\n var xLastValue = isCategoryAxis ? xNativeValues.size() - 1 : xNativeValues.get(xNativeValues.size() - 1);\r\n var xLastCoord = xCoordinateCalculator.getCoordinate(xLastValue);\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(hitTestInfo.hitTestPoint.x, xFirstCoord, xLastCoord, (columnWidth * groupsCount) / 2);\r\n var coordShift = (0.5 + groupIndex - groupsCount / 2) * columnWidth;\r\n hitTestInfo.xValue = xCoordinateCalculator.getDataValue(hitTestInfo.xCoord + coordShift);\r\n var columnCenterX = hitTestInfo.xCoord + coordShift;\r\n hitTestInfo.isHit = (0, pointUtil_1.testIsInInterval)(xHitCoord, columnCenterX - halfWidth, columnCenterX + halfWidth);\r\n // Hit-test on StackedColumnSeries returns Y accumulated, Y1 original\r\n hitTestInfo.y1Value = yNativeValues.get(nearestPointIndex);\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n return StackedColumnSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.StackedColumnSeriesHitTestProvider = StackedColumnSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedMountainSeriesHitTestProvider = void 0;\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link StackedMountainRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar StackedMountainSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(StackedMountainSeriesHitTestProvider, _super);\r\n function StackedMountainSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedMountainSeriesHitTestProvider.prototype.hitTest = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var accumulatedValues = this.parentSeries.accumulatedValues;\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, accumulatedValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n var getTopLine = function (index) { return accumulatedValues.get(index); };\r\n var getBottomLine = function (index) {\r\n return accumulatedValues.get(index) - dataSeries.getNativeYValues().get(index);\r\n };\r\n var hitRes = hitTestHelpers_1.hitTestHelpers.testIsHitForBand(this.parentSeries.isDigitalLine, xCoordinateCalculator, yCoordinateCalculator, xNativeValues, getTopLine, getBottomLine, nearestPointIndex, xHitCoord, yHitCoord, dataSeries);\r\n hitTestInfo.isHit = hitRes.isHit;\r\n hitTestInfo.point2dataSeriesIndex = hitRes.secondPointIndex;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedMountainSeriesHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var nearestPointIndex = hitTestHelpers_1.hitTestHelpers.getNearestXPoint(this.webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, dataSeries.dataDistributionCalculator.isSortedAscending);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var accumulatedValues = this.parentSeries.accumulatedValues;\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, accumulatedValues, xHitCoord, yHitCoord, nearestPointIndex, 0);\r\n if (nearestPointIndex >= 0) {\r\n // Hit-test on StackedColumnSeries returns Y accumulated, Y1 original\r\n hitTestInfo.y1Value = yNativeValues.get(nearestPointIndex);\r\n hitTestInfo.isHit = hitTestInfo.isWithinDataBounds;\r\n }\r\n else {\r\n hitTestInfo.isHit = false;\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedMountainSeriesHitTestProvider.prototype.hitTestDataPoint = function (x, y, hitTestRadius) {\r\n if (hitTestRadius === void 0) { hitTestRadius = BaseHitTestProvider_1.BaseHitTestProvider.DEFAULT_HIT_TEST_RADIUS; }\r\n return this.hitTest(x, y);\r\n };\r\n return StackedMountainSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.StackedMountainSeriesHitTestProvider = StackedMountainSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextSeriesHitTestProvider = void 0;\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\nvar TextSeriesHitTestProvider = /** @class */ (function (_super) {\r\n __extends(TextSeriesHitTestProvider, _super);\r\n function TextSeriesHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TextSeriesHitTestProvider.prototype.hitTest = function (x, y, hitTestRadius) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n var nearest = hitTestHelpers_1.hitTestHelpers.getNearestXyPoint(this.webAssemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius);\r\n var xNativeValues = dataSeries.getNativeXValues();\r\n var yNativeValues = dataSeries.getNativeYValues();\r\n var hitTestInfo = hitTestHelpers_1.hitTestHelpers.createHitTestInfo(this.parentSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearest.nearestPointIndex, hitTestRadius, nearest.distance);\r\n var labels = this.parentSeries.dataLabelProvider.dataLabels;\r\n var isHit = false;\r\n for (var _i = 0, labels_1 = labels; _i < labels_1.length; _i++) {\r\n var label = labels_1[_i];\r\n var _b = label.rect, left = _b.left, top_1 = _b.top, right = _b.right, bottom = _b.bottom;\r\n if ((0, pointUtil_1.testIsInBounds)(hitTestPoint.x, hitTestPoint.y, left, top_1, right, bottom)) {\r\n isHit = true;\r\n break;\r\n }\r\n }\r\n hitTestInfo.isHit = isHit;\r\n return hitTestInfo;\r\n };\r\n return TextSeriesHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.TextSeriesHitTestProvider = TextSeriesHitTestProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniformHeatmapHitTestProvider = void 0;\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar BaseHitTestProvider_1 = require(\"./BaseHitTestProvider\");\r\nvar hitTestHelpers_1 = require(\"./hitTestHelpers\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\n/**\r\n * Hit-test provider for {@link UniformHeatmapRenderableSeries}. See base class {@link BaseHitTestProvider} for further info\r\n */\r\nvar UniformHeatmapHitTestProvider = /** @class */ (function (_super) {\r\n __extends(UniformHeatmapHitTestProvider, _super);\r\n function UniformHeatmapHitTestProvider() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapHitTestProvider.prototype.hitTest = function (x, y) {\r\n var hitTestPoint = this.getTranslatedHitTestPoint(x, y);\r\n if (!hitTestPoint) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var _a = this.currentRenderPassData, xCoordinateCalculator = _a.xCoordinateCalculator, yCoordinateCalculator = _a.yCoordinateCalculator, isVerticalChart = _a.isVerticalChart;\r\n var xHitCoord = isVerticalChart ? hitTestPoint.y : hitTestPoint.x;\r\n var yHitCoord = isVerticalChart ? hitTestPoint.x : hitTestPoint.y;\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return HitTestInfo_1.HitTestInfo.empty();\r\n }\r\n var heatmapPoint = hitTestHelpers_1.hitTestHelpers.getNearestUniformHeatmapPoint(xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord);\r\n var xIndex = heatmapPoint.xIndex, yIndex = heatmapPoint.yIndex, zValue = heatmapPoint.zValue;\r\n var hitTestInfo = new HitTestInfo_1.HitTestInfo(this.parentSeries);\r\n hitTestInfo.dataSeriesName = this.parentSeries.type;\r\n hitTestInfo.dataSeriesType = dataSeries.type;\r\n hitTestInfo.hitTestPoint = new Point_1.Point(xHitCoord, yHitCoord);\r\n var hitTestPointXValue = xCoordinateCalculator.getDataValue(xHitCoord);\r\n var hitTestPointYValue = yCoordinateCalculator.getDataValue(yHitCoord);\r\n hitTestInfo.hitTestPointValues = new Point_1.Point(hitTestPointXValue, hitTestPointYValue);\r\n hitTestInfo.xValue = hitTestPointXValue;\r\n hitTestInfo.yValue = hitTestPointYValue;\r\n hitTestInfo.heatmapXIndex = xIndex;\r\n hitTestInfo.heatmapYIndex = yIndex;\r\n hitTestInfo.zValue = zValue;\r\n // TODO: set correct heatmapValue\r\n hitTestInfo.heatmapValue = zValue;\r\n // TODO maybe calculate coordinates of the cell center?\r\n hitTestInfo.xCoord = xHitCoord;\r\n hitTestInfo.yCoord = yHitCoord;\r\n hitTestInfo.isHit = xIndex !== -1 && yIndex !== -1;\r\n hitTestInfo.isWithinDataBounds = hitTestInfo.isHit;\r\n if (xIndex !== -1 && yIndex !== -1) {\r\n hitTestInfo.metadata = dataSeries.getMetadataAt(yIndex, xIndex);\r\n }\r\n return hitTestInfo;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapHitTestProvider.prototype.hitTestDataPoint = function (x, y) {\r\n return this.hitTest(x, y);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapHitTestProvider.prototype.hitTestXSlice = function (x, y) {\r\n return this.hitTest(x, y);\r\n };\r\n return UniformHeatmapHitTestProvider;\r\n}(BaseHitTestProvider_1.BaseHitTestProvider));\r\nexports.UniformHeatmapHitTestProvider = UniformHeatmapHitTestProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hitTestHelpers = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar ErrorDirection_1 = require(\"../../../../types/ErrorDirection\");\r\nvar pointUtil_1 = require(\"../../../../utils/pointUtil\");\r\nvar HitTestInfo_1 = require(\"./HitTestInfo\");\r\nvar interpolateLinear = function (x, x1, y1, x2, y2) {\r\n return y1 + ((y2 - y1) * (x - x1)) / (x2 - x1);\r\n};\r\n// TODO: take isVertical property into account\r\n/**\r\n *\r\n * @param renderableSeries\r\n * @param xCoordinateCalculator\r\n * @param yCoordinateCalculator\r\n * @param isVerticalChart\r\n * @param dataSeries\r\n * @param xNativeValues\r\n * @param yNativeValues\r\n * @param xHitCoord the X coordinate on the screen relative to seriesViewRect, X and Y swapped for vertical charts\r\n * @param yHitCoord the Y coordinate on the screen relative to seriesViewRect, X and Y swapped for vertical charts\r\n * @param nearestPointIndex\r\n * @param hitTestRadius\r\n */\r\nvar createHitTestInfo = function (renderableSeries, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, dataSeries, xNativeValues, yNativeValues, xHitCoord, yHitCoord, nearestPointIndex, hitTestRadius, distance) {\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var hitTestInfo = new HitTestInfo_1.HitTestInfo(renderableSeries);\r\n hitTestInfo.dataSeriesName = dataSeries.dataSeriesName;\r\n hitTestInfo.dataSeriesType = dataSeries.type;\r\n hitTestInfo.hitTestPoint = new Point_1.Point(xHitCoord, yHitCoord);\r\n var hitTestPointXValue = xCoordinateCalculator.getDataValue(xHitCoord);\r\n var hitTestPointYValue = yCoordinateCalculator.getDataValue(yHitCoord);\r\n hitTestInfo.hitTestPointValues = new Point_1.Point(hitTestPointXValue, hitTestPointYValue);\r\n hitTestInfo.dataSeriesIndex = nearestPointIndex;\r\n hitTestInfo.hitTestRadius = hitTestRadius;\r\n hitTestInfo.isCategoryAxis = isCategoryAxis;\r\n hitTestInfo.distance = distance;\r\n // If there is no data, don't attempt to access it.\r\n if (nearestPointIndex >= 0) {\r\n var xValue = isCategoryAxis ? nearestPointIndex : dataSeries.getNativeValue(xNativeValues, nearestPointIndex);\r\n var yValue = dataSeries.getNativeValue(yNativeValues, nearestPointIndex);\r\n hitTestInfo.xCoord = xCoordinateCalculator.getCoordinate(xValue);\r\n hitTestInfo.yCoord = yCoordinateCalculator.getCoordinate(yValue);\r\n // TODO: It might be worth to flip them to make the API better\r\n // if (isVerticalChart) {\r\n // const temp = hitTestInfo.xCoord;\r\n // hitTestInfo.xCoord = hitTestInfo.yCoord;\r\n // hitTestInfo.yCoord = temp;\r\n // }\r\n hitTestInfo.xValue = xValue;\r\n if (isCategoryAxis) {\r\n hitTestInfo.xCategoryValue = xNativeValues.get(nearestPointIndex);\r\n }\r\n hitTestInfo.yValue = yValue;\r\n var xFirstValue = isCategoryAxis ? 0 : dataSeries.getNativeValue(xNativeValues, 0);\r\n var xLastValue = isCategoryAxis\r\n ? xNativeValues.size() - 1\r\n : dataSeries.getNativeValue(xNativeValues, xNativeValues.size() - 1);\r\n // TODO - do this once when data changes\r\n if (!dataSeries.dataDistributionCalculator.isSortedAscending) {\r\n for (var i = 0; i < dataSeries.count(); i++) {\r\n var x = dataSeries.getNativeValue(xNativeValues, i);\r\n if (x < xFirstValue) {\r\n xFirstValue = x;\r\n }\r\n if (x > xLastValue) {\r\n xLastValue = x;\r\n }\r\n }\r\n }\r\n hitTestInfo.isWithinDataBounds = (0, pointUtil_1.testIsInInterval)(hitTestPointXValue, xFirstValue, xLastValue);\r\n hitTestInfo.metadata = dataSeries.getMetadataAt(nearestPointIndex);\r\n }\r\n else {\r\n hitTestInfo.isWithinDataBounds = false;\r\n }\r\n hitTestInfo.isHit = undefined;\r\n return hitTestInfo;\r\n};\r\nvar getNearestXPoint = function (webAssemblyContext, xCoordinateCalculator, dataSeries, xHitCoord, isSorted) {\r\n var result = getNearestXyPoint(webAssemblyContext, xCoordinateCalculator, xCoordinateCalculator, dataSeries, xHitCoord, 0, 0);\r\n return result.nearestPointIndex;\r\n};\r\nvar getNearestXyPoint = function (webassemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius) {\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var dataX = isCategoryAxis ? dataSeries.getNativeIndexes() : dataSeries.getNativeXValues();\r\n var dataY = dataSeries.getNativeYValues();\r\n return getNearestPoint(webassemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataX, dataY, dataSeries.dataDistributionCalculator.isSortedAscending, xHitCoord, yHitCoord, hitTestRadius);\r\n};\r\nvar getNearestPoint = function (webassemblyContext, xCoordinateCalculator, yCoordinateCalculator, xValues, yValues, isSorted, xHitCoord, yHitCoord, hitTestRadius) {\r\n var result;\r\n try {\r\n result = webassemblyContext.SCRTHitTestHelper.GetNearestXyPoint(xCoordinateCalculator.nativeCalculator, yCoordinateCalculator.nativeCalculator, xValues, yValues, isSorted, xHitCoord, yHitCoord, hitTestRadius !== null && hitTestRadius !== void 0 ? hitTestRadius : 1 // Default to 1 here so unsorted data will get nearest by x and y\r\n );\r\n return { nearestPointIndex: result.minD, distance: result.maxD };\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(result);\r\n }\r\n};\r\nvar getNearestXyyPoint = function (webassemblyContext, xCoordinateCalculator, yCoordinateCalculator, dataSeries, xHitCoord, yHitCoord, hitTestRadius) {\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var dataX = isCategoryAxis ? dataSeries.getNativeIndexes() : dataSeries.getNativeXValues();\r\n var dataY = dataSeries.getNativeYValues();\r\n var result;\r\n var nearestY;\r\n var distanceY;\r\n try {\r\n result = webassemblyContext.SCRTHitTestHelper.GetNearestXyPoint(xCoordinateCalculator.nativeCalculator, yCoordinateCalculator.nativeCalculator, dataX, dataY, dataSeries.dataDistributionCalculator.isSortedAscending, xHitCoord, yHitCoord, hitTestRadius !== null && hitTestRadius !== void 0 ? hitTestRadius : 1);\r\n nearestY = result.minD;\r\n distanceY = result.maxD;\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(result);\r\n }\r\n try {\r\n result = webassemblyContext.SCRTHitTestHelper.GetNearestXyPoint(xCoordinateCalculator.nativeCalculator, yCoordinateCalculator.nativeCalculator, dataX, dataSeries.getNativeY1Values(), dataSeries.dataDistributionCalculator.isSortedAscending, xHitCoord, yHitCoord, hitTestRadius !== null && hitTestRadius !== void 0 ? hitTestRadius : 1);\r\n if (distanceY < result.maxD) {\r\n // Y is nearer\r\n return { nearestPointIndex: nearestY, distance: distanceY };\r\n }\r\n else {\r\n return { nearestPointIndex: result.minD, distance: result.maxD };\r\n }\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(result);\r\n }\r\n};\r\nvar getNearestUniformHeatmapPoint = function (xCoordinateCalculator, yCoordinateCalculator, heatmapDataSeries, xHitCoord, yHitCoord) {\r\n var xHitValue = xCoordinateCalculator.getDataValue(xHitCoord);\r\n var yHitValue = yCoordinateCalculator.getDataValue(yHitCoord);\r\n var xIndex = Math.floor((xHitValue - heatmapDataSeries.xStart) / heatmapDataSeries.xStep);\r\n var yIndex = Math.floor((yHitValue - heatmapDataSeries.yStart) / heatmapDataSeries.yStep);\r\n if (xIndex < 0 || xIndex >= heatmapDataSeries.arrayWidth || yIndex < 0 || yIndex >= heatmapDataSeries.arrayHeight) {\r\n return { xIndex: -1, yIndex: -1, zValue: undefined };\r\n }\r\n var zValue = heatmapDataSeries.getZValue(yIndex, xIndex);\r\n return { xIndex: xIndex, yIndex: yIndex, zValue: zValue };\r\n};\r\nvar getNearestNonUniformHeatmapPoint = function (xCoordinateCalculator, yCoordinateCalculator, heatmapDataSeries, xHitCoord, yHitCoord) {\r\n var xHitValue = xCoordinateCalculator.getDataValue(xHitCoord);\r\n var yHitValue = yCoordinateCalculator.getDataValue(yHitCoord);\r\n var xCellOffsets = heatmapDataSeries.xCellOffsets, yCellOffsets = heatmapDataSeries.yCellOffsets;\r\n var xIndex = -1;\r\n if (xHitValue >= xCellOffsets[0] && xHitValue <= xCellOffsets[xCellOffsets.length - 1]) {\r\n for (var i = 0; i < xCellOffsets.length; i++) {\r\n var isWithinCellOffsets = xHitValue >= xCellOffsets[i] && xHitValue <= xCellOffsets[i + 1];\r\n if (isWithinCellOffsets) {\r\n xIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n var yIndex = -1;\r\n if (yHitValue >= yCellOffsets[0] && yHitValue <= yCellOffsets[yCellOffsets.length - 1]) {\r\n for (var i = 0; i < yCellOffsets.length - 1; i++) {\r\n var isWithinCellOffsets = yHitValue >= yCellOffsets[i] && yHitValue <= yCellOffsets[i + 1];\r\n if (isWithinCellOffsets) {\r\n yIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n // TODO shouldn't we return a neerest cell anyway?\r\n if (xIndex < 0 || xIndex >= heatmapDataSeries.arrayWidth || yIndex < 0 || yIndex >= heatmapDataSeries.arrayHeight) {\r\n return { xIndex: -1, yIndex: -1, zValue: undefined };\r\n }\r\n var zValue = heatmapDataSeries.getZValue(yIndex, xIndex);\r\n return { xIndex: xIndex, yIndex: yIndex, zValue: zValue };\r\n};\r\nvar testIsHitForPoint = function (xCoordinateCalculator, yCoordinateCalculator, xValues, yValues, pointIndex, xHitCoord, yHitCoord, hitTestRadius, dataSeries) {\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValue = isCategoryAxis ? pointIndex : dataSeries.getNativeValue(xValues, pointIndex);\r\n var yValue = dataSeries.getNativeValue(yValues, pointIndex);\r\n var dataXCoord = xCoordinateCalculator.getCoordinate(xValue);\r\n var dataYCoord = yCoordinateCalculator.getCoordinate(yValue);\r\n var distance = (0, pointUtil_1.calcDistance)(xHitCoord, yHitCoord, dataXCoord, dataYCoord);\r\n return distance < hitTestRadius;\r\n};\r\n/**\r\n *\r\n * @param xCoordinateCalculator\r\n * @param yCoordinateCalculator\r\n * @param xValues\r\n * @param yValues\r\n * @param pointIndex\r\n * @param xHitCoord The X coordinate, isVertical property is already taken into account\r\n * @param yHitCoord The Y coordinate, isVertical property is already taken into account\r\n * @param hitTestRadius\r\n */\r\nvar testIsHitForLine = function (xCoordinateCalculator, yCoordinateCalculator, xValues, yValues, pointIndex, xHitCoord, yHitCoord, hitTestRadius, dataSeries) {\r\n var isHit;\r\n var secondPointIndex;\r\n var xLeft, xRight, yLeft, yRight;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValue = isCategoryAxis ? pointIndex : dataSeries.getNativeValue(xValues, pointIndex);\r\n var yValue = dataSeries.getNativeValue(yValues, pointIndex);\r\n var xHitValue = xCoordinateCalculator.getDataValue(xHitCoord);\r\n if (xValue <= xHitValue) {\r\n xLeft = xValue;\r\n yLeft = yValue;\r\n xRight = isCategoryAxis ? pointIndex + 1 : dataSeries.getNativeValue(xValues, pointIndex + 1);\r\n yRight = dataSeries.getNativeValue(yValues, pointIndex + 1);\r\n secondPointIndex = pointIndex + 1;\r\n }\r\n else {\r\n xLeft = isCategoryAxis ? pointIndex - 1 : dataSeries.getNativeValue(xValues, pointIndex - 1);\r\n yLeft = dataSeries.getNativeValue(yValues, pointIndex - 1);\r\n secondPointIndex = pointIndex - 1;\r\n xRight = xValue;\r\n yRight = yValue;\r\n }\r\n var xLeftCoord = xCoordinateCalculator.getCoordinate(xLeft);\r\n var xRightCoord = xCoordinateCalculator.getCoordinate(xRight);\r\n var yLeftCoord = yCoordinateCalculator.getCoordinate(yLeft);\r\n var yRightCoord = yCoordinateCalculator.getCoordinate(yRight);\r\n var lineSegmentLength = (0, pointUtil_1.calcDistance)(xLeftCoord, yLeftCoord, xRightCoord, yRightCoord);\r\n var distanceToLeftPoint = (0, pointUtil_1.calcDistance)(xLeftCoord, yLeftCoord, xHitCoord, yHitCoord);\r\n var distanceToRightPoint = (0, pointUtil_1.calcDistance)(xRightCoord, yRightCoord, xHitCoord, yHitCoord);\r\n // Because the line that goes through two points is infinite it could happen that mouse click is near this line\r\n // but far away from the line segment, especially if the segment is almost a vertical line\r\n // in this case we set isHit = false\r\n if (distanceToLeftPoint > lineSegmentLength + hitTestRadius ||\r\n distanceToRightPoint > lineSegmentLength + hitTestRadius) {\r\n isHit = false;\r\n }\r\n else {\r\n isHit =\r\n (0, pointUtil_1.calcDistanceFromLine)(xHitCoord, yHitCoord, xLeftCoord, yLeftCoord, xRightCoord, yRightCoord) <\r\n hitTestRadius;\r\n }\r\n return { isHit: isHit, secondPointIndex: secondPointIndex };\r\n};\r\nvar testIsHitForBand = function (isDigitalLine, xCoordinateCalculator, yCoordinateCalculator, xValues, getYValue, getY1Value, pointIndex, xHitCoord, yHitCoord, dataSeries) {\r\n var isHit;\r\n var xHitValue = xCoordinateCalculator.getDataValue(xHitCoord);\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValue = isCategoryAxis ? pointIndex : dataSeries.getNativeValue(xValues, pointIndex);\r\n var isLeftHit = xValue <= xHitValue;\r\n var secondPointIndex = isLeftHit ? pointIndex + 1 : pointIndex - 1;\r\n if (secondPointIndex < 0 || secondPointIndex >= xValues.size()) {\r\n return { isHit: false, secondPointIndex: undefined };\r\n }\r\n var secondPointXValue = isCategoryAxis ? secondPointIndex : dataSeries.getNativeValue(xValues, secondPointIndex);\r\n var xLeft = isLeftHit ? xValue : secondPointXValue;\r\n var yLeft = isLeftHit ? getYValue(pointIndex) : getYValue(secondPointIndex);\r\n var y1Left = isLeftHit ? getY1Value(pointIndex) : getY1Value(secondPointIndex);\r\n var xRight = isLeftHit ? secondPointXValue : xValue;\r\n var yRight = isLeftHit ? getYValue(secondPointIndex) : getYValue(pointIndex);\r\n var y1Right = isLeftHit ? getY1Value(secondPointIndex) : getY1Value(pointIndex);\r\n var xLeftCoord = xCoordinateCalculator.getCoordinate(xLeft);\r\n var xRightCoord = xCoordinateCalculator.getCoordinate(xRight);\r\n var yLeftCoord = yCoordinateCalculator.getCoordinate(yLeft);\r\n var yRightCoord = yCoordinateCalculator.getCoordinate(yRight);\r\n var y1LeftCoord = yCoordinateCalculator.getCoordinate(y1Left);\r\n var y1RightCoord = yCoordinateCalculator.getCoordinate(y1Right);\r\n if (isDigitalLine) {\r\n if (yLeftCoord < y1LeftCoord) {\r\n isHit = yHitCoord >= yLeftCoord && yHitCoord <= y1LeftCoord;\r\n }\r\n else {\r\n isHit = yHitCoord >= y1LeftCoord && yHitCoord <= yLeftCoord;\r\n }\r\n }\r\n else {\r\n var interpolatedLineY = interpolateLinear(xHitCoord, xLeftCoord, yLeftCoord, xRightCoord, yRightCoord);\r\n var interpolatedLineY1 = interpolateLinear(xHitCoord, xLeftCoord, y1LeftCoord, xRightCoord, y1RightCoord);\r\n if (interpolatedLineY < interpolatedLineY1) {\r\n isHit = yHitCoord >= interpolatedLineY && yHitCoord <= interpolatedLineY1;\r\n }\r\n else {\r\n isHit = yHitCoord >= interpolatedLineY1 && yHitCoord <= interpolatedLineY;\r\n }\r\n }\r\n return { isHit: isHit, secondPointIndex: secondPointIndex };\r\n};\r\nvar testIsHitForColumn = function (xCoordinateCalculator, yCoordinateCalculator, renderableSeries, xValues, yValues, pointIndex, xHitCoord, yHitCoord) {\r\n var getDataPointWidth = renderableSeries.getDataPointWidth, dataPointWidth = renderableSeries.dataPointWidth, zeroLineY = renderableSeries.zeroLineY, dataSeries = renderableSeries.dataSeries;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValue = isCategoryAxis ? pointIndex : dataSeries.getNativeValue(xValues, pointIndex);\r\n var yValue = dataSeries.getNativeValue(yValues, pointIndex);\r\n var xCoord = xCoordinateCalculator.getCoordinate(xValue);\r\n var yCoord = yCoordinateCalculator.getCoordinate(yValue);\r\n var columnWidth = getDataPointWidth(xCoordinateCalculator, dataPointWidth);\r\n var zeroLineYCoord = yCoordinateCalculator.getCoordinate(zeroLineY);\r\n var halfWidth = columnWidth / 2;\r\n var topColumnSide = zeroLineYCoord > yCoord ? zeroLineYCoord : yCoord;\r\n var bottomColumnSide = zeroLineYCoord > yCoord ? yCoord : zeroLineYCoord;\r\n return (0, pointUtil_1.testIsInBounds)(xHitCoord, yHitCoord, xCoord - halfWidth, topColumnSide, xCoord + halfWidth, bottomColumnSide);\r\n};\r\nvar testIsHitForErrorBars = function (xCoordinateCalculator, yCoordinateCalculator, renderableSeries, xValues, yValues, pointIndex, xHitCoord, yHitCoord) {\r\n var getDataPointWidth = renderableSeries.getDataPointWidth, dataPointWidth = renderableSeries.dataPointWidth, errorDirection = renderableSeries.errorDirection, dataSeries = renderableSeries.dataSeries;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var isVerticalDirection = errorDirection === ErrorDirection_1.EErrorDirection.Vertical;\r\n var xValue = isCategoryAxis ? pointIndex : dataSeries.getNativeValue(xValues, pointIndex);\r\n var yValue = dataSeries.getNativeValue(yValues, pointIndex);\r\n var highValue = dataSeries.getNativeValue(dataSeries.getNativeHighValues(), pointIndex);\r\n var lowValue = dataSeries.getNativeValue(dataSeries.getNativeLowValues(), pointIndex);\r\n if (isNaN(highValue))\r\n highValue = yValue;\r\n if (isNaN(lowValue))\r\n lowValue = yValue;\r\n var xCoord = xCoordinateCalculator.getCoordinate(xValue);\r\n var yCoord = yCoordinateCalculator.getCoordinate(yValue);\r\n var highCoord = isVerticalDirection\r\n ? yCoordinateCalculator.getCoordinate(highValue)\r\n : xCoordinateCalculator.getCoordinate(highValue);\r\n var lowCoord = isVerticalDirection\r\n ? yCoordinateCalculator.getCoordinate(lowValue)\r\n : xCoordinateCalculator.getCoordinate(lowValue);\r\n var columnWidth = getDataPointWidth(isVerticalDirection ? xCoordinateCalculator : yCoordinateCalculator, dataPointWidth);\r\n var halfWidth = columnWidth / 2;\r\n var isHit = false;\r\n var upperErrorBoundary = highCoord > lowCoord ? highCoord : lowCoord;\r\n var lowerErrorBoundary = highCoord > lowCoord ? lowCoord : highCoord;\r\n if (isVerticalDirection) {\r\n isHit = (0, pointUtil_1.testIsInBounds)(xHitCoord, yHitCoord, xCoord - halfWidth, upperErrorBoundary, xCoord + halfWidth, lowerErrorBoundary);\r\n }\r\n else {\r\n isHit = (0, pointUtil_1.testIsInBounds)(xHitCoord, yHitCoord, lowerErrorBoundary, yCoord + halfWidth, upperErrorBoundary, yCoord - halfWidth);\r\n }\r\n return { isHit: isHit, highValue: highValue, lowValue: lowValue };\r\n};\r\nvar testIsHitForImpulse = function (xCoordinateCalculator, yCoordinateCalculator, renderableSeries, xValues, yValues, pointIndex, xHitCoord, yHitCoord, hitTestRadius) {\r\n var zeroLineY = renderableSeries.zeroLineY, dataSeries = renderableSeries.dataSeries;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValue = isCategoryAxis ? pointIndex : dataSeries.getNativeValue(xValues, pointIndex);\r\n var yValue = dataSeries.getNativeValue(yValues, pointIndex);\r\n var xCoord = xCoordinateCalculator.getCoordinate(xValue);\r\n var yCoord = yCoordinateCalculator.getCoordinate(yValue);\r\n var zeroLineYCoord = yCoordinateCalculator.getCoordinate(zeroLineY);\r\n var topColumnSide = zeroLineYCoord > yCoord ? zeroLineYCoord : yCoord;\r\n var bottomColumnSide = zeroLineYCoord > yCoord ? yCoord : zeroLineYCoord;\r\n return (0, pointUtil_1.testIsInBounds)(xHitCoord, yHitCoord, xCoord, topColumnSide, xCoord, bottomColumnSide, hitTestRadius);\r\n};\r\nvar testIsHitForOHLC = function (xCoordinateCalculator, yCoordinateCalculator, renderableSeries, dataSeries, pointIndex, xHitCoord, yHitCoord, hitTestRadius) {\r\n var getDataPointWidth = renderableSeries.getDataPointWidth, dataPointWidth = renderableSeries.dataPointWidth;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValue = isCategoryAxis ? pointIndex : dataSeries.getNativeValue(dataSeries.getNativeXValues(), pointIndex);\r\n var xCoord = xCoordinateCalculator.getCoordinate(xValue);\r\n var openValue = dataSeries.getNativeValue(dataSeries.getNativeOpenValues(), pointIndex);\r\n var openCoord = yCoordinateCalculator.getCoordinate(openValue);\r\n var highValue = dataSeries.getNativeValue(dataSeries.getNativeHighValues(), pointIndex);\r\n var highCoord = yCoordinateCalculator.getCoordinate(highValue);\r\n var lowValue = dataSeries.getNativeValue(dataSeries.getNativeLowValues(), pointIndex);\r\n var lowCoord = yCoordinateCalculator.getCoordinate(lowValue);\r\n var closeValue = dataSeries.getNativeValue(dataSeries.getNativeCloseValues(), pointIndex);\r\n var closeCoord = yCoordinateCalculator.getCoordinate(closeValue);\r\n var columnWidth = getDataPointWidth(xCoordinateCalculator, dataPointWidth);\r\n var halfWidth = columnWidth / 2;\r\n var topSide = closeCoord > openCoord ? closeCoord : openCoord;\r\n var bottomSide = closeCoord > openCoord ? openCoord : closeCoord;\r\n // test candle body\r\n var isCandleBodyHit = (0, pointUtil_1.testIsInBounds)(xHitCoord, yHitCoord, xCoord - halfWidth, topSide, xCoord + halfWidth, bottomSide);\r\n // test candle wicks\r\n var distanceToWicks = (0, pointUtil_1.calcDistanceFromLineSegment)(xHitCoord, yHitCoord, xCoord, highCoord, xCoord, lowCoord);\r\n var isHit = isCandleBodyHit || distanceToWicks < hitTestRadius;\r\n return { isHit: isHit, openValue: openValue, highValue: highValue, lowValue: lowValue, closeValue: closeValue };\r\n};\r\nvar testIsHitForMountain = function (isDigitalLine, xCoordinateCalculator, yCoordinateCalculator, dataSeries, zeroLineY, pointIndex, xHitCoord, yHitCoord) {\r\n var isHit;\r\n var xValues = dataSeries.getNativeXValues();\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValue = isCategoryAxis ? pointIndex : dataSeries.getNativeValue(xValues, pointIndex);\r\n var yValues = dataSeries.getNativeYValues();\r\n var xHitValue = xCoordinateCalculator.getDataValue(xHitCoord);\r\n var isLeftHit = xValue <= xHitValue;\r\n var secondPointIndex = isLeftHit ? pointIndex + 1 : pointIndex - 1;\r\n if (secondPointIndex < 0 || secondPointIndex >= dataSeries.count()) {\r\n return { isHit: false, secondPointIndex: undefined };\r\n }\r\n var secondPointXValue = isCategoryAxis ? secondPointIndex : xValues.get(secondPointIndex);\r\n var xLeft = isLeftHit ? xValue : secondPointXValue;\r\n var yLeft = isLeftHit\r\n ? dataSeries.getNativeValue(yValues, pointIndex)\r\n : dataSeries.getNativeValue(yValues, secondPointIndex);\r\n var xRight = isLeftHit ? secondPointXValue : xValue;\r\n var yRight = isLeftHit\r\n ? dataSeries.getNativeValue(yValues, secondPointIndex)\r\n : dataSeries.getNativeValue(yValues, pointIndex);\r\n var xLeftCoord = xCoordinateCalculator.getCoordinate(xLeft);\r\n var xRightCoord = xCoordinateCalculator.getCoordinate(xRight);\r\n var yLeftCoord = yCoordinateCalculator.getCoordinate(yLeft);\r\n var yRightCoord = yCoordinateCalculator.getCoordinate(yRight);\r\n var zeroLineYCoord = yCoordinateCalculator.getCoordinate(zeroLineY);\r\n if (isDigitalLine) {\r\n if (yLeftCoord < zeroLineYCoord) {\r\n isHit = yHitCoord >= yLeftCoord && yHitCoord <= zeroLineYCoord;\r\n }\r\n else {\r\n isHit = yHitCoord >= zeroLineYCoord && yHitCoord <= yLeftCoord;\r\n }\r\n }\r\n else {\r\n var interpolatedLineY = interpolateLinear(xHitCoord, xLeftCoord, yLeftCoord, xRightCoord, yRightCoord);\r\n if (interpolatedLineY < zeroLineYCoord) {\r\n isHit = yHitCoord >= interpolatedLineY && yHitCoord <= zeroLineYCoord;\r\n }\r\n else {\r\n isHit = yHitCoord >= zeroLineYCoord && yHitCoord <= interpolatedLineY;\r\n }\r\n }\r\n return { isHit: isHit, secondPointIndex: secondPointIndex };\r\n};\r\nexports.hitTestHelpers = {\r\n createHitTestInfo: createHitTestInfo,\r\n getNearestPoint: getNearestPoint,\r\n getNearestXPoint: getNearestXPoint,\r\n getNearestXyPoint: getNearestXyPoint,\r\n getNearestXyyPoint: getNearestXyyPoint,\r\n getNearestUniformHeatmapPoint: getNearestUniformHeatmapPoint,\r\n getNearestNonUniformHeatmapPoint: getNearestNonUniformHeatmapPoint,\r\n testIsHitForPoint: testIsHitForPoint,\r\n testIsHitForLine: testIsHitForLine,\r\n testIsHitForBand: testIsHitForBand,\r\n testIsHitForColumn: testIsHitForColumn,\r\n testIsHitForOHLC: testIsHitForOHLC,\r\n testIsHitForMountain: testIsHitForMountain,\r\n testIsHitForErrorBars: testIsHitForErrorBars,\r\n testIsHitForImpulse: testIsHitForImpulse\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HoveredChangedArgs = void 0;\r\n/**\r\n * Arguments passed into the callback for {@link SeriesSelectionModifier.hoverChanged} event\r\n */\r\nvar HoveredChangedArgs = /** @class */ (function () {\r\n /**\r\n * Creates an instance of SelectionChangedArgs -\r\n * arguments passed into the callback for {@link SeriesSelectionModifier.selectionChanged} event\r\n * @param source\r\n * @param hoveredSeries\r\n * @param allSeries\r\n */\r\n function HoveredChangedArgs(source, hoveredSeries, allSeries, hitTestInfo) {\r\n this.source = source;\r\n this.hoveredSeries = hoveredSeries;\r\n this.allSeries = allSeries;\r\n this.hitTestInfo = hitTestInfo;\r\n }\r\n return HoveredChangedArgs;\r\n}());\r\nexports.HoveredChangedArgs = HoveredChangedArgs;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NonUniformHeatmapRenderableSeries = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BaseHeatmapRenderableSeries_1 = require(\"./BaseHeatmapRenderableSeries\");\r\nvar NonUniformHeatmapDataLabelProvider_1 = require(\"./DataLabels/NonUniformHeatmapDataLabelProvider\");\r\nvar NonUniformHeatmapDrawingProvider_1 = require(\"./DrawingProviders/NonUniformHeatmapDrawingProvider\");\r\nvar NonUniformHeatmapHitTestProvider_1 = require(\"./HitTest/NonUniformHeatmapHitTestProvider\");\r\n/**\r\n * @summary A JavaScript Heatmap chart type rendering a 2-dimensional array of data as color values between X,Y bounds in\r\n * SciChart's High Performance Real-time {@link https://www.scichart.com/javascript-chart-features | JavaScript Chart Library}\r\n * @description\r\n * Heatmaps are 2-dimensional arrays of data, rendered as a color-map on the chart. The {@link NonUniformHeatmapRenderableSeries}\r\n * assumes the cells are equal size, and spaced along the X,Y axis according to properties on the {@link NonUniformHeatmapDataSeries}.\r\n *\r\n * For a code sample how to initialize a non-uniform heatmap, see below\r\n *\r\n * ```ts\r\n * // Create a 2D array with heat values\r\n * const zValues = [\r\n * [0, 2, 3.4],\r\n * [5, 3, 4],\r\n * [3, 1.5, -1],\r\n * ];\r\n * // Define offsets of the heatmap cells\r\n * const xCellOffsets = [0, 10, 25, 40];\r\n * const yCellOffsets = [100, 200, 300, 400];\r\n *\r\n * // Create a UniformHeatmapDataSeries passing in zValues\r\n * const heatmapDataSeries = new NonUniformHeatmapDataSeries(wasmContext, xCellOffsets, yCellOffsets, zValues);\r\n *\r\n * // Create a Heatmap RenderableSeries with the color map. ColorMap.minimum/maximum defines the values in\r\n * // HeatmapDataSeries which correspond to gradient stops at 0..1\r\n * const heatmapSeries = new NonUniformHeatmapRenderableSeries(wasmContext, {\r\n * dataSeries: heatmapDataSeries,\r\n * colorMap: new HeatmapColorMap({\r\n * minimum: 0,\r\n * maximum: 200,\r\n * gradientStops: [\r\n * { offset: 0, color: \"#00008B\" },\r\n * { offset: 0.2, color: \"#6495ED\" },\r\n * { offset: 0.4, color: \"#006400\" },\r\n * { offset: 0.6, color: \"#7FFF00\" },\r\n * { offset: 0.8, color: \"#FFFF00\" },\r\n * { offset: 1.0, color: \"#FF0000\" }\r\n * ]\r\n * })\r\n * });\r\n *\r\n * // Add heatmap to the chart\r\n * sciChartSurface.renderableSeries.add(heatmapSeries);\r\n * ```\r\n */\r\nvar NonUniformHeatmapRenderableSeries = /** @class */ (function (_super) {\r\n __extends(NonUniformHeatmapRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link NonUniformHeatmapRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IHeatmapRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function NonUniformHeatmapRenderableSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.NonUniformHeatmapSeries;\r\n _this.drawingProviders = [];\r\n if (!app_1.IS_TEST_ENV) {\r\n _this.drawingProviders.push(new NonUniformHeatmapDrawingProvider_1.NonUniformHeatmapDrawingProvider(webAssemblyContext, _this));\r\n }\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new NonUniformHeatmapDataLabelProvider_1.NonUniformHeatMapDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n NonUniformHeatmapRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new NonUniformHeatmapHitTestProvider_1.NonUniformHeatmapHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return NonUniformHeatmapRenderableSeries;\r\n}(BaseHeatmapRenderableSeries_1.BaseHeatmapRenderableSeries));\r\nexports.NonUniformHeatmapRenderableSeries = NonUniformHeatmapRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseRenderDataTransform = void 0;\r\nvar DeletableEntity_1 = require(\"../../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar RenderPassData_1 = require(\"../../../Services/RenderPassData\");\r\nvar BaseRenderDataTransform = /** @class */ (function (_super) {\r\n __extends(BaseRenderDataTransform, _super);\r\n function BaseRenderDataTransform(parentSeries, wasmContext, drawingProviders) {\r\n var _this = _super.call(this) || this;\r\n _this.requiresTransform = true;\r\n /** @inheritDoc */\r\n _this.useForYRange = false;\r\n _this.parentSeries = parentSeries;\r\n _this.wasmContext = wasmContext;\r\n _this.parentSeries.dataSeries;\r\n _this.pointSeries = _this.createPointSeries();\r\n _this.drawingProviders = drawingProviders !== null && drawingProviders !== void 0 ? drawingProviders : [];\r\n return _this;\r\n }\r\n BaseRenderDataTransform.prototype.runTransform = function (renderPassData) {\r\n if (this.requiresTransform ||\r\n (renderPassData.indexRange && !renderPassData.indexRange.equals(this.lastIndexRange))) {\r\n Guard_1.Guard.notNull(renderPassData, \"renderPassData\");\r\n Guard_1.Guard.notNull(renderPassData.pointSeries, \"renderPassData.pointSeries\");\r\n var ps = this.runTransformInternal(renderPassData);\r\n if (ps === this.pointSeries) {\r\n this.requiresTransform = false;\r\n }\r\n this.lastIndexRange = renderPassData.indexRange;\r\n return this.makeRenderPassData(renderPassData, ps);\r\n }\r\n return this.makeRenderPassData(renderPassData, this.pointSeries);\r\n };\r\n BaseRenderDataTransform.prototype.onDataChange = function (args) {\r\n this.requiresTransform = true;\r\n };\r\n BaseRenderDataTransform.prototype.delete = function () {\r\n this.pointSeries = (0, Deleter_1.deleteSafe)(this.pointSeries);\r\n this.wasmContext = undefined;\r\n };\r\n BaseRenderDataTransform.prototype.makeRenderPassData = function (originalRPD, pointSeries) {\r\n var indexRange = new NumberRange_1.NumberRange(0, pointSeries.xValues.size() - 1);\r\n pointSeries.xRange = originalRPD.pointSeries.xRange;\r\n pointSeries.fifoStartIndex = originalRPD.pointSeries.fifoStartIndex;\r\n return new RenderPassData_1.RenderPassData(indexRange, originalRPD.getxCoordinateCalculator, originalRPD.getyCoordinateCalculator, originalRPD.isVerticalChart, pointSeries, originalRPD.resamplingHash);\r\n };\r\n return BaseRenderDataTransform;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BaseRenderDataTransform = BaseRenderDataTransform;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SmoothStackedRenderDataTransform = exports.XyyBezierRenderDataTransform = exports.BezierRenderDataTransform = exports.bezierTransform = void 0;\r\nvar EasingFunctions_1 = require(\"../../../../Core/Animations/EasingFunctions\");\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar XyPointSeriesResampled_1 = require(\"../../../Model/PointSeries/XyPointSeriesResampled\");\r\nvar XyyPointSeriesResampled_1 = require(\"../../../Model/PointSeries/XyyPointSeriesResampled\");\r\nvar BaseRenderDataTransform_1 = require(\"./BaseRenderDataTransform\");\r\nvar bezierTransform = function (xValues, yValues, indexes, oldX, oldY, iStart, iEnd, interpolationPoints, curvature, y1Values) {\r\n var _a, _b;\r\n xValues.clear();\r\n yValues.clear();\r\n indexes.clear();\r\n var getControlPoint = function (x, y, xp, yp, xn, yn, f) {\r\n if (yp !== yp)\r\n return { xc: x, yc: y };\r\n if (x === xp && y === yp) {\r\n return { xc: x, yc: y };\r\n }\r\n var m = Number.MAX_VALUE;\r\n if (x !== xp) {\r\n m = (y - yp) / (x - xp);\r\n }\r\n var xc;\r\n var yc;\r\n var d = (xn - x) * f;\r\n xc = x + d;\r\n yc = y + m * d;\r\n yc = Math.max(Math.min(yc, Math.max(y, yn)), Math.min(y, yn));\r\n return { xc: xc, yc: yc };\r\n };\r\n var bezier = function (p1, p2, p3, p4, t) {\r\n var f = 1 - t;\r\n return Math.pow(f, 3) * p1 + 3 * f * f * t * p2 + 3 * f * t * t * p3 + Math.pow(t, 3) * p4;\r\n };\r\n var getPoint = function (i) { return ({ x: oldX.get(i), y: oldY.get(i) }); };\r\n var getY1 = function (i) {\r\n var y1 = y1Values === null || y1Values === void 0 ? void 0 : y1Values.get(index);\r\n if (y1 === undefined || y1 !== y1) {\r\n return Infinity;\r\n }\r\n return y1;\r\n };\r\n var pPrev = getPoint(iStart);\r\n var pCur = getPoint(iStart);\r\n var pNext = getPoint(iStart + 1);\r\n var pAfter = getPoint(iStart + 2);\r\n var p3;\r\n var index = 0;\r\n for (var i = iStart; i < iEnd; i++) {\r\n xValues.push_back(pCur.x);\r\n indexes.push_back(index);\r\n yValues.push_back(Math.min(pCur.y, getY1(index)));\r\n index++;\r\n var p2 = getControlPoint(pCur.x, pCur.y, (_a = p3 === null || p3 === void 0 ? void 0 : p3.xc) !== null && _a !== void 0 ? _a : pPrev.x, (_b = p3 === null || p3 === void 0 ? void 0 : p3.yc) !== null && _b !== void 0 ? _b : pPrev.y, pNext.x, pNext.y, curvature);\r\n p3 = getControlPoint(pNext.x, pNext.y, pAfter.x, pAfter.y, pCur.x, pCur.y, curvature);\r\n for (var j = 1; j < interpolationPoints; j++) {\r\n var t = EasingFunctions_1.easing.inOutCubic(j / interpolationPoints);\r\n var x = bezier(pCur.x, p2.xc, p3.xc, pNext.x, t);\r\n var y = bezier(pCur.y, p2.yc, p3.yc, pNext.y, t);\r\n xValues.push_back(x);\r\n yValues.push_back(Math.min(y, getY1(index)));\r\n indexes.push_back(index);\r\n index++;\r\n }\r\n if (i > iStart)\r\n pPrev = pCur;\r\n pCur = pNext;\r\n pNext = pAfter;\r\n if (i < iEnd - 2)\r\n pAfter = getPoint(i + 3);\r\n }\r\n xValues.push_back(pNext.x);\r\n yValues.push_back(Math.min(pNext.y, getY1(index)));\r\n indexes.push_back(index);\r\n};\r\nexports.bezierTransform = bezierTransform;\r\n/**\r\n * A RenderDataTransform that calculates a Cubic Bezier curve over an XyDataSeries, while respecting the bounds of the data.\r\n */\r\nvar BezierRenderDataTransform = /** @class */ (function (_super) {\r\n __extends(BezierRenderDataTransform, _super);\r\n function BezierRenderDataTransform(parentSeries, wasmContext, drawingProviders, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, parentSeries, wasmContext, drawingProviders) || this;\r\n _this.interpolationPointsProperty = 20;\r\n _this.curvatureProperty = 0.5;\r\n _this.interpolationPointsProperty = (_a = options === null || options === void 0 ? void 0 : options.interpolationPoints) !== null && _a !== void 0 ? _a : _this.interpolationPoints;\r\n _this.curvatureProperty = (_b = options === null || options === void 0 ? void 0 : options.curvature) !== null && _b !== void 0 ? _b : _this.curvature;\r\n return _this;\r\n }\r\n Object.defineProperty(BezierRenderDataTransform.prototype, \"interpolationPoints\", {\r\n /** The number of points to add between each data point. Default 20\r\n * These are Not uniformly distributed, but clutered around the data points to give smoother curves\r\n */\r\n get: function () {\r\n return this.interpolationPointsProperty;\r\n },\r\n set: function (value) {\r\n var _a, _b;\r\n if (this.interpolationPointsProperty !== value) {\r\n this.interpolationPointsProperty = value;\r\n this.requiresTransform = true;\r\n if ((_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback) {\r\n (_b = this.parentSeries) === null || _b === void 0 ? void 0 : _b.invalidateParentCallback();\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BezierRenderDataTransform.prototype, \"curvature\", {\r\n /** A scale factor for the tightness of the curves. Valid values 0 to 1. Lower = tighter curves */\r\n get: function () {\r\n return this.curvatureProperty;\r\n },\r\n set: function (value) {\r\n var _a, _b;\r\n if (this.curvatureProperty !== value) {\r\n this.curvatureProperty = value;\r\n this.requiresTransform = true;\r\n if ((_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback) {\r\n (_b = this.parentSeries) === null || _b === void 0 ? void 0 : _b.invalidateParentCallback();\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BezierRenderDataTransform.prototype.createPointSeries = function () {\r\n return new XyPointSeriesResampled_1.XyPointSeriesResampled(this.wasmContext, new NumberRange_1.NumberRange(0, 0));\r\n };\r\n BezierRenderDataTransform.prototype.runTransformInternal = function (renderPassData) {\r\n var _a;\r\n var _b = renderPassData.pointSeries, oldX = _b.xValues, oldY = _b.yValues, oldI = _b.indexes, resampled = _b.resampled;\r\n var _c = this.pointSeries, xValues = _c.xValues, yValues = _c.yValues, indexes = _c.indexes;\r\n var iStart = resampled ? 0 : renderPassData.indexRange.min;\r\n var iEnd = resampled ? oldX.size() - 1 : (_a = renderPassData.indexRange) === null || _a === void 0 ? void 0 : _a.max;\r\n if (oldX.size() == 0) {\r\n // Nothing to do\r\n return renderPassData.pointSeries;\r\n }\r\n (0, exports.bezierTransform)(xValues, yValues, indexes, oldX, oldY, iStart, iEnd, this.interpolationPoints, this.curvature);\r\n return this.pointSeries;\r\n };\r\n return BezierRenderDataTransform;\r\n}(BaseRenderDataTransform_1.BaseRenderDataTransform));\r\nexports.BezierRenderDataTransform = BezierRenderDataTransform;\r\n/**\r\n * A RenderDataTransform that calculates a Cubic Bezier curve over the an Xyy dataSeries, while respecting the bounds of the data.\r\n */\r\nvar XyyBezierRenderDataTransform = /** @class */ (function (_super) {\r\n __extends(XyyBezierRenderDataTransform, _super);\r\n function XyyBezierRenderDataTransform(parentSeries, wasmContext, drawingProviders, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, parentSeries, wasmContext, drawingProviders) || this;\r\n _this.interpolationPointsProperty = 20;\r\n _this.curvatureProperty = 0.5;\r\n _this.forceYGreaterThanY1 = false;\r\n _this.interpolationPointsProperty = (_a = options === null || options === void 0 ? void 0 : options.interpolationPoints) !== null && _a !== void 0 ? _a : _this.interpolationPoints;\r\n _this.curvatureProperty = (_b = options === null || options === void 0 ? void 0 : options.curvature) !== null && _b !== void 0 ? _b : _this.curvature;\r\n return _this;\r\n }\r\n Object.defineProperty(XyyBezierRenderDataTransform.prototype, \"interpolationPoints\", {\r\n /** The number of points to add between each data point. Default 20\r\n * These are Not uniformly distributed, but clutered around the data points to give smoother curves\r\n */\r\n get: function () {\r\n return this.interpolationPointsProperty;\r\n },\r\n set: function (value) {\r\n var _a, _b;\r\n if (this.interpolationPointsProperty !== value) {\r\n this.interpolationPointsProperty = value;\r\n this.requiresTransform = true;\r\n if ((_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback) {\r\n (_b = this.parentSeries) === null || _b === void 0 ? void 0 : _b.invalidateParentCallback();\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyyBezierRenderDataTransform.prototype, \"curvature\", {\r\n /** A scale factor for the tightness of the curves. Valid values 0 to 1. Lower = tighter curves */\r\n get: function () {\r\n return this.curvatureProperty;\r\n },\r\n set: function (value) {\r\n var _a, _b;\r\n if (this.curvatureProperty !== value) {\r\n this.curvatureProperty = value;\r\n this.requiresTransform = true;\r\n if ((_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback) {\r\n (_b = this.parentSeries) === null || _b === void 0 ? void 0 : _b.invalidateParentCallback();\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n XyyBezierRenderDataTransform.prototype.createPointSeries = function () {\r\n return new XyyPointSeriesResampled_1.XyyPointSeriesResampled(this.wasmContext, new NumberRange_1.NumberRange(0, 0));\r\n };\r\n XyyBezierRenderDataTransform.prototype.runTransformInternal = function (renderPassData) {\r\n var _a;\r\n var _b = renderPassData.pointSeries, oldX = _b.xValues, oldY = _b.yValues, oldY1 = _b.y1Values, oldI = _b.indexes, resampled = _b.resampled;\r\n var _c = this.pointSeries, xValues = _c.xValues, yValues = _c.yValues, y1Values = _c.y1Values, indexes = _c.indexes;\r\n var iStart = resampled ? 0 : renderPassData.indexRange.min;\r\n var iEnd = resampled ? oldX.size() - 1 : (_a = renderPassData.indexRange) === null || _a === void 0 ? void 0 : _a.max;\r\n if (oldX.size() == 0) {\r\n // Nothing to do\r\n return renderPassData.pointSeries;\r\n }\r\n (0, exports.bezierTransform)(xValues, y1Values, indexes, oldX, oldY1, iStart, iEnd, this.interpolationPoints, this.curvature);\r\n (0, exports.bezierTransform)(xValues, yValues, indexes, oldX, oldY, iStart, iEnd, this.interpolationPoints, this.curvature, this.forceYGreaterThanY1 ? y1Values : undefined);\r\n return this.pointSeries;\r\n };\r\n return XyyBezierRenderDataTransform;\r\n}(BaseRenderDataTransform_1.BaseRenderDataTransform));\r\nexports.XyyBezierRenderDataTransform = XyyBezierRenderDataTransform;\r\n/**\r\n * A RenderDataTransform that calculates a Cubic Bezier curve over the an Xyy dataSeries, while respecting the bounds of the data.\r\n * This also restricts the Y1 values to be less than the Y values, allowing this to be used for stacked series.\r\n */\r\nvar SmoothStackedRenderDataTransform = /** @class */ (function (_super) {\r\n __extends(SmoothStackedRenderDataTransform, _super);\r\n function SmoothStackedRenderDataTransform() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.forceYGreaterThanY1 = true;\r\n return _this;\r\n }\r\n return SmoothStackedRenderDataTransform;\r\n}(XyyBezierRenderDataTransform));\r\nexports.SmoothStackedRenderDataTransform = SmoothStackedRenderDataTransform;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SplineRenderDataTransform = void 0;\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar XyPointSeriesResampled_1 = require(\"../../../Model/PointSeries/XyPointSeriesResampled\");\r\nvar BaseRenderDataTransform_1 = require(\"./BaseRenderDataTransform\");\r\nvar SplineRenderDataTransform = /** @class */ (function (_super) {\r\n __extends(SplineRenderDataTransform, _super);\r\n function SplineRenderDataTransform() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.interpolationPoints = 10;\r\n _this.warnOnSplineFailure = true;\r\n _this.useForYRange = true;\r\n return _this;\r\n }\r\n SplineRenderDataTransform.prototype.createPointSeries = function () {\r\n return new XyPointSeriesResampled_1.XyPointSeriesResampled(this.wasmContext, new NumberRange_1.NumberRange(0, 0));\r\n };\r\n SplineRenderDataTransform.prototype.runTransformInternal = function (renderPassData) {\r\n var xValues = this.parentSeries.xAxis.isCategoryAxis\r\n ? renderPassData.pointSeries.indexes\r\n : renderPassData.pointSeries.xValues;\r\n var initialSize = xValues.size();\r\n if (initialSize == 0) {\r\n // Nothing to do\r\n return renderPassData.pointSeries;\r\n }\r\n var yValues = renderPassData.pointSeries.yValues;\r\n var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;\r\n this.wasmContext.SCRTSplineHelperCubicSpline(xValues, yValues, this.pointSeries.xValues, this.pointSeries.yValues, initialSize, this.interpolationPoints, this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN);\r\n if (!containsNaN && isNaN(this.pointSeries.yValues.get(0))) {\r\n if (this.warnOnSplineFailure) {\r\n console.warn(\"Could not calculate spline values. X data may contain duplicates. Falling back to original values.\\n To disable this warning set warnOnSplineFailure = false.\");\r\n }\r\n return renderPassData.pointSeries;\r\n }\r\n else {\r\n return this.pointSeries;\r\n }\r\n };\r\n return SplineRenderDataTransform;\r\n}(BaseRenderDataTransform_1.BaseRenderDataTransform));\r\nexports.SplineRenderDataTransform = SplineRenderDataTransform;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyySplineRenderDataTransform = void 0;\r\nvar NumberRange_1 = require(\"../../../../Core/NumberRange\");\r\nvar XyyPointSeriesResampled_1 = require(\"../../../Model/PointSeries/XyyPointSeriesResampled\");\r\nvar BaseRenderDataTransform_1 = require(\"./BaseRenderDataTransform\");\r\nvar XyySplineRenderDataTransform = /** @class */ (function (_super) {\r\n __extends(XyySplineRenderDataTransform, _super);\r\n function XyySplineRenderDataTransform() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.interpolationPoints = 10;\r\n _this.warnOnSplineFailure = true;\r\n _this.useForYRange = true;\r\n return _this;\r\n }\r\n XyySplineRenderDataTransform.prototype.createPointSeries = function () {\r\n return new XyyPointSeriesResampled_1.XyyPointSeriesResampled(this.wasmContext, new NumberRange_1.NumberRange(0, 0));\r\n };\r\n XyySplineRenderDataTransform.prototype.runTransformInternal = function (renderPassData) {\r\n var xValues = this.parentSeries.xAxis.isCategoryAxis\r\n ? renderPassData.pointSeries.indexes\r\n : renderPassData.pointSeries.xValues;\r\n var yValues = renderPassData.pointSeries.yValues;\r\n var y1Values = renderPassData.pointSeries.y1Values;\r\n var initialSize = xValues.size();\r\n if (initialSize == 0) {\r\n // Nothing to do\r\n return renderPassData.pointSeries;\r\n }\r\n var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;\r\n this.wasmContext.SCRTSplineHelperCubicSpline(xValues, yValues, this.pointSeries.xValues, this.pointSeries.yValues, initialSize, this.interpolationPoints, containsNaN);\r\n if (!containsNaN && isNaN(this.pointSeries.yValues.get(0))) {\r\n if (this.warnOnSplineFailure) {\r\n console.warn(\"Could not calculate spline values. X data may contain duplicates. Falling back to original values.\\n To disable this warning set warnOnSplineFailure = false.\");\r\n }\r\n return renderPassData.pointSeries;\r\n }\r\n else {\r\n this.wasmContext.SCRTSplineHelperCubicSpline(xValues, y1Values, this.pointSeries.xValues, this.pointSeries.y1Values, initialSize, this.interpolationPoints, containsNaN);\r\n return this.pointSeries;\r\n }\r\n };\r\n return XyySplineRenderDataTransform;\r\n}(BaseRenderDataTransform_1.BaseRenderDataTransform));\r\nexports.XyySplineRenderDataTransform = XyySplineRenderDataTransform;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RolloverModifierRenderableSeriesProps = void 0;\r\nvar Deleter_1 = require(\"../../../../Core/Deleter\");\r\nvar SciChartSurfaceBase_1 = require(\"../../SciChartSurfaceBase\");\r\nvar constants_1 = require(\"./constants\");\r\nvar RolloverModifierRenderableSeriesProps = /** @class */ (function () {\r\n function RolloverModifierRenderableSeriesProps(renderableSeries, isY1) {\r\n if (isY1 === void 0) { isY1 = false; }\r\n this.tooltipLegendOffsetX = 20;\r\n this.tooltipLegendOffsetY = 20;\r\n this.showsRolloverProperty = true;\r\n this.tooltipTextColorProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.textAnnotationForeground;\r\n this.renderableSeries = renderableSeries;\r\n this.isY1 = isY1;\r\n }\r\n RolloverModifierRenderableSeriesProps.copy = function (from, to) {\r\n to.markerColorProperty = from.markerColor;\r\n to.showsRolloverProperty = from.showRollover;\r\n to.tooltipColorProperty = from.tooltipColor;\r\n to.tooltipDataTemplateProperty = from.tooltipDataTemplate;\r\n to.tooltipLabelX = from.tooltipLabelX;\r\n to.tooltipLabelY = from.tooltipLabelY;\r\n to.tooltipLegendOffsetX = from.tooltipLegendOffsetX;\r\n to.tooltipLegendOffsetY = from.tooltipLegendOffsetY;\r\n to.tooltipTemplate = from.tooltipTemplate;\r\n to.tooltipTextColorProperty = from.tooltipTextColorProperty;\r\n to.tooltipTitleProperty = from.tooltipTitle;\r\n to.shadowColorProperty = from.shadowColorProperty;\r\n to.invalidateParentCallback = from.invalidateParentCallback;\r\n };\r\n RolloverModifierRenderableSeriesProps.prototype.setInvalidateParentCallback = function (callback) {\r\n this.invalidateParentCallback = callback;\r\n };\r\n Object.defineProperty(RolloverModifierRenderableSeriesProps.prototype, \"showRollover\", {\r\n get: function () {\r\n return this.showsRolloverProperty;\r\n },\r\n set: function (value) {\r\n this.showsRolloverProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SHOWS_ROLLOVER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifierRenderableSeriesProps.prototype, \"tooltipColor\", {\r\n get: function () {\r\n if (this.tooltipColorProperty) {\r\n return this.tooltipColorProperty;\r\n }\r\n else if (this.getRenderableSeriesStroke()) {\r\n return this.getRenderableSeriesStroke();\r\n }\r\n else {\r\n return SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.textAnnotationBackground;\r\n }\r\n },\r\n set: function (value) {\r\n this.tooltipColorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifierRenderableSeriesProps.prototype, \"tooltipTextColor\", {\r\n get: function () {\r\n return this.tooltipTextColorProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipTextColorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_TEXT_COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifierRenderableSeriesProps.prototype, \"tooltipTitle\", {\r\n get: function () {\r\n return this.tooltipTitleProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipTitleProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_TITLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifierRenderableSeriesProps.prototype, \"markerColor\", {\r\n get: function () {\r\n if (this.markerColorProperty) {\r\n return this.markerColorProperty;\r\n }\r\n else if (this.getRenderableSeriesStroke()) {\r\n return this.getRenderableSeriesStroke();\r\n }\r\n else {\r\n return SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.textAnnotationBackground;\r\n }\r\n },\r\n set: function (value) {\r\n this.markerColorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.MARKER_COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifierRenderableSeriesProps.prototype, \"shadowColor\", {\r\n get: function () {\r\n return this.shadowColorProperty;\r\n },\r\n set: function (value) {\r\n this.shadowColorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_SHADOW_COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifierRenderableSeriesProps.prototype, \"tooltipDataTemplate\", {\r\n get: function () {\r\n return this.tooltipDataTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipDataTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_DATA_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RolloverModifierRenderableSeriesProps.prototype, \"tooltipLegendTemplate\", {\r\n get: function () {\r\n return this.tooltipLegendTemplateProperty;\r\n },\r\n // TODO: remove in version 2.0\r\n set: function (value) {\r\n console.warn(\"tooltipLegendTemplate property on the RolloverModifierRenderableSeriesProps will be removed in version 2.0, please set tooltipLegendTemplate on the RolloverModifier instead\");\r\n this.tooltipLegendTemplateProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RolloverModifierRenderableSeriesProps.prototype.delete = function () {\r\n var _a, _b;\r\n this.rolloverModifier = undefined;\r\n if (!((_a = this.marker) === null || _a === void 0 ? void 0 : _a.isDeleted)) {\r\n this.marker = (0, Deleter_1.deleteSafe)(this.marker);\r\n }\r\n this.marker = undefined;\r\n if (!((_b = this.tooltip) === null || _b === void 0 ? void 0 : _b.isDeleted)) {\r\n this.tooltip = (0, Deleter_1.deleteSafe)(this.tooltip);\r\n }\r\n this.tooltip = undefined;\r\n };\r\n RolloverModifierRenderableSeriesProps.prototype.notifyPropertyChanged = function (propertyName) {\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n RolloverModifierRenderableSeriesProps.prototype.getRenderableSeriesStroke = function () {\r\n if (this.isY1) {\r\n var bandRS = this.renderableSeries;\r\n // @ts-ignore\r\n return bandRS.strokeY1Property;\r\n }\r\n // Get property here to retain Auto_Color prefix\r\n // @ts-ignore\r\n return this.renderableSeries.strokeProperty;\r\n };\r\n return RolloverModifierRenderableSeriesProps;\r\n}());\r\nexports.RolloverModifierRenderableSeriesProps = RolloverModifierRenderableSeriesProps;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"MARKER_COLOR\"] = \"MARKER_COLOR\";\r\n PROPERTY[\"SHOWS_ROLLOVER\"] = \"SHOWS_ROLLOVER\";\r\n PROPERTY[\"TOOLTIP_COLOR\"] = \"TOOLTIP_COLOR\";\r\n PROPERTY[\"TOOLTIP_DATA_TEMPLATE\"] = \"TOOLTIP_DATA_TEMPLATE\";\r\n PROPERTY[\"TOOLTIP_TEXT_COLOR\"] = \"TOOLTIP_TEXT_COLOR\";\r\n PROPERTY[\"TOOLTIP_TITLE\"] = \"TOOLTIP_TITLE\";\r\n PROPERTY[\"TOOLTIP_SHADOW_COLOR\"] = \"TOOLTIP_SHADOW_COLOR\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SelectionChangedArgs = void 0;\r\n/**\r\n * Arguments passed into the callback for {@link SeriesSelectionModifier.selectionChanged} event\r\n */\r\nvar SelectionChangedArgs = /** @class */ (function () {\r\n /**\r\n * Creates an instance of SelectionChangedArgs -\r\n * arguments passed into the callback for {@link SeriesSelectionModifier.selectionChanged} event\r\n * @param source\r\n * @param selectedSeries\r\n * @param allSeries\r\n */\r\n function SelectionChangedArgs(source, selectedSeries, allSeries, hitTestInfo) {\r\n this.source = source;\r\n this.selectedSeries = selectedSeries;\r\n this.allSeries = allSeries;\r\n this.hitTestInfo = hitTestInfo;\r\n }\r\n return SelectionChangedArgs;\r\n}());\r\nexports.SelectionChangedArgs = SelectionChangedArgs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesHoveredArgs = void 0;\r\nvar SeriesHoveredArgs = /** @class */ (function () {\r\n function SeriesHoveredArgs(sourceSeries, hovered) {\r\n this.sourceSeries = sourceSeries;\r\n this.hovered = hovered;\r\n }\r\n return SeriesHoveredArgs;\r\n}());\r\nexports.SeriesHoveredArgs = SeriesHoveredArgs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesSelectedArgs = void 0;\r\nvar SeriesSelectedArgs = /** @class */ (function () {\r\n function SeriesSelectedArgs(sourceSeries, selected) {\r\n this.sourceSeries = sourceSeries;\r\n this.isSelected = selected;\r\n }\r\n return SeriesSelectedArgs;\r\n}());\r\nexports.SeriesSelectedArgs = SeriesSelectedArgs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesVisibleChangedArgs = void 0;\r\nvar SeriesVisibleChangedArgs = /** @class */ (function () {\r\n function SeriesVisibleChangedArgs(sourceSeries, visible) {\r\n this.sourceSeries = sourceSeries;\r\n this.isVisible = visible;\r\n }\r\n return SeriesVisibleChangedArgs;\r\n}());\r\nexports.SeriesVisibleChangedArgs = SeriesVisibleChangedArgs;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShaderEffect = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar PropertyChangedEventArgs_1 = require(\"../../../Core/PropertyChangedEventArgs\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar tsrExtensions_1 = require(\"../../../utils/tsrExtensions\");\r\nvar constants_1 = require(\"./constants\");\r\nvar NativeObject_1 = require(\"../Helpers/NativeObject\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\n/**\r\n * A {@link ShaderEffect} can be applied to a {@link BaseRenderableSeries | RenderableSeries} via the\r\n * {@link BaseRenderableSeries.effect} property. The effect modifies the render output of the chart type.\r\n */\r\nvar ShaderEffect = /** @class */ (function (_super) {\r\n __extends(ShaderEffect, _super);\r\n /**\r\n * Creates an instance of the {@link ShaderEffect}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param seriesEffect The native {@link SCRTSeriesEffect} instance that provides the shader effect\r\n * @param options Optional parameters of type {@link IShaderEffectOptions} to configure the effect\r\n */\r\n function ShaderEffect(webAssemblyContext, seriesEffect, options) {\r\n var _this = _super.call(this) || this;\r\n Guard_1.Guard.notNull(webAssemblyContext, \"webAssemblyContext\");\r\n if (!app_1.IS_TEST_ENV) {\r\n Guard_1.Guard.notNull(seriesEffect, \"seriesEffect\");\r\n }\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.propertyChanged = new EventHandler_1.EventHandler();\r\n _this.nativeEffect = seriesEffect;\r\n _this.intensity = (options === null || options === void 0 ? void 0 : options.intensity) || 1;\r\n _this.range = (options === null || options === void 0 ? void 0 : options.range) || 0;\r\n _this.offset = (options === null || options === void 0 ? void 0 : options.offset) || new Point_1.Point(0, 0);\r\n _this.color = (options === null || options === void 0 ? void 0 : options.color) || \"#444444\";\r\n return _this;\r\n }\r\n ShaderEffect.prototype.delete = function () {\r\n this.nativeEffect = (0, Deleter_1.deleteSafe)(this.nativeEffect);\r\n this.webAssemblyContext = undefined;\r\n };\r\n /**\r\n * Gets the native {@link SCRTSeriesEffect} which contains the shader effect that will be applied in WebGL\r\n */\r\n ShaderEffect.prototype.getNativeEffect = function () {\r\n return this.nativeEffect;\r\n };\r\n Object.defineProperty(ShaderEffect.prototype, \"intensity\", {\r\n /**\r\n * Gets or sets the intensity property\r\n */\r\n get: function () {\r\n return this.intensityProperty;\r\n },\r\n /**\r\n * Gets or sets the intensity property\r\n */\r\n set: function (intensity) {\r\n this.intensityProperty = intensity;\r\n this.nativeEffect.SetIntensity(intensity);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.INTENSITY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShaderEffect.prototype, \"offset\", {\r\n /**\r\n * Gets or sets the offset property\r\n */\r\n get: function () {\r\n return this.offsetProperty;\r\n },\r\n /**\r\n * Gets or sets the offset property\r\n */\r\n set: function (offset) {\r\n Guard_1.Guard.notNull(offset, \"offset\");\r\n this.offsetProperty = offset;\r\n var tsrOffset = new this.webAssemblyContext.TSRVector2(offset.x, offset.y);\r\n this.nativeEffect.SetOffset(tsrOffset);\r\n tsrOffset.delete();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.OFFSET);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShaderEffect.prototype, \"color\", {\r\n /**\r\n * Gets or sets the color property as an HTML Color code\r\n */\r\n get: function () {\r\n return this.colorProperty;\r\n },\r\n /**\r\n * Gets or sets the color property as an HTML Color code\r\n */\r\n set: function (color) {\r\n this.colorProperty = color;\r\n var colorArgb = (0, parseColor_1.parseColorToTArgb)(color);\r\n var tsrVector4 = (0, NativeObject_1.getVector4)(this.webAssemblyContext, 0, 0, 0, 0);\r\n (0, tsrExtensions_1.updateTsrVector4)(colorArgb, tsrVector4);\r\n this.nativeEffect.SetColor(tsrVector4);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShaderEffect.prototype, \"range\", {\r\n /**\r\n * Gets or sets the range property\r\n */\r\n get: function () {\r\n return this.rangeProperty;\r\n },\r\n /**\r\n * Gets or sets the range property\r\n */\r\n set: function (range) {\r\n this.rangeProperty = range;\r\n this.nativeEffect.SetRange(range);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.RANGE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Notifies subscribers to {@link propertyChanged} that a property has changed and the parent {@link SciChartSurface} needs to redraw\r\n * @param propertyName\r\n */\r\n ShaderEffect.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n (_a = this.propertyChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new PropertyChangedEventArgs_1.PropertyChangedEventArgs(propertyName));\r\n };\r\n /** Convert the object to a definition that can be serialized to JSON, or used directly with the builder api */\r\n ShaderEffect.prototype.toJSON = function () {\r\n var options = {\r\n color: this.color,\r\n intensity: this.intensity,\r\n offset: this.offset,\r\n range: this.range\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n return ShaderEffect;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.ShaderEffect = ShaderEffect;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShadowEffect = void 0;\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar ShaderEffectType_1 = require(\"../../../types/ShaderEffectType\");\r\nvar ShaderEffect_1 = require(\"./ShaderEffect\");\r\n/**\r\n * Defines a drop-shadow shader effect that may be applied to a {@link BaseRenderableSeries | RenderableSeries}\r\n * @remarks\r\n * To apply a Shadow effect to a chart series, use the following code:\r\n * ```ts\r\n * const effect = new ShadowEffect(wasmContext, {\r\n * range: 1,\r\n * brightness: 100,\r\n * offset: new Point(10, 10)\r\n * });\r\n * const lineSeries = new FastLineRenderableSeries(wasmContext, { stroke, effect });\r\n * ```\r\n * Note that effects implement {@link IDeletable} and must be manually deleted to free webassembly / native memory\r\n */\r\nvar ShadowEffect = /** @class */ (function (_super) {\r\n __extends(ShadowEffect, _super);\r\n /**\r\n * Creates an instance of the {@link ShadowEffect}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IShaderEffectOptions} to configure the effect\r\n */\r\n function ShadowEffect(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, new webAssemblyContext.SCRTShadowEffect(), {\r\n offset: (options === null || options === void 0 ? void 0 : options.offset) || new Point_1.Point(10, 10),\r\n range: (options === null || options === void 0 ? void 0 : options.range) || 1,\r\n color: options\r\n ? \"rgba(\".concat((options === null || options === void 0 ? void 0 : options.brightness) || 68, \",\").concat((options === null || options === void 0 ? void 0 : options.brightness) || 68, \",\").concat((options === null || options === void 0 ? void 0 : options.brightness) || 68, \",1)\")\r\n : \"#444444\"\r\n }) || this;\r\n _this.type = ShaderEffectType_1.EShaderEffectType.Shadow;\r\n return _this;\r\n }\r\n return ShadowEffect;\r\n}(ShaderEffect_1.ShaderEffect));\r\nexports.ShadowEffect = ShadowEffect;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SmoothStackedMountainRenderableSeries = void 0;\r\nvar BezierRenderDataTransform_1 = require(\"./RenderDataTransforms/BezierRenderDataTransform\");\r\nvar StackedMountainRenderableSeries_1 = require(\"./StackedMountainRenderableSeries\");\r\n/**\r\n * @summary The {@link SmoothStackedMountainRenderableSeries} allows creating JavaScript Smoothed Stacked Mountain charts\r\n * @description\r\n * Multiple {@link StackedMountainRenderableSeries} are required to create a stacked mountain chart type in SciChart.\r\n * These are grouped with a {@link StackedMountainCollection}, which implements {@link IRenderableSeries} and may be added\r\n * directly to a {@link SciChartSurface.renderableSeries} collection.\r\n *\r\n * Code sample below for creating a stacked mountain chart\r\n * ```ts\r\n * const stackedMountain0 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 1, including set dataSeries\r\n * const stackedMountain1 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 2, including set dataSeries\r\n * const stackedMountain2 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 3, including set dataSeries\r\n * const stackedMountainCollection = new StackedMountainCollection(wasmContext);\r\n * stackedMountainCollection.add(stackedMountain0, stackedMountain1, stackedMountain2);\r\n *\r\n * sciChartSurface.renderableSeries.add(stackedMountainCollection);\r\n * ````\r\n * @remarks\r\n * Do not add the {@link StackedMountainRenderableSeries} directly to {@link SciChartSurface.renderableSeries} array, instead,\r\n * use a {@link StackedMountainCollection} to group / stack the mountains.\r\n */\r\nvar SmoothStackedMountainRenderableSeries = /** @class */ (function (_super) {\r\n __extends(SmoothStackedMountainRenderableSeries, _super);\r\n function SmoothStackedMountainRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n var transform = new BezierRenderDataTransform_1.SmoothStackedRenderDataTransform(_this, webAssemblyContext, []);\r\n transform.interpolationPoints = (_a = options === null || options === void 0 ? void 0 : options.interpolationPoints) !== null && _a !== void 0 ? _a : transform.interpolationPoints;\r\n transform.curvature = (_b = options === null || options === void 0 ? void 0 : options.curvature) !== null && _b !== void 0 ? _b : transform.curvature;\r\n _this.renderDataTransform = transform;\r\n return _this;\r\n }\r\n return SmoothStackedMountainRenderableSeries;\r\n}(StackedMountainRenderableSeries_1.StackedMountainRenderableSeries));\r\nexports.SmoothStackedMountainRenderableSeries = SmoothStackedMountainRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SplineBandRenderableSeries = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar isRealNumber_1 = require(\"../../../utils/isRealNumber\");\r\nvar BaseDataSeries_1 = require(\"../../Model/BaseDataSeries\");\r\nvar IDataSeries_1 = require(\"../../Model/IDataSeries\");\r\nvar XyyPointSeriesWrapped_1 = require(\"../../Model/PointSeries/XyyPointSeriesWrapped\");\r\nvar RenderPassData_1 = require(\"../../Services/RenderPassData\");\r\nvar BaseBandRenderableSeries_1 = require(\"./BaseBandRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar XyySplineRenderDataTransform_1 = require(\"./RenderDataTransforms/XyySplineRenderDataTransform\");\r\n/**\r\n * Defines a JavaScript Spline Band-series or High-Low polygon fill chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a line series to a {@link SciChartSurface} you need to declare both the {@link SplineBandRenderableSeries | RenderableSeries}\r\n * and a {@link XyyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyyDataSeries(wasmContext);\r\n * dataSeries.append(1,2,3);\r\n * dataSeries.append(2,3,4);\r\n * // Create the renderableSeries\r\n * const bandSeries = new SplineBandRenderableSeries(wasmContext);\r\n * bandSeries.dataSeries = dataSeries;\r\n * // Set interpolation points\r\n * bandSeries.interpolationPoints = 10;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(bandSeries);\r\n * ```\r\n */\r\nvar SplineBandRenderableSeries = /** @class */ (function (_super) {\r\n __extends(SplineBandRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link SplineBandRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link ISplineBandRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function SplineBandRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.SplineBandSeries;\r\n _this.isSplineProperty = true;\r\n _this.interpolationPointsProperty = 10;\r\n _this.interpolationPointsProperty = (_a = options === null || options === void 0 ? void 0 : options.interpolationPoints) !== null && _a !== void 0 ? _a : _this.interpolationPointsProperty;\r\n _this.renderDataTransform = new XyySplineRenderDataTransform_1.XyySplineRenderDataTransform(_this, webAssemblyContext, [\r\n _this.drawingProviders[0]\r\n ]);\r\n _this.renderDataTransform.interpolationPoints = _this.interpolationPoints;\r\n // Must be called here for the series type to be available\r\n if ((_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached) {\r\n (_c = _this.paletteProvider) === null || _c === void 0 ? void 0 : _c.onAttached(_this);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(SplineBandRenderableSeries.prototype, \"isSpline\", {\r\n get: function () {\r\n return this.isSplineProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineBandRenderableSeries.prototype, \"interpolationPoints\", {\r\n /**\r\n * Gets or sets the interpolationPoints being used for the Spline\r\n */\r\n get: function () {\r\n return this.interpolationPointsProperty;\r\n },\r\n /**\r\n * Gets or sets the interpolationPoints being used for the Spline\r\n */\r\n set: function (value) {\r\n this.interpolationPointsProperty = value;\r\n this.renderDataTransform.interpolationPoints = this.interpolationPoints;\r\n this.renderDataTransform.requiresTransform = true;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.INTERPOLATION_POINTS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineBandRenderableSeries.prototype, \"xSplineValues\", {\r\n get: function () {\r\n if (!this.transformedRenderPassData) {\r\n throw Error(\"Spline values are not available until after first render, or call updateSplineValues\");\r\n }\r\n return this.transformedRenderPassData.pointSeries.xValues;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineBandRenderableSeries.prototype, \"ySplineValues\", {\r\n get: function () {\r\n if (!this.transformedRenderPassData) {\r\n throw Error(\"Spline values are not available until after first render, or call updateSplineValues\");\r\n }\r\n return this.transformedRenderPassData.pointSeries.yValues;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineBandRenderableSeries.prototype, \"y1SplineValues\", {\r\n get: function () {\r\n if (!this.transformedRenderPassData) {\r\n throw Error(\"Spline values are not available until after first render, or call updateSplineValues\");\r\n }\r\n return this.transformedRenderPassData.pointSeries.y1Values;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineBandRenderableSeries.prototype, \"warnOnSplineFailure\", {\r\n /**\r\n * Set false to disable the warning if the spline cannot be calculated\r\n */\r\n get: function () {\r\n return this.renderDataTransform.warnOnSplineFailure;\r\n },\r\n /**\r\n * Set false to disable the warning if the spline cannot be calculated\r\n */\r\n set: function (value) {\r\n this.renderDataTransform.warnOnSplineFailure = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Updates spline values\r\n */\r\n SplineBandRenderableSeries.prototype.updateTransformedValues = function () {\r\n if (!this.dataSeries || !this.parentSurface) {\r\n return;\r\n }\r\n if (!this.currentRenderPassData) {\r\n this.currentRenderPassData = new RenderPassData_1.RenderPassData(this.getIndicesRange(this.xAxis.visibleRange, this.xAxis.isCategoryAxis), this.xAxis.getCurrentCoordinateCalculator, this.yAxis.getCurrentCoordinateCalculator, this.xAxis.isVerticalChart, new XyyPointSeriesWrapped_1.XyyPointSeriesWrapped(this.dataSeries));\r\n }\r\n this.transformedRenderPassData = this.renderDataTransform.runTransform(this.currentRenderPassData);\r\n };\r\n SplineBandRenderableSeries.prototype.updateSplineValues = function () {\r\n this.updateTransformedValues();\r\n };\r\n /** @deprecated This is now handled within the renderDataTransform */\r\n SplineBandRenderableSeries.prototype.onSplineFailure = function () { };\r\n /** @inheritDoc */\r\n SplineBandRenderableSeries.prototype.getYRange = function (xVisibleRange, isXCategoryAxis) {\r\n var _a;\r\n if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }\r\n if (this.isRunningAnimation) {\r\n return this.dataSeries.getWindowedYRange(xVisibleRange, true, isXCategoryAxis, IDataSeries_1.EDataSeriesValueType.Default, this.yRangeMode);\r\n }\r\n this.updateSplineValues();\r\n var xValues = this.xSplineValues;\r\n var yValues = this.ySplineValues;\r\n var y1Values = this.y1SplineValues;\r\n // TODO: getPositiveRange\r\n // if one point\r\n if (xValues.size() === 1) {\r\n var min = Math.min(yValues.get(0), y1Values.get(0));\r\n var max = Math.max(yValues.get(0), y1Values.get(0));\r\n return new NumberRange_1.NumberRange(min, max);\r\n }\r\n var indicesRange = isXCategoryAxis\r\n ? xVisibleRange\r\n : (0, BaseDataSeries_1.getIndicesRange)(this.webAssemblyContext, xValues, xVisibleRange, (_a = this.dataSeries) === null || _a === void 0 ? void 0 : _a.dataDistributionCalculator.isSortedAscending);\r\n var iMin = Math.max(Math.floor(indicesRange.min), 0);\r\n var iMax = Math.min(Math.ceil(indicesRange.max), xValues.size() - 1);\r\n if (iMax < iMin) {\r\n return undefined;\r\n }\r\n var minMax;\r\n var minMaxy1;\r\n try {\r\n minMax = this.webAssemblyContext.NumberUtil.MinMaxWithIndex(yValues, iMin, iMax - iMin + 1);\r\n if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {\r\n return undefined;\r\n }\r\n minMaxy1 = this.webAssemblyContext.NumberUtil.MinMaxWithIndex(y1Values, iMin, iMax - iMin + 1);\r\n if (!(0, isRealNumber_1.isRealNumber)(minMaxy1.minD) || !(0, isRealNumber_1.isRealNumber)(minMaxy1.maxD)) {\r\n return undefined;\r\n }\r\n return new NumberRange_1.NumberRange(Math.min(minMax.minD, minMaxy1.minD), Math.max(minMax.maxD, minMaxy1.maxD));\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(minMax);\r\n (0, Deleter_1.deleteSafe)(minMaxy1);\r\n }\r\n };\r\n /** @inheritDoc */\r\n SplineBandRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n interpolationPoints: this.interpolationPoints\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return SplineBandRenderableSeries;\r\n}(BaseBandRenderableSeries_1.BaseBandRenderableSeries));\r\nexports.SplineBandRenderableSeries = SplineBandRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SplineLineRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BaseLineRenderableSeries_1 = require(\"./BaseLineRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar SplineRenderDataTransform_1 = require(\"./RenderDataTransforms/SplineRenderDataTransform\");\r\n/**\r\n * Defines a line-series or line chart type with Cubic Spline interpolation in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a line series to a {@link SciChartSurface} you need to declare both the {@link SplineLineRenderableSeries | RenderableSeries}\r\n * and a {@link XyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyDataSeries(wasmContext);\r\n * dataSeries.append(1,2);\r\n * dataSeries.append(1,2);\r\n * // Create the renderableSeries\r\n * const lineSeries = new SplineLineRenderableSeries(wasmContext);\r\n * lineSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(lineSeries);\r\n * ```\r\n */\r\nvar SplineLineRenderableSeries = /** @class */ (function (_super) {\r\n __extends(SplineLineRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link SplineLineRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link ISplineLineRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function SplineLineRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.SplineLineSeries;\r\n // public xSplineValues: SCRTDoubleVector;\r\n // public ySplineValues: SCRTDoubleVector;\r\n _this.isSplineProperty = true;\r\n _this.interpolationPointsProperty = 10;\r\n // this.xSplineValues = new webAssemblyContext.SCRTDoubleVector();\r\n // this.ySplineValues = new webAssemblyContext.SCRTDoubleVector();\r\n _this.interpolationPointsProperty = (_a = options === null || options === void 0 ? void 0 : options.interpolationPoints) !== null && _a !== void 0 ? _a : _this.interpolationPointsProperty;\r\n _this.renderDataTransform = new SplineRenderDataTransform_1.SplineRenderDataTransform(_this, webAssemblyContext, [_this.drawingProviders[0]]);\r\n _this.renderDataTransform.interpolationPoints = _this.interpolationPoints;\r\n // Must be called here for the series type to be available\r\n if ((_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached) {\r\n (_c = _this.paletteProvider) === null || _c === void 0 ? void 0 : _c.onAttached(_this);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(SplineLineRenderableSeries.prototype, \"xSplineValues\", {\r\n get: function () {\r\n if (!this.transformedRenderPassData) {\r\n throw Error(\"Spline values are not available until after first render, or call updateSplineValues\");\r\n }\r\n return this.transformedRenderPassData.pointSeries.xValues;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineLineRenderableSeries.prototype, \"ySplineValues\", {\r\n get: function () {\r\n if (!this.transformedRenderPassData) {\r\n throw Error(\"Spline values are not available until after first render, or call updateSplineValues\");\r\n }\r\n return this.transformedRenderPassData.pointSeries.yValues;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineLineRenderableSeries.prototype, \"isSpline\", {\r\n get: function () {\r\n return this.isSplineProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineLineRenderableSeries.prototype, \"interpolationPoints\", {\r\n /**\r\n * Gets or sets the interpolationPoints being used for the Spline\r\n */\r\n get: function () {\r\n return this.interpolationPointsProperty;\r\n },\r\n /**\r\n * Gets or sets the interpolationPoints being used for the Spline\r\n */\r\n set: function (value) {\r\n this.interpolationPointsProperty = value;\r\n this.renderDataTransform.interpolationPoints = this.interpolationPoints;\r\n this.renderDataTransform.requiresTransform = true;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.INTERPOLATION_POINTS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineLineRenderableSeries.prototype, \"warnOnSplineFailure\", {\r\n /**\r\n * Set false to disable the warning if the spline cannot be calculated\r\n */\r\n get: function () {\r\n return this.renderDataTransform.warnOnSplineFailure;\r\n },\r\n /**\r\n * Set false to disable the warning if the spline cannot be calculated\r\n */\r\n set: function (value) {\r\n this.renderDataTransform.warnOnSplineFailure = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SplineLineRenderableSeries.prototype.updateSplineValues = function () {\r\n this.updateTransformedValues();\r\n };\r\n /** @deprecated This is now handled within the renderDataTransform */\r\n SplineLineRenderableSeries.prototype.onSplineFailure = function () { };\r\n /** @inheritDoc */\r\n SplineLineRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n interpolationPoints: this.interpolationPoints\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return SplineLineRenderableSeries;\r\n}(BaseLineRenderableSeries_1.BaseLineRenderableSeries));\r\nexports.SplineLineRenderableSeries = SplineLineRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SplineMountainRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BaseMountainRenderableSeries_1 = require(\"./BaseMountainRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar SplineRenderDataTransform_1 = require(\"./RenderDataTransforms/SplineRenderDataTransform\");\r\n/**\r\n * Defines a mountain/area series or JavaScript mountain chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a spline mountain series to a {@link SciChartSurface} you need to declare both the {@link SplineMountainRenderableSeries | RenderableSeries}\r\n * and a {@link XyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyDataSeries(wasmContext);\r\n * dataSeries.append(1,2);\r\n * dataSeries.append(1,2);\r\n * // Create the renderableSeries\r\n * const mountainSeries = new SplineMountainRenderableSeries(wasmContext);\r\n * mountainSeries.dataSeries = dataSeries;\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(mountainSeries);\r\n * ```\r\n */\r\nvar SplineMountainRenderableSeries = /** @class */ (function (_super) {\r\n __extends(SplineMountainRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link SplineMountainRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link ISplineMountainRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function SplineMountainRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.SplineMountainSeries;\r\n _this.isSplineProperty = true;\r\n _this.interpolationPointsProperty = 10;\r\n _this.interpolationPointsProperty = (_a = options === null || options === void 0 ? void 0 : options.interpolationPoints) !== null && _a !== void 0 ? _a : _this.interpolationPointsProperty;\r\n _this.renderDataTransform = new SplineRenderDataTransform_1.SplineRenderDataTransform(_this, webAssemblyContext, [_this.drawingProviders[0]]);\r\n _this.renderDataTransform.interpolationPoints = _this.interpolationPoints;\r\n // Must be called here for the series type to be available\r\n if ((_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached) {\r\n (_c = _this.paletteProvider) === null || _c === void 0 ? void 0 : _c.onAttached(_this);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(SplineMountainRenderableSeries.prototype, \"isSpline\", {\r\n get: function () {\r\n return this.isSplineProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineMountainRenderableSeries.prototype, \"interpolationPoints\", {\r\n /**\r\n * Gets or sets the interpolationPoints being used for the Spline\r\n */\r\n get: function () {\r\n return this.interpolationPointsProperty;\r\n },\r\n /**\r\n * Gets or sets the interpolationPoints being used for the Spline\r\n */\r\n set: function (value) {\r\n this.interpolationPointsProperty = value;\r\n this.renderDataTransform.interpolationPoints = this.interpolationPoints;\r\n this.renderDataTransform.requiresTransform = true;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.INTERPOLATION_POINTS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineMountainRenderableSeries.prototype, \"xSplineValues\", {\r\n get: function () {\r\n if (!this.transformedRenderPassData) {\r\n throw Error(\"Spline values are not available until after first render, or call updateSplineValues\");\r\n }\r\n return this.transformedRenderPassData.pointSeries.xValues;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineMountainRenderableSeries.prototype, \"ySplineValues\", {\r\n get: function () {\r\n if (!this.transformedRenderPassData) {\r\n throw Error(\"Spline values are not available until after first render, or call updateSplineValues\");\r\n }\r\n return this.transformedRenderPassData.pointSeries.yValues;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SplineMountainRenderableSeries.prototype, \"warnOnSplineFailure\", {\r\n /**\r\n * Set false to disable the warning if the spline cannot be calculated\r\n */\r\n get: function () {\r\n return this.renderDataTransform.warnOnSplineFailure;\r\n },\r\n /**\r\n * Set false to disable the warning if the spline cannot be calculated\r\n */\r\n set: function (value) {\r\n this.renderDataTransform.warnOnSplineFailure = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SplineMountainRenderableSeries.prototype.updateSplineValues = function () {\r\n this.updateTransformedValues();\r\n };\r\n /** @deprecated This is now handled within the renderDataTransform */\r\n SplineMountainRenderableSeries.prototype.onSplineFailure = function () { };\r\n /** @inheritDoc */\r\n SplineMountainRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n interpolationPoints: this.interpolationPoints\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return SplineMountainRenderableSeries;\r\n}(BaseMountainRenderableSeries_1.BaseMountainRenderableSeries));\r\nexports.SplineMountainRenderableSeries = SplineMountainRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedColumnCollection = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar RenderPassData_1 = require(\"../../Services/RenderPassData\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar BaseStackedCollection_1 = require(\"./BaseStackedCollection\");\r\nvar constants_1 = require(\"./constants\");\r\nvar FastColumnRenderableSeries_1 = require(\"./FastColumnRenderableSeries\");\r\nvar XyPointSeriesWrapped_1 = require(\"../../Model/PointSeries/XyPointSeriesWrapped\");\r\nvar StackedCollectionDataLabelProvider_1 = require(\"./DataLabels/StackedCollectionDataLabelProvider\");\r\n/**\r\n * @summary A {@link StackedColumnCollection} allows grouping multiple {@link StackedColumnRenderableSeries}\r\n * to create a JavaScript Stacked Column, 100 Stacked Column or Stacked Bar chart\r\n * @description\r\n * Multiple {@link StackedColumnRenderableSeries} are required to create a stacked column chart type in SciChart.\r\n * These are grouped with a {@link StackedColumnCollection}, which implements {@link IRenderableSeries} and may be added\r\n * directly to a {@link SciChartSurface.renderableSeries} collection.\r\n *\r\n * Code sample below for stacking above and below (vertical stacking)\r\n * ```ts\r\n * const stackedColumn0 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn0.stackedGroupId = \"group one\"; // Same group ID means stack vertically\r\n * const stackedColumn1 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn1.stackedGroupId = \"group one\"; // Same group ID means stack vertically\r\n * const stackedColumn2 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn2.stackedGroupId = \"group one\"; // Same group ID means stack vertically\r\n * const stackedColumnCollection = new StackedColumnCollection(wasmContext);\r\n * stackedColumnCollection.add(stackedColumn0, stackedColumn1, stackedColumn2);\r\n *\r\n * sciChartSurface.renderableSeries.add(stackedColumnCollection);\r\n * ````\r\n *\r\n * Code sample below for stacking side by side (horizontal stacking)\r\n * ```ts\r\n * const stackedColumn0 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn0.stackedGroupId = \"group one\"; // Different group ID means stack horizontally\r\n * const stackedColumn1 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn1.stackedGroupId = \"group two\"; // Different group ID means stack horizontally\r\n * const stackedColumn2 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn2.stackedGroupId = \"group three\"; // Different group ID means stack horizontally\r\n * const stackedColumnCollection = new StackedColumnCollection(wasmContext);\r\n * stackedColumnCollection.add(stackedColumn0, stackedColumn1, stackedColumn2);\r\n *\r\n * sciChartSurface.renderableSeries.add(stackedColumnCollection);\r\n * ````\r\n * @remarks This type implements {@link IRenderableSeries} but it is not a renderable series, instead it wraps multiple\r\n * {@link StackedColumnRenderableSeries} to create a stacked column chart\r\n */\r\nvar StackedColumnCollection = /** @class */ (function (_super) {\r\n __extends(StackedColumnCollection, _super);\r\n /**\r\n * Creates an instance of the {@link StackedColumnCollection}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IStackedColumnCollectionOptions} to configure the series\r\n */\r\n function StackedColumnCollection(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.StackedColumnCollection;\r\n _this.seriesGroups = {};\r\n _this.dataPointWidthProperty = 0.5;\r\n _this.zeroLineYProperty = 0;\r\n _this.dataPointWidthProperty = (_a = options === null || options === void 0 ? void 0 : options.dataPointWidth) !== null && _a !== void 0 ? _a : _this.dataPointWidthProperty;\r\n _this.zeroLineYProperty = (_b = options === null || options === void 0 ? void 0 : options.zeroLineY) !== null && _b !== void 0 ? _b : _this.zeroLineYProperty;\r\n _this.spacingProperty = (_d = (_c = options === null || options === void 0 ? void 0 : options.spacing) !== null && _c !== void 0 ? _c : _this.spacingProperty) !== null && _d !== void 0 ? _d : 0;\r\n _this.getColumnWidth = _this.getColumnWidth.bind(_this);\r\n _this.detachChildSeries = _this.detachChildSeries.bind(_this);\r\n _this.attachChildSeries = _this.attachChildSeries.bind(_this);\r\n _this.collectionChanged.subscribe(function (arg) {\r\n var _a, _b;\r\n (_a = arg.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(_this.detachChildSeries);\r\n (_b = arg.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(_this.attachChildSeries);\r\n });\r\n // @ts-ignore\r\n _this.dataLabelProvider = new StackedCollectionDataLabelProvider_1.StackedCollectionDataLabelProvider();\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.delete = function () {\r\n this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);\r\n _super.prototype.delete.call(this);\r\n };\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.updateAccumulatedVectors = function () {\r\n var _this = this;\r\n var dataValuesCount = this.getDataSeriesValuesCount();\r\n if (!this.isAccumulatedVectorDirty || !dataValuesCount) {\r\n return;\r\n }\r\n this.checkXValuesCorrect();\r\n this.isAccumulatedVectorDirty = false;\r\n this.clearAccumulatedVectors(dataValuesCount);\r\n // GROUP SERIES BY STACKED_GROUP_ID\r\n this.updateGroups();\r\n var seriesGroups = this.seriesGroups;\r\n var seriesGroupsCount = this.getGroupsCount();\r\n Object.keys(seriesGroups).forEach(function (key, groupIndex) {\r\n var seriesList = seriesGroups[key];\r\n seriesList.forEach(function (rs) {\r\n rs.setGroupsCount(seriesGroupsCount);\r\n rs.setGroupIndex(groupIndex);\r\n });\r\n });\r\n var _loop_1 = function (i) {\r\n this_1.accumulatedValues0.push_back(this_1.zeroLineY);\r\n Object.keys(seriesGroups).forEach(function (key) {\r\n var seriesList = seriesGroups[key];\r\n var sum;\r\n if (_this.isOneHundredPercent) {\r\n sum = seriesList.reduce(function (prev, cur) { return prev + cur.dataSeries.getNativeYValues().get(i); }, 0);\r\n }\r\n var previous = 0;\r\n seriesList.forEach(function (rs) {\r\n var currentY = rs.dataSeries.getNativeYValues().get(i);\r\n if (_this.isOneHundredPercent) {\r\n currentY = (currentY * 100) / sum;\r\n }\r\n var current = previous + currentY;\r\n rs.accumulatedValues.push_back(current);\r\n previous = current;\r\n });\r\n });\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < dataValuesCount; i++) {\r\n _loop_1(i);\r\n }\r\n };\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.draw = function (renderContext, renderPassData) {\r\n var _this = this;\r\n if (this.canDraw) {\r\n this.updateHitTestProviders(renderPassData);\r\n if (!this.isEnoughDataToDraw()) {\r\n return;\r\n }\r\n this.updateAccumulatedVectors();\r\n var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var firstDataSeries = this.getFirstSeries().dataSeries;\r\n var viewRect_1 = this.parentSurface.seriesViewRect;\r\n if (firstDataSeries === null || firstDataSeries === void 0 ? void 0 : firstDataSeries.fifoCapacity) {\r\n throw new Error(\"Sorry, fifo is not currently supported for stacked series\");\r\n }\r\n var isVerticalChart_1 = renderPassData.isVerticalChart, xCoordinateCalculator_1 = renderPassData.xCoordinateCalculator, yCoordinateCalculator_1 = renderPassData.yCoordinateCalculator;\r\n var xValues_1 = isCategoryAxis ? firstDataSeries.getNativeIndexes() : firstDataSeries.getNativeXValues();\r\n var seriesGroups_1 = this.seriesGroups;\r\n var stackedColumnsCount_1 = this.getGroupsCount();\r\n var columnWidth_1 = this.getColumnWidth(xCoordinateCalculator_1);\r\n Object.keys(seriesGroups_1).forEach(function (key, groupIndex) {\r\n var seriesArray = seriesGroups_1[key];\r\n var previousEl;\r\n seriesArray.forEach(function (el, seriesIndex) {\r\n var _a;\r\n var bottomVector = seriesIndex === 0 ? _this.accumulatedValues0 : previousEl.accumulatedValues;\r\n var topVector = el.accumulatedValues;\r\n // pass topVector to dataLabelProvider for use as y position values\r\n // Use the helper method to set data label provider properties\r\n _this.setDataLabelProviderProperties(el.dataLabelProvider, topVector, groupIndex, stackedColumnsCount_1, columnWidth_1, _this.spacingProperty, _this.isOneHundredPercent);\r\n el.dataLabelProvider.generateDataLabels(renderContext, new RenderPassData_1.RenderPassData((_a = el.dataSeries) === null || _a === void 0 ? void 0 : _a.getIndicesRange(_this.xAxis.visibleRange, _this.xAxis.isCategoryAxis), _this.xAxis.getCurrentCoordinateCalculator, _this.yAxis.getCurrentCoordinateCalculator, _this.xAxis.isVerticalChart, new XyPointSeriesWrapped_1.XyPointSeriesWrapped(el.dataSeries)));\r\n drawColumns(_this.webAssemblyContext, renderContext, xCoordinateCalculator_1, yCoordinateCalculator_1, isVerticalChart_1, _this.nativeDrawingProvider, xValues_1, bottomVector, topVector, el.getFillBrush(), el.getStrokePen(), viewRect_1, columnWidth_1, _this.spacingProperty, stackedColumnsCount_1, groupIndex);\r\n previousEl = el;\r\n });\r\n });\r\n }\r\n };\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.getXRange = function () {\r\n if (!this.isEnoughDataToDraw()) {\r\n return new NumberRange_1.NumberRange();\r\n }\r\n var range = this.getFirstSeries().dataSeries.xRange;\r\n var count = this.getFirstSeries().dataSeries.count();\r\n return (0, FastColumnRenderableSeries_1.getXRange)(range, count, this.dataPointWidth);\r\n };\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.getYRange = function (xVisibleRange, isXCategoryAxis) {\r\n var yRange = _super.prototype.getYRange.call(this, xVisibleRange, isXCategoryAxis);\r\n return new NumberRange_1.NumberRange(Math.min(yRange.min, this.zeroLineY), Math.max(yRange.max, this.zeroLineY));\r\n };\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.onAttach = function (scs) {\r\n _super.prototype.onAttach.call(this, scs);\r\n this.nativeDrawingProvider = new this.webAssemblyContext.SCRTStackedColumnSeriesDrawingProvider();\r\n };\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n if (propertyName === constants_1.PROPERTY.DATA_SERIES ||\r\n propertyName === constants_1.PROPERTY.IS_VISIBLE ||\r\n propertyName === constants_1.PROPERTY.IS_ONE_HUNDRED_PERCENT ||\r\n propertyName === constants_1.PROPERTY.STACKED_GROUP_ID) {\r\n this.isAccumulatedVectorDirty = true;\r\n }\r\n };\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.hasDataSeriesValues = function () {\r\n return this.isEnoughDataToDraw();\r\n };\r\n /**\r\n * Called internally - gets the column width in pixels\r\n * @param xCoordinateCalculator The current XAxis {@link CoordinateCalculatorBase}\r\n */\r\n StackedColumnCollection.prototype.getColumnWidth = function (xCoordinateCalculator) {\r\n var widthFraction = this.dataPointWidth;\r\n var firstDataSeries = this.getFirstSeries().dataSeries;\r\n var isCategoryAxis = xCoordinateCalculator.isCategoryCoordinateCalculator;\r\n var xValues = isCategoryAxis ? firstDataSeries.getNativeIndexes() : firstDataSeries.getNativeXValues();\r\n var viewRect = this.parentSurface.seriesViewRect;\r\n var stackedColumnsCount = this.getGroupsCount();\r\n return ((0, BaseRenderableSeries_1.getDataPointWidth)(xValues, xCoordinateCalculator, viewRect.width, widthFraction, isCategoryAxis, this.webAssemblyContext) / stackedColumnsCount);\r\n };\r\n /** @inheritDoc */\r\n StackedColumnCollection.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n dataPointWidth: this.dataPointWidth,\r\n zeroLineY: this.zeroLineY,\r\n spacing: this.spacingProperty\r\n // dataLabels: this.dataLabelProvider\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n Object.defineProperty(StackedColumnCollection.prototype, \"dataPointWidth\", {\r\n // PROPERTIES\r\n /**\r\n * Gets or sets the Datapoint width, as a fraction of available space from 0.0 - 1.0\r\n */\r\n get: function () {\r\n return this.dataPointWidthProperty;\r\n },\r\n /**\r\n * Gets or sets the Datapoint width, as a fraction of available space from 0.0 - 1.0\r\n */\r\n set: function (dataPointWidth) {\r\n this.dataPointWidthProperty = dataPointWidth;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DATA_POINT_WIDTH);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedColumnCollection.prototype, \"zeroLineY\", {\r\n /**\r\n * Gets or sets the Zero-line Y, the Y-value where the mountain crosses zero and inverts. Default is 0\r\n */\r\n get: function () {\r\n return this.zeroLineYProperty;\r\n },\r\n /**\r\n * Gets or sets the Zero-line Y, the Y-value where the mountain crosses zero and inverts. Default is 0\r\n */\r\n set: function (zeroLineY) {\r\n this.zeroLineYProperty = zeroLineY;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.ZERO_LINE_Y);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedColumnCollection.prototype, \"spacing\", {\r\n /**\r\n * Gets the spacing between columns in pixels\r\n */\r\n get: function () {\r\n return this.spacingProperty;\r\n },\r\n /**\r\n * Sets the spacing between columns in pixels\r\n */\r\n set: function (spacing) {\r\n this.spacingProperty = spacing;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SPACING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // PROTECTED\r\n // PRIVATE\r\n StackedColumnCollection.prototype.detachChildSeries = function (series) {\r\n series.onDetachFromParentCollection();\r\n this.isAccumulatedVectorDirty = true;\r\n this.invalidateParent();\r\n };\r\n StackedColumnCollection.prototype.attachChildSeries = function (series) {\r\n series.onAttachToParentCollection(this, this.getParentSurface, this.notifyPropertyChanged, this.getColumnWidth);\r\n this.isAccumulatedVectorDirty = true;\r\n this.invalidateParent();\r\n };\r\n StackedColumnCollection.prototype.checkXValuesCorrect = function () {\r\n var length = this.getDataSeriesValuesCount();\r\n this.getVisibleSeries().forEach(function (el) {\r\n var _a;\r\n if (!(((_a = el.dataSeries) === null || _a === void 0 ? void 0 : _a.count()) === length)) {\r\n throw Error(\"All stacked series in on collection should have the same amount of X Values\");\r\n }\r\n });\r\n };\r\n StackedColumnCollection.prototype.setDataLabelProviderProperties = function (dataLabelProvider, topVector, groupIndex, groupSize, columnWidth, spacing, isOneHundredPercent) {\r\n dataLabelProvider.topVector = topVector;\r\n dataLabelProvider.groupIndex = groupIndex;\r\n dataLabelProvider.groupSize = groupSize;\r\n dataLabelProvider.columnWidth = columnWidth;\r\n dataLabelProvider.spacing = spacing;\r\n dataLabelProvider.isOneHundredPercent = isOneHundredPercent;\r\n };\r\n /**\r\n * @param numberOfElements - number of element expected is used for performance to reserve memory\r\n */\r\n StackedColumnCollection.prototype.clearAccumulatedVectors = function (numberOfElements) {\r\n this.accumulatedValues0.clear();\r\n this.accumulatedValues0.reserve(numberOfElements);\r\n this.asArray().forEach(function (el) {\r\n el.accumulatedValues.clear();\r\n el.accumulatedValues.reserve(numberOfElements);\r\n });\r\n };\r\n StackedColumnCollection.prototype.getLastVisibleSeries = function () {\r\n var lastItem = this.getVisibleSeries().slice(-1)[0];\r\n return lastItem;\r\n };\r\n /**\r\n * @description Group series by stackedGroupId\r\n */\r\n StackedColumnCollection.prototype.updateGroups = function () {\r\n var seriesGroups = {};\r\n this.getVisibleSeries().forEach(function (el) {\r\n var stackedColumnId = el.stackedGroupId;\r\n if (!seriesGroups[stackedColumnId]) {\r\n seriesGroups[stackedColumnId] = [];\r\n }\r\n seriesGroups[stackedColumnId].push(el);\r\n });\r\n this.seriesGroups = seriesGroups;\r\n };\r\n StackedColumnCollection.prototype.getGroupsCount = function () {\r\n return Object.keys(this.seriesGroups).length;\r\n };\r\n return StackedColumnCollection;\r\n}(BaseStackedCollection_1.BaseStackedCollection));\r\nexports.StackedColumnCollection = StackedColumnCollection;\r\n/** @ignore */\r\nvar drawColumns = function (wasmContext, renderContext, xCoordinateCalculator, yCoordinateCalculator, isVerticalChart, nativeDrawingProvider, xValues, yValues, y1Values, fillBrush, strokePen, viewRect, columnWidth, spacing, stackedGroupCount, stackedGroupIndex) {\r\n var args = new wasmContext.SCRTStackedColumnDrawingParams();\r\n args.count = xValues.size();\r\n args.columnWidth = columnWidth <= 0 ? 1 : columnWidth;\r\n args.spacing = spacing;\r\n args.viewportWidth = viewRect.width;\r\n args.viewportHeight = viewRect.height;\r\n args.verticalChart = isVerticalChart;\r\n // TODO: fix stacked group\r\n args.stackedGroupCount = stackedGroupCount;\r\n args.stackedGroupIndex = stackedGroupIndex;\r\n args.forceShaderMethod = true;\r\n if (strokePen) {\r\n args.SetLinesPen(strokePen);\r\n }\r\n if (fillBrush) {\r\n args.SetFillBrush(fillBrush);\r\n }\r\n var nativeContext = renderContext.getNativeContext();\r\n nativeDrawingProvider.DrawPointsVec(nativeContext, xValues, y1Values, yValues, xCoordinateCalculator.nativeCalculator, yCoordinateCalculator.nativeCalculator, args);\r\n args.delete();\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedColumnRenderableSeries = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BrushCache_1 = require(\"../../Drawing/BrushCache\");\r\nvar Pen2DCache_1 = require(\"../../Drawing/Pen2DCache\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar BaseStackedRenderableSeries_1 = require(\"./BaseStackedRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar StackedColumnSeriesHitTestProvider_1 = require(\"./HitTest/StackedColumnSeriesHitTestProvider\");\r\nvar StackedColumnSeriesDataLabelProvider_1 = require(\"./DataLabels/StackedColumnSeriesDataLabelProvider\");\r\n/**\r\n * @summary The {@link StackedColumnRenderableSeries} allows creating JavaScript Stacked Column charts, and 100% Stacked Column Charts\r\n * @description\r\n * Multiple {@link StackedColumnRenderableSeries} are required to create a stacked column chart type in SciChart.\r\n * These are grouped with a {@link StackedColumnCollection}, which implements {@link IRenderableSeries} and may be added\r\n * directly to a {@link SciChartSurface.renderableSeries} collection.\r\n *\r\n * Code sample below for stacking above and below (vertical stacking)\r\n * ```ts\r\n * const stackedColumn0 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn0.stackedGroupId = \"group one\"; // Same group ID means stack vertically\r\n * const stackedColumn1 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn1.stackedGroupId = \"group one\"; // Same group ID means stack vertically\r\n * const stackedColumn2 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn2.stackedGroupId = \"group one\"; // Same group ID means stack vertically\r\n * const stackedColumnCollection = new StackedColumnCollection(wasmContext);\r\n * stackedColumnCollection.add(stackedColumn0, stackedColumn1, stackedColumn2);\r\n *\r\n * sciChartSurface.renderableSeries.add(stackedColumnCollection);\r\n * ````\r\n *\r\n * Code sample below for stacking side by side (horizontal stacking)\r\n * ```ts\r\n * const stackedColumn0 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn0.stackedGroupId = \"group one\"; // Different group ID means stack horizontally\r\n * const stackedColumn1 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn1.stackedGroupId = \"group two\"; // Different group ID means stack horizontally\r\n * const stackedColumn2 = new StackedColumnRenderableSeries(wasmContext);\r\n * stackedColumn2.stackedGroupId = \"group three\"; // Different group ID means stack horizontally\r\n * const stackedColumnCollection = new StackedColumnCollection(wasmContext);\r\n * stackedColumnCollection.add(stackedColumn0, stackedColumn1, stackedColumn2);\r\n \r\n * sciChartSurface.renderableSeries.add(stackedColumnCollection);\r\n * ````\r\n * @remarks\r\n * Do not add the {@link StackedColumnRenderableSeries} directly to {@link SciChartSurface.renderableSeries} array, instead,\r\n * use a {@link StackedColumnCollection} to group / stack the columns.\r\n */\r\nvar StackedColumnRenderableSeries = /** @class */ (function (_super) {\r\n __extends(StackedColumnRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link StackedColumnRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IStackedColumnRenderableSeriesOptions} to configure the series\r\n */\r\n function StackedColumnRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.StackedColumnSeries;\r\n _this.fillProperty = \"#7e8486\";\r\n _this.spacingProperty = 0;\r\n _this.stackedGroupIdProperty = \"default\";\r\n _this.getGroupIndex = _this.getGroupIndex.bind(_this);\r\n _this.getGroupsCount = _this.getGroupsCount.bind(_this);\r\n _this.getColumnWidth = _this.getColumnWidth.bind(_this);\r\n _this.fillBrushCache = new BrushCache_1.BrushCache(webAssemblyContext);\r\n _this.strokePenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);\r\n _this.isOneHundredPercent = (_b = (_a = _this.parentCollection) === null || _a === void 0 ? void 0 : _a.isOneHundredPercent) !== null && _b !== void 0 ? _b : false;\r\n _this.fill = (_c = options === null || options === void 0 ? void 0 : options.fill) !== null && _c !== void 0 ? _c : _this.fillProperty;\r\n _this.stroke = (_d = options === null || options === void 0 ? void 0 : options.stroke) !== null && _d !== void 0 ? _d : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.mountainLineColor;\r\n _this.strokeThickness = (_e = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _e !== void 0 ? _e : 1;\r\n _this.spacingProperty = (_f = options === null || options === void 0 ? void 0 : options.spacing) !== null && _f !== void 0 ? _f : _this.spacingProperty;\r\n _this.stackedGroupIdProperty = (_g = options === null || options === void 0 ? void 0 : options.stackedGroupId) !== null && _g !== void 0 ? _g : _this.stackedGroupIdProperty;\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new StackedColumnSeriesDataLabelProvider_1.StackedColumnSeriesDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n return _this;\r\n }\r\n // PUBLIC\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedColumnRenderableSeries.prototype.delete = function () {\r\n this.strokePenCache = (0, Deleter_1.deleteSafe)(this.strokePenCache);\r\n this.fillBrushCache = (0, Deleter_1.deleteSafe)(this.fillBrushCache);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * Called internally when the {@link StackedColumnRenderableSeries} is attached to a parent {@link StackedColumnCollection}\r\n * @param parentCollection the parent {@link BaseStackedCollection}\r\n * @param getParentSurfaceFn function to get the parent {@link SciChartSurface}\r\n * @param notifyPropertyChangedFn function to notify property has changed\r\n * @param getColumnWidthFn function to get the column width\r\n */\r\n StackedColumnRenderableSeries.prototype.onAttachToParentCollection = function (parentCollection, getParentSurfaceFn, notifyPropertyChangedFn, getColumnWidthFn) {\r\n if (this.parentCollection) {\r\n throw new Error(\"Invalid operation in StackedColumnRenderableSeries.onAttachToParentCollection, this series has been already attached to collection. Please detach it from the collection before attaching to another\");\r\n }\r\n this.parentCollection = parentCollection;\r\n this.getParentSurfaceFn = getParentSurfaceFn;\r\n this.notifyParentPropertyChangedFn = notifyPropertyChangedFn;\r\n //this.invalidateParentCallback = () => parentCollection.invalidateParentCallback();\r\n this.getColumnWidthFn = getColumnWidthFn;\r\n var _a = this, stroke = _a.stroke, strokeThickness = _a.strokeThickness, fill = _a.fill, opacity = _a.opacity;\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, stroke, strokeThickness, opacity);\r\n (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, fill, opacity);\r\n };\r\n /**\r\n * Gets the fill brush of the column as an HTML color code\r\n */\r\n StackedColumnRenderableSeries.prototype.getFillBrush = function () {\r\n return (0, BrushCache_1.getScrtBrushFromCache)(this.fillBrushCache);\r\n };\r\n /**\r\n * Gets the stroke of the column as an HTML color code\r\n */\r\n StackedColumnRenderableSeries.prototype.getStrokePen = function () {\r\n var _a = this, stroke = _a.stroke, strokeThickness = _a.strokeThickness, opacity = _a.opacity;\r\n return (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, stroke, strokeThickness, opacity);\r\n };\r\n StackedColumnRenderableSeries.prototype.getGroupIndex = function () {\r\n return this.groupIndex;\r\n };\r\n StackedColumnRenderableSeries.prototype.setGroupIndex = function (value) {\r\n this.groupIndex = value;\r\n };\r\n StackedColumnRenderableSeries.prototype.getGroupsCount = function () {\r\n return this.groupsCount;\r\n };\r\n StackedColumnRenderableSeries.prototype.setGroupsCount = function (value) {\r\n this.groupsCount = value;\r\n };\r\n /**\r\n * Called internally - gets the column width in pixels\r\n * @param xCoordinateCalculator The current XAxis {@link CoordinateCalculatorBase}\r\n */\r\n StackedColumnRenderableSeries.prototype.getColumnWidth = function (xCoordinateCalculator) {\r\n return this.getColumnWidthFn(xCoordinateCalculator);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedColumnRenderableSeries.prototype.onDpiChanged = function (args) {\r\n // TODO uncomment when point markers and drawingProviders props are supported\r\n // super.onDpiChanged(args);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedColumnRenderableSeries.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n if (propertyName === constants_1.PROPERTY.STROKE ||\r\n propertyName === constants_1.PROPERTY.STROKE_THICKNESS ||\r\n propertyName === constants_1.PROPERTY.OPACITY) {\r\n (0, Pen2DCache_1.createPenInCache)(this.strokePenCache, this.stroke, this.strokeThickness, this.opacity);\r\n }\r\n if (propertyName === constants_1.PROPERTY.FILL || propertyName === constants_1.PROPERTY.OPACITY) {\r\n (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, this.fill, this.opacity);\r\n }\r\n };\r\n Object.defineProperty(StackedColumnRenderableSeries.prototype, \"fill\", {\r\n // PROPERTIES\r\n /**\r\n * Gets or sets the Fill of the column chart as an HTML color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.fillProperty);\r\n },\r\n /**\r\n * Gets or sets the Fill of the column chart as an HTML color code\r\n */\r\n set: function (fill) {\r\n this.fillProperty = fill;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedColumnRenderableSeries.prototype, \"drawingProviders\", {\r\n /**\r\n * drawingProviders property is not supported for StackedColumnRenderableSeries\r\n * instead set on the {@link StackedColumnCollection}\r\n */\r\n get: function () {\r\n return [];\r\n },\r\n /**\r\n * drawingProviders property is not supported for StackedColumnRenderableSeries,\r\n * instead set on the {@link StackedColumnCollection}\r\n */\r\n set: function (value) { },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedColumnRenderableSeries.prototype, \"effect\", {\r\n /**\r\n * effect property is not supported for StackedColumnRenderableSeries,\r\n * instead set on the {@link StackedColumnCollection}\r\n */\r\n get: function () {\r\n return undefined;\r\n },\r\n /**\r\n * effect property is not supported for StackedColumnRenderableSeries,\r\n * instead set on the {@link StackedColumnCollection}\r\n */\r\n set: function (effect) { },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedColumnRenderableSeries.prototype, \"spacing\", {\r\n // public get zeroLineY(): number {\r\n // return this.zeroLineYProperty;\r\n // }\r\n // public set zeroLineY(zeroLineY: number) {\r\n // this.zeroLineYProperty = zeroLineY;\r\n // this.notifyPropertyChanged(PROPERTY.ZERO_LINE_Y);\r\n // }\r\n get: function () {\r\n return this.spacingProperty;\r\n },\r\n set: function (value) {\r\n this.spacingProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SPACING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedColumnRenderableSeries.prototype, \"stackedGroupId\", {\r\n /**\r\n * Gets or sets the Stacked Group ID\r\n * @description\r\n * The Stacked Group Id is used to group {@link StackedColumnRenderableSeries} inside a {@link StackedColumnCollection}\r\n * into vertical or horizontal stacked groups.\r\n *\r\n * For a normal stacked column chart (stacks vertically), set {@link StackedColumnRenderableSeries.stackedGroupId} inside a\r\n * {@link StackedColumnCollection} to the SAME value\r\n *\r\n * For a column chart (stacked side by side), set {@link StackedColumnRenderableSeries.stackedGroupId} inside a\r\n * {@link StackedColumnCollection} to DIFFERENT values\r\n */\r\n get: function () {\r\n return this.stackedGroupIdProperty;\r\n },\r\n /**\r\n * Gets or sets the Stacked Group ID\r\n * @description\r\n * The Stacked Group Id is used to group {@link StackedColumnRenderableSeries} inside a {@link StackedColumnCollection}\r\n * into vertical or horizontal stacked groups.\r\n *\r\n * For a normal stacked column chart (stacks vertically), set {@link StackedColumnRenderableSeries.stackedGroupId} inside a\r\n * {@link StackedColumnCollection} to the SAME value\r\n *\r\n * For a column chart (stacked side by side), set {@link StackedColumnRenderableSeries.stackedGroupId} inside a\r\n * {@link StackedColumnCollection} to DIFFERENT values\r\n */\r\n set: function (value) {\r\n this.stackedGroupIdProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STACKED_GROUP_ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // PROPERTIES END\r\n StackedColumnRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n fill: this.fill,\r\n stroke: this.stroke,\r\n strokeThickness: this.strokeThickness,\r\n spacing: this.spacing,\r\n stackedGroupId: this.stackedGroupId\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n StackedColumnRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n _super.prototype.resolveAutoColors.call(this, index, maxSeries, theme);\r\n if (this.fillProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(index, maxSeries, this.webAssemblyContext);\r\n this.fill = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"fill\", color);\r\n }\r\n };\r\n // PROTECTED\r\n /** @inheritDoc */\r\n StackedColumnRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new StackedColumnSeriesHitTestProvider_1.StackedColumnSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return StackedColumnRenderableSeries;\r\n}(BaseStackedRenderableSeries_1.BaseStackedRenderableSeries));\r\nexports.StackedColumnRenderableSeries = StackedColumnRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedMountainCollection = void 0;\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar copyVector_1 = require(\"../../../utils/copyVector\");\r\nvar XyyPointSeriesWrapped_1 = require(\"../../Model/PointSeries/XyyPointSeriesWrapped\");\r\nvar RenderPassData_1 = require(\"../../Services/RenderPassData\");\r\nvar BaseStackedCollection_1 = require(\"./BaseStackedCollection\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * @summary A {@link StackedMountainCollection} allows grouping multiple {@link StackedMountainRenderableSeries}\r\n * to create a JavaScript Stacked Mountain chart, or 100% Stacked Mountain chart\r\n * @description\r\n * Multiple {@link StackedMountainRenderableSeries} are required to create a stacked mountain chart type in SciChart.\r\n * These are grouped with a {@link StackedMountainCollection}, which implements {@link IRenderableSeries} and may be added\r\n * directly to a {@link SciChartSurface.renderableSeries} collection.\r\n *\r\n * Code sample below:\r\n * ```ts\r\n * const stackedMountain0 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 1, including set dataSeries\r\n * const stackedMountain1 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 2, including set dataSeries\r\n * const stackedMountain2 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 3, including set dataSeries\r\n * const stackedMountainCollection = new StackedMountainCollection(wasmContext);\r\n * stackedMountainCollection.add(stackedMountain0, stackedMountain1, stackedMountain2);\r\n *\r\n * sciChartSurface.renderableSeries.add(stackedMountainCollection);\r\n * ````\r\n * @remarks This type implements {@link IRenderableSeries} but it is not a renderable series, instead it wraps multiple\r\n * {@link StackedMountainRenderableSeries} to create a stacked mountain chart\r\n */\r\nvar StackedMountainCollection = /** @class */ (function (_super) {\r\n __extends(StackedMountainCollection, _super);\r\n /**\r\n * Creates an instance of the {@link StackedMountainCollection}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IBaseStackedCollectionOptions} to configure the series\r\n */\r\n function StackedMountainCollection(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.StackedMountainCollection;\r\n _this.detachChildSeries = _this.detachChildSeries.bind(_this);\r\n _this.attachChildSeries = _this.attachChildSeries.bind(_this);\r\n _this.collectionChanged.subscribe(function (arg) {\r\n var _a, _b;\r\n (_a = arg.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(_this.detachChildSeries);\r\n (_b = arg.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(_this.attachChildSeries);\r\n });\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n StackedMountainCollection.prototype.updateAccumulatedVectors = function () {\r\n var _this = this;\r\n var dataValuesCount = this.getDataSeriesValuesCount();\r\n if (!this.isAccumulatedVectorDirty || !dataValuesCount) {\r\n return;\r\n }\r\n this.checkXValuesCorrect();\r\n this.isAccumulatedVectorDirty = false;\r\n this.clearAccumulatedVectors(dataValuesCount);\r\n var _loop_1 = function (i) {\r\n this_1.accumulatedValues0.push_back(0);\r\n var previous = 0;\r\n var totalSum;\r\n if (this_1.isOneHundredPercent) {\r\n totalSum = this_1.getVisibleSeries().reduce(function (prev, cur) { return prev + cur.dataSeries.getNativeYValues().get(i); }, 0);\r\n }\r\n this_1.getVisibleSeries().forEach(function (rs) {\r\n var currentY = rs.dataSeries.getNativeYValues().get(i);\r\n if (_this.isOneHundredPercent) {\r\n currentY = (currentY * 100) / totalSum;\r\n }\r\n var current = previous + currentY;\r\n rs.accumulatedValues.push_back(current);\r\n previous = current;\r\n if (rs.renderDataTransform) {\r\n rs.renderDataTransform.requiresTransform = true;\r\n }\r\n });\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < dataValuesCount; i++) {\r\n _loop_1(i);\r\n }\r\n };\r\n /** @inheritDoc */\r\n StackedMountainCollection.prototype.draw = function (renderContext, renderPassData) {\r\n var _this = this;\r\n var _a;\r\n if (this.canDraw) {\r\n this.updateHitTestProviders(renderPassData);\r\n if (!this.isEnoughDataToDraw()) {\r\n return;\r\n }\r\n if ((_a = this.getFirstSeries().dataSeries) === null || _a === void 0 ? void 0 : _a.fifoCapacity) {\r\n throw new Error(\"Sorry, fifo is not currently supported for stacked series\");\r\n }\r\n this.updateAccumulatedVectors();\r\n var xAxis_1 = this.parentSurface.getXAxisById(this.xAxisId);\r\n var visibleSeries_1 = this.getVisibleSeries();\r\n // draw Stacked Series in reverse order to prevent overlapping with Point Markers\r\n visibleSeries_1.reduceRight(function (nextSeries, series, index, collection) {\r\n var currAccumVec = series.accumulatedValues;\r\n var accumulatedValues = index === 0 ? _this.accumulatedValues0 : collection[index - 1].accumulatedValues;\r\n // wrap XyDataSeries as XyyDataSeries\r\n var xyyPointSeries = new XyyPointSeriesWrapped_1.XyyPointSeriesWrapped(series.dataSeries, accumulatedValues, // base\r\n currAccumVec // top\r\n );\r\n var renderData = new RenderPassData_1.RenderPassData(series.getIndicesRange(xAxis_1.visibleRange), renderPassData.getxCoordinateCalculator, renderPassData.getyCoordinateCalculator, xAxis_1.isVerticalChart, xyyPointSeries);\r\n if (series.renderDataTransform) {\r\n var transRenderData = new RenderPassData_1.RenderPassData(series.getIndicesRange(xAxis_1.visibleRange), renderPassData.getxCoordinateCalculator, renderPassData.getyCoordinateCalculator, xAxis_1.isVerticalChart, xyyPointSeries);\r\n transRenderData = series.renderDataTransform.runTransform(transRenderData);\r\n if (index < visibleSeries_1.length - 1) {\r\n (0, copyVector_1.copyDoubleVector)(collection[index + 1].renderDataTransform.pointSeries.yValues, transRenderData.pointSeries.y1Values, _this.webAssemblyContext);\r\n }\r\n series.strokeY1 = index === 0 ? \"transparent\" : collection[index - 1].stroke;\r\n series.strokeY1DashArray = index === 0 ? [] : collection[index - 1].strokeDashArray;\r\n series.drawingProviders[0].draw(renderContext, transRenderData);\r\n return series;\r\n }\r\n series.strokeY1 = index === 0 ? \"transparent\" : collection[index - 1].stroke;\r\n series.strokeY1DashArray = index === 0 ? [] : collection[index - 1].strokeDashArray;\r\n series.draw(renderContext, renderData);\r\n return series;\r\n }, undefined);\r\n }\r\n };\r\n /** @inheritDoc */\r\n StackedMountainCollection.prototype.getXRange = function () {\r\n if (!this.isEnoughDataToDraw()) {\r\n return new NumberRange_1.NumberRange();\r\n }\r\n return this.getFirstSeries().dataSeries.xRange;\r\n };\r\n /** @inheritDoc */\r\n StackedMountainCollection.prototype.onAttach = function (scs) {\r\n _super.prototype.onAttach.call(this, scs);\r\n this.getVisibleSeries().forEach(function (series) {\r\n series.onAttach(scs);\r\n });\r\n };\r\n /** @inheritDoc */\r\n StackedMountainCollection.prototype.onDetach = function () {\r\n this.getVisibleSeries().forEach(function (series) {\r\n series.onDetach();\r\n });\r\n _super.prototype.onDetach.call(this);\r\n };\r\n /** @inheritDoc */\r\n StackedMountainCollection.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n if (propertyName === constants_1.PROPERTY.DATA_SERIES ||\r\n propertyName === constants_1.PROPERTY.IS_VISIBLE ||\r\n propertyName === constants_1.PROPERTY.IS_ONE_HUNDRED_PERCENT) {\r\n this.isAccumulatedVectorDirty = true;\r\n }\r\n };\r\n /** @inheritDoc */\r\n StackedMountainCollection.prototype.hasDataSeriesValues = function () {\r\n return this.isEnoughDataToDraw();\r\n };\r\n // PROTECTED\r\n // PRIVATE\r\n StackedMountainCollection.prototype.detachChildSeries = function (series) {\r\n series.onDetachFromParentCollection();\r\n this.isAccumulatedVectorDirty = true;\r\n this.invalidateParent();\r\n };\r\n StackedMountainCollection.prototype.attachChildSeries = function (series) {\r\n series.onAttachToParentCollection(this, this.getParentSurface, this.notifyPropertyChanged);\r\n if (this.parentSurface) {\r\n series.onAttach(this.parentSurface);\r\n }\r\n this.isAccumulatedVectorDirty = true;\r\n this.invalidateParent();\r\n };\r\n StackedMountainCollection.prototype.checkXValuesCorrect = function () {\r\n var length = this.getDataSeriesValuesCount();\r\n this.getVisibleSeries().forEach(function (el) {\r\n if (!(el.dataSeries.count() === length)) {\r\n throw Error(\"All stacked series in on collection should have the same amount of X Values\");\r\n }\r\n });\r\n };\r\n /**\r\n * @param numberOfElements - number of element expected is used for performance to reserve memory\r\n */\r\n StackedMountainCollection.prototype.clearAccumulatedVectors = function (numberOfElements) {\r\n this.accumulatedValues0.clear();\r\n this.accumulatedValues0.reserve(numberOfElements);\r\n this.asArray().forEach(function (el) {\r\n el.accumulatedValues.clear();\r\n el.accumulatedValues.reserve(numberOfElements);\r\n });\r\n };\r\n StackedMountainCollection.prototype.getLastVisibleSeries = function () {\r\n var lastItem = this.getVisibleSeries().slice(-1)[0];\r\n return lastItem;\r\n };\r\n return StackedMountainCollection;\r\n}(BaseStackedCollection_1.BaseStackedCollection));\r\nexports.StackedMountainCollection = StackedMountainCollection;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StackedMountainRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar XyPointSeriesWrapped_1 = require(\"../../Model/PointSeries/XyPointSeriesWrapped\");\r\nvar IThemeProvider_1 = require(\"../../Themes/IThemeProvider\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar BaseStackedRenderableSeries_1 = require(\"./BaseStackedRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar BandSeriesDrawingProvider_1 = require(\"./DrawingProviders/BandSeriesDrawingProvider\");\r\nvar PointMarkerDrawingProvider_1 = require(\"./DrawingProviders/PointMarkerDrawingProvider\");\r\nvar StackedMountainSeriesHitTestProvider_1 = require(\"./HitTest/StackedMountainSeriesHitTestProvider\");\r\n/**\r\n * @summary The {@link StackedMountainRenderableSeries} allows creating JavaScript Stacked Mountain charts\r\n * @description\r\n * Multiple {@link StackedMountainRenderableSeries} are required to create a stacked mountain chart type in SciChart.\r\n * These are grouped with a {@link StackedMountainCollection}, which implements {@link IRenderableSeries} and may be added\r\n * directly to a {@link SciChartSurface.renderableSeries} collection.\r\n *\r\n * Code sample below for creating a stacked mountain chart\r\n * ```ts\r\n * const stackedMountain0 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 1, including set dataSeries\r\n * const stackedMountain1 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 2, including set dataSeries\r\n * const stackedMountain2 = new StackedMountainRenderableSeries(wasmContext);\r\n * // .. configure mountain 3, including set dataSeries\r\n * const stackedMountainCollection = new StackedMountainCollection(wasmContext);\r\n * stackedMountainCollection.add(stackedMountain0, stackedMountain1, stackedMountain2);\r\n *\r\n * sciChartSurface.renderableSeries.add(stackedMountainCollection);\r\n * ````\r\n * @remarks\r\n * Do not add the {@link StackedMountainRenderableSeries} directly to {@link SciChartSurface.renderableSeries} array, instead,\r\n * use a {@link StackedMountainCollection} to group / stack the mountains.\r\n */\r\nvar StackedMountainRenderableSeries = /** @class */ (function (_super) {\r\n __extends(StackedMountainRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link StackedMountainRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IStackedMountainRenderableSeriesOptions} to configure the series\r\n */\r\n function StackedMountainRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.StackedMountainSeries;\r\n _this.fillProperty = \"#7e8486\";\r\n _this.strokeY1Property = \"transparent\";\r\n _this.strokeDashArrayProperty = [];\r\n _this.strokeY1DashArrayProperty = [];\r\n _this.fillProperty = (_a = options === null || options === void 0 ? void 0 : options.fill) !== null && _a !== void 0 ? _a : _this.fillProperty;\r\n _this.stroke = (_b = options === null || options === void 0 ? void 0 : options.stroke) !== null && _b !== void 0 ? _b : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.mountainLineColor;\r\n _this.strokeDashArrayProperty = (_c = options === null || options === void 0 ? void 0 : options.strokeDashArray) !== null && _c !== void 0 ? _c : _this.strokeDashArrayProperty;\r\n _this.drawingProviders.push(new BandSeriesDrawingProvider_1.BandSeriesDrawingProvider(webAssemblyContext, \r\n // TODO find more elegant way to pass this. In scope of https://abtsoftware.myjetbrains.com/youtrack/issue/SCJS-1109\r\n _this, \r\n // StackedMountainRenderableSeries have reverse order of yValues and y1Values compared to FastBandRenderableSeries\r\n function (ps) { return ps.y1Values; }, function (ps) { return ps.yValues; }), new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this, function (ps) { return ps.y1Values; }));\r\n return _this;\r\n }\r\n // PUBLIC\r\n /**\r\n * Called internally when the {@link StackedMountainRenderableSeries} is attached to a parent {@link StackedMountainCollection}\r\n * @param parentCollection the parent {@link BaseStackedCollection}\r\n * @param getParentSurfaceFn function to get the parent {@link SciChartSurface}\r\n * @param notifyPropertyChangedFn function to notify property has changed\r\n */\r\n StackedMountainRenderableSeries.prototype.onAttachToParentCollection = function (parentCollection, getParentSurfaceFn, notifyPropertyChangedFn) {\r\n if (this.parentCollection) {\r\n throw new Error(\"Invalid operation in StackedMountainRenderableSeries.onAttachToParentCollection, this series has been already attached to collection. Please detach it from the collection before attaching to another\");\r\n }\r\n this.parentCollection = parentCollection;\r\n this.getParentSurfaceFn = getParentSurfaceFn;\r\n this.notifyParentPropertyChangedFn = notifyPropertyChangedFn;\r\n };\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.onAttach = function (scs) {\r\n if (this.invalidateParentCallback) {\r\n throw new Error(\"Invalid operation in sciChartSurface.attachSeries, this series has already been attached to a SciChartSurface. Please detach it from a SciChartSurface before attaching to another\");\r\n }\r\n this.invalidateParentCallback = scs.invalidateElement;\r\n this.drawingProviders.forEach(function (dp) { return dp.onAttachSeries(); });\r\n this.rolloverModifierProps.setInvalidateParentCallback(scs.invalidateElement);\r\n };\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.onDetach = function () {\r\n this.invalidateParentCallback = undefined;\r\n this.drawingProviders.forEach(function (dp) { return dp.onDetachSeries(); });\r\n this.rolloverModifierProps.setInvalidateParentCallback(undefined);\r\n };\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.draw = function (renderContext, renderPassData) {\r\n var _this = this;\r\n var _a;\r\n this.currentRenderPassData = renderPassData;\r\n (_a = this.hitTestProvider) === null || _a === void 0 ? void 0 : _a.update(renderPassData);\r\n try {\r\n renderContext.pushShaderEffect(this.effect);\r\n this.drawingProviders.forEach(function (dp) {\r\n if (_this.renderDataTransform && _this.renderDataTransform.drawingProviders.includes(dp)) {\r\n var transformedRPD = _this.renderDataTransform.runTransform(renderPassData);\r\n dp.draw(renderContext, transformedRPD);\r\n }\r\n else {\r\n dp.draw(renderContext, renderPassData);\r\n }\r\n });\r\n }\r\n finally {\r\n renderContext.popShaderEffect();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n StackedMountainRenderableSeries.prototype.onDpiChanged = function (args) {\r\n _super.prototype.onDpiChanged.call(this, args);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);\r\n };\r\n Object.defineProperty(StackedMountainRenderableSeries.prototype, \"fill\", {\r\n // PROPERTIES\r\n /**\r\n * Gets or sets the fill brush of the mountain as an HTML color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.fillProperty);\r\n },\r\n /**\r\n * Gets or sets the fill brush of the mountain as an HTML color code\r\n */\r\n set: function (fill) {\r\n if (this.fillProperty !== fill) {\r\n this.fillProperty = fill;\r\n this.drawingProviders.forEach(function (dp) { return dp.onSeriesPropertyChange(constants_1.PROPERTY.FILL); });\r\n // If fill changes, we need to redo both brushes on the drawing provider\r\n this.drawingProviders.forEach(function (dp) { return dp.onSeriesPropertyChange(constants_1.PROPERTY.FILL_Y1); });\r\n this.notifyPropertyChanged(constants_1.PROPERTY.FILL);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedMountainRenderableSeries.prototype, \"strokeY1\", {\r\n /**\r\n * Gets or sets the stroke color the Y1 values in the data-series.\r\n * See associated {@link XyyDataSeries} for further information\r\n * @remarks This property is set internally to the value of a previous StackedMountainSeries.\r\n */\r\n get: function () {\r\n return this.strokeY1Property;\r\n },\r\n /**\r\n * Gets or sets the stroke color the Y1 values in the data-series.\r\n * See associated {@link XyyDataSeries} for further information\r\n * @remarks This property is set internally to the value of a previous StackedMountainSeries.\r\n */\r\n set: function (strokeY1) {\r\n if (this.strokeY1Property !== strokeY1) {\r\n this.strokeY1Property = strokeY1;\r\n // no need to call notifyPropertyChange here since this will cause an unwanted redraw loop, so just updating a pen\r\n this.drawingProviders.forEach(function (dp) { return dp.onSeriesPropertyChange(constants_1.PROPERTY.STROKE_Y1); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedMountainRenderableSeries.prototype, \"fillY1\", {\r\n /**\r\n * Gets or sets the fill color for when Y1 is less than Y as an HTML Color code\r\n */\r\n get: function () {\r\n return (0, IThemeProvider_1.stripAutoColor)(this.fillProperty);\r\n },\r\n /**\r\n * Gets or sets the fill color for when Y1 is less than Y as an HTML Color code\r\n */\r\n set: function (fillY1) {\r\n throw new Error(\"Setting fillY1 property is not supported on StackedMountainRenderableSeries\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedMountainRenderableSeries.prototype, \"strokeDashArray\", {\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the Y0 line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n get: function () {\r\n return this.strokeDashArrayProperty;\r\n },\r\n /**\r\n * The StrokeDashArray defines the stroke or dash pattern for the Y0 line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n */\r\n set: function (strokeDashArray) {\r\n this.strokeDashArrayProperty = strokeDashArray;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_DASH_ARRAY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StackedMountainRenderableSeries.prototype, \"strokeY1DashArray\", {\r\n /**\r\n * The strokeY1DashArray defines the stroke or dash pattern for the Y1 line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n * @remarks This property is set internally to the value of a previous StackedMountainSeries.\r\n */\r\n get: function () {\r\n return this.strokeY1DashArrayProperty;\r\n },\r\n /**\r\n * The strokeY1DashArray defines the stroke or dash pattern for the Y1 line.\r\n * Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.\r\n * @remarks This property is set internally to the value of a previous StackedMountainSeries.\r\n */\r\n set: function (strokeY1DashArray) {\r\n this.strokeY1DashArrayProperty = strokeY1DashArray;\r\n // no need to call notifyPropertyChange here since this will cause an unwanted redraw loop, so just updating a pen\r\n this.drawingProviders.forEach(function (dp) { return dp.onSeriesPropertyChange(constants_1.PROPERTY.STROKE_Y1_DASH_ARRAY); });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets the RenderPassData instance used for this render pass\r\n */\r\n StackedMountainRenderableSeries.prototype.getCurrentRenderPassData = function () {\r\n return this.currentRenderPassData;\r\n };\r\n // PROPERTIES END\r\n StackedMountainRenderableSeries.prototype.toJSON = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n fill: this.fill,\r\n stroke: this.stroke,\r\n strokeThickness: this.strokeThickness,\r\n strokeDashArray: this.strokeDashArray,\r\n paletteProvider: this.paletteProvider\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.toPointSeries = function (resamplingParams) {\r\n return new XyPointSeriesWrapped_1.XyPointSeriesWrapped(this.dataSeries);\r\n };\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.hasStrokePaletteProvider = function () {\r\n var strokePalette = this.paletteProvider;\r\n return (strokePalette === null || strokePalette === void 0 ? void 0 : strokePalette.overrideStrokeArgb) !== undefined;\r\n };\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.hasFillPaletteProvider = function () {\r\n var fillPalette = this.paletteProvider;\r\n return (fillPalette === null || fillPalette === void 0 ? void 0 : fillPalette.overrideFillArgb) !== undefined;\r\n };\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.hasPointMarkerPaletteProvider = function () {\r\n var pointMarkerPalette = this.paletteProvider;\r\n return (pointMarkerPalette === null || pointMarkerPalette === void 0 ? void 0 : pointMarkerPalette.overridePointMarkerArgb) !== undefined;\r\n };\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {\r\n _super.prototype.resolveAutoColors.call(this, index, maxSeries, theme);\r\n if (this.fillProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {\r\n var color = theme.getFillColor(index, maxSeries, this.webAssemblyContext);\r\n this.fill = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor(\"fill\", color);\r\n }\r\n // No need to resolve strokeY1 as the collection sets it based on previous series\r\n };\r\n // PROTECTED\r\n /** @inheritDoc */\r\n StackedMountainRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new StackedMountainSeriesHitTestProvider_1.StackedMountainSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return StackedMountainRenderableSeries;\r\n}(BaseStackedRenderableSeries_1.BaseStackedRenderableSeries));\r\nexports.StackedMountainRenderableSeries = StackedMountainRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniformContoursRenderableSeries = exports.EContourColorMapMode = exports.COLOR_MAP_PREFIX = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar isRealNumber_1 = require(\"../../../utils/isRealNumber\");\r\nvar AxisCore_1 = require(\"../Axis/AxisCore\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar ContoursDataLabelProvider_1 = require(\"./DataLabels/ContoursDataLabelProvider\");\r\nvar UniformContoursDrawingProvider_1 = require(\"./DrawingProviders/UniformContoursDrawingProvider\");\r\nvar HeatmapColorMap_1 = require(\"./HeatmapColorMap\");\r\n/** @ignore */\r\nexports.COLOR_MAP_PREFIX = \"colorMap.\";\r\nvar EContourColorMapMode;\r\n(function (EContourColorMapMode) {\r\n /**\r\n * Applies the Gradient Colors from {@link UniformContoursRenderableSeries} ColorMap individually,\r\n * ignoring offsets, e.g. with Gradient Stops Red, Green, Blue then\r\n * contour lines will appear Red Green or Blue\r\n */\r\n EContourColorMapMode[EContourColorMapMode[\"AlternateColors\"] = 0] = \"AlternateColors\";\r\n /**\r\n * Applies the Gradient Colors from {@link UniformContoursRenderableSeries} ColorMap according to the data on the chart\r\n */\r\n EContourColorMapMode[EContourColorMapMode[\"GradientColors\"] = 1] = \"GradientColors\";\r\n})(EContourColorMapMode = exports.EContourColorMapMode || (exports.EContourColorMapMode = {}));\r\nvar UniformContoursRenderableSeries = /** @class */ (function (_super) {\r\n __extends(UniformContoursRenderableSeries, _super);\r\n // private drawingModeProperty: EContourDrawingMode;\r\n /**\r\n * Creates an instance of the {@link UniformHeatmapRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IHeatmapRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function UniformContoursRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.UniformContoursSeries;\r\n _this.colorMapPropertyChanged = _this.colorMapPropertyChanged.bind(_this);\r\n if (options === null || options === void 0 ? void 0 : options.colorMap) {\r\n if (!(\"toJSON\" in options.colorMap)) {\r\n options.colorMap = new HeatmapColorMap_1.HeatmapColorMap(options.colorMap);\r\n }\r\n }\r\n _this.colorMap = options === null || options === void 0 ? void 0 : options.colorMap;\r\n _this.dataSeries = options === null || options === void 0 ? void 0 : options.dataSeries;\r\n _this.xAxisId = (_a = options === null || options === void 0 ? void 0 : options.xAxisId) !== null && _a !== void 0 ? _a : AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.xAxisId = (options === null || options === void 0 ? void 0 : options.yAxisId) || AxisCore_1.AxisCore.DEFAULT_AXIS_ID;\r\n _this.zMin = (options === null || options === void 0 ? void 0 : options.zMin) || NaN;\r\n _this.zMax = (options === null || options === void 0 ? void 0 : options.zMax) || NaN;\r\n _this.zStep = (options === null || options === void 0 ? void 0 : options.zStep) || NaN;\r\n _this.majorLineStyle = (options === null || options === void 0 ? void 0 : options.majorLineStyle) || UniformContoursRenderableSeries.DEFAULT_MAJOR_LINE_STYLE;\r\n _this.minorLineStyle = (options === null || options === void 0 ? void 0 : options.minorLineStyle) || UniformContoursRenderableSeries.DEFAULT_MINOR_LINE_STYLE;\r\n _this.minorsPerMajor = (options === null || options === void 0 ? void 0 : options.minorsPerMajor) || 0;\r\n _this.majorLineStyleProperty = options === null || options === void 0 ? void 0 : options.majorLineStyle;\r\n _this.minorLineStyleProperty = options === null || options === void 0 ? void 0 : options.minorLineStyle;\r\n // Must be called here for the series type to be available\r\n if ((_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached) {\r\n (_c = _this.paletteProvider) === null || _c === void 0 ? void 0 : _c.onAttached(_this);\r\n }\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new ContoursDataLabelProvider_1.ContoursDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n _this.drawingProviders = [];\r\n _this.drawingProviders.push(new UniformContoursDrawingProvider_1.UniformContoursDrawingProvider(webAssemblyContext, _this));\r\n return _this;\r\n }\r\n Object.defineProperty(UniformContoursRenderableSeries.prototype, \"zMin\", {\r\n get: function () {\r\n return this.zMinProperty;\r\n },\r\n set: function (zMin) {\r\n this.zMinProperty = zMin;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Z_MIN);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformContoursRenderableSeries.prototype, \"zMax\", {\r\n get: function () {\r\n return this.zMaxProperty;\r\n },\r\n set: function (zMax) {\r\n this.zMaxProperty = zMax;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Z_MAX);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformContoursRenderableSeries.prototype, \"zStep\", {\r\n get: function () {\r\n return this.zStepProperty;\r\n },\r\n set: function (zStep) {\r\n this.zStepProperty = zStep;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Z_STEP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformContoursRenderableSeries.prototype, \"colorMap\", {\r\n /**\r\n * Gets or sets the {@link HeatmapColorMap}, which maps heatmap z-values to colors\r\n */\r\n get: function () {\r\n return this.colorMapProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link HeatmapColorMap}, which maps heatmap z-values to colors\r\n */\r\n set: function (colorMap) {\r\n var _a, _b;\r\n (_a = this.colorMapProperty) === null || _a === void 0 ? void 0 : _a.propertyChanged.unsubscribe(this.colorMapPropertyChanged);\r\n this.colorMapProperty = colorMap;\r\n (_b = this.colorMapProperty) === null || _b === void 0 ? void 0 : _b.propertyChanged.subscribe(this.colorMapPropertyChanged);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COLOR_MAP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformContoursRenderableSeries.prototype, \"colorMapMode\", {\r\n get: function () {\r\n return this.colorMapModeProperty;\r\n },\r\n set: function (colorMapMode) {\r\n this.colorMapModeProperty = colorMapMode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CONTOUR_COLOR_MAP_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformContoursRenderableSeries.prototype, \"majorLineStyle\", {\r\n get: function () {\r\n return this.majorLineStyleProperty;\r\n },\r\n set: function (majorLineStyle) {\r\n this.majorLineStyleProperty = majorLineStyle;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CONTOUR_MAJOR_LINE_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformContoursRenderableSeries.prototype, \"minorLineStyle\", {\r\n get: function () {\r\n return this.minorLineStyleProperty;\r\n },\r\n set: function (minorLineStyle) {\r\n this.minorLineStyleProperty = minorLineStyle;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CONTOUR_MINOR_LINE_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformContoursRenderableSeries.prototype, \"minorsPerMajor\", {\r\n get: function () {\r\n return this.minorsPerMajorProperty;\r\n },\r\n set: function (minorsPerMajor) {\r\n this.minorsPerMajorProperty = minorsPerMajor;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CONTOUR_MINORS_PER_MAJOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n UniformContoursRenderableSeries.prototype.getContourDrawingParams = function () {\r\n var _a, _b;\r\n var heatmapSeries = this.dataSeries;\r\n var dataZRange = heatmapSeries.zRange;\r\n var zMin = this.zMin && (0, isRealNumber_1.isRealNumber)(this.zMin) ? this.zMin : dataZRange.min;\r\n var zMax = this.zMax && (0, isRealNumber_1.isRealNumber)(this.zMax) ? this.zMax : dataZRange.max;\r\n zMin = Math.max(zMin, dataZRange.min);\r\n zMax = Math.min(zMax, dataZRange.max);\r\n var majorStepZ = this.zStep && (0, isRealNumber_1.isRealNumber)(this.zStep)\r\n ? this.zStep\r\n : Math.abs(zMax - zMin) / UniformContoursRenderableSeries.DEFAULT_CONTOURS_COUNT;\r\n var minorStepZ = this.minorsPerMajor && this.minorsPerMajor > 0 ? majorStepZ / (this.minorsPerMajor + 1) : majorStepZ;\r\n var minorLineStyle = (_a = this.minorLineStyle) !== null && _a !== void 0 ? _a : {\r\n strokeThickness: this.strokeThickness,\r\n color: this.stroke\r\n };\r\n var majorLineStyle = (_b = this.majorLineStyle) !== null && _b !== void 0 ? _b : {\r\n strokeThickness: this.strokeThickness,\r\n color: this.stroke\r\n };\r\n var result = {\r\n xMax: heatmapSeries.xMax,\r\n yMin: heatmapSeries.yMin,\r\n yMax: heatmapSeries.yMax,\r\n xMin: heatmapSeries.xMin,\r\n zMin: zMin,\r\n zMax: zMax,\r\n majorStepZ: majorStepZ,\r\n minorStepZ: minorStepZ,\r\n minorLineStyle: minorLineStyle,\r\n majorLineStyle: majorLineStyle\r\n };\r\n return result;\r\n };\r\n /** @inheritDoc */\r\n UniformContoursRenderableSeries.prototype.toPointSeries = function (resamplingParams) {\r\n // not used for Contours\r\n return undefined;\r\n };\r\n /** @inheritDoc */\r\n UniformContoursRenderableSeries.prototype.toJSON = function (excludeData) {\r\n var _a;\r\n if (excludeData === void 0) { excludeData = false; }\r\n var json = _super.prototype.toJSON.call(this, excludeData);\r\n var options = {\r\n colorMap: (_a = this.colorMap) === null || _a === void 0 ? void 0 : _a.toJSON(),\r\n majorLineStyle: this.majorLineStyle,\r\n minorLineStyle: this.minorLineStyle,\r\n zMax: this.zMax,\r\n zMin: this.zMin,\r\n zStep: this.zStep,\r\n minorsPerMajor: this.minorsPerMajor\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /**\r\n * Called when a property changes on {@link HeatmapColorMap}, and notifies the parent {@link SciChartSurface}\r\n * that a redraw is required.\r\n * @param args\r\n */\r\n UniformContoursRenderableSeries.prototype.colorMapPropertyChanged = function (args) {\r\n this.notifyPropertyChanged(exports.COLOR_MAP_PREFIX + args.propertyName);\r\n };\r\n UniformContoursRenderableSeries.prototype.newHitTestProvider = function () {\r\n return undefined;\r\n };\r\n UniformContoursRenderableSeries.DEFAULT_CONTOURS_COUNT = 15;\r\n UniformContoursRenderableSeries.DEFAULT_MAJOR_LINE_STYLE = {\r\n strokeThickness: 2,\r\n color: \"white\"\r\n };\r\n UniformContoursRenderableSeries.DEFAULT_MINOR_LINE_STYLE = {\r\n strokeThickness: 1,\r\n color: \"white\"\r\n };\r\n return UniformContoursRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.UniformContoursRenderableSeries = UniformContoursRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniformHeatmapRenderableSeries = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar BaseHeatmapRenderableSeries_1 = require(\"./BaseHeatmapRenderableSeries\");\r\nvar HeatMapDataLabelProvider_1 = require(\"./DataLabels/HeatMapDataLabelProvider\");\r\nvar UniformHeatmapDrawingProvider_1 = require(\"./DrawingProviders/UniformHeatmapDrawingProvider\");\r\nvar UniformHeatmapHitTestProvider_1 = require(\"./HitTest/UniformHeatmapHitTestProvider\");\r\n/**\r\n * @summary A JavaScript Heatmap chart type rendering a 2-dimensional array of data as color values between X,Y bounds in\r\n * SciChart's High Performance Real-time {@link https://www.scichart.com/javascript-chart-features | JavaScript Chart Library}\r\n * @description\r\n * Heatmaps are 2-dimensional arrays of data, rendered as a color-map on the chart. The {@link UniformHeatmapRenderableSeries}\r\n * assumes the cells are equal size, and spaced along the X,Y axis according to properties on the {@link UniformHeatmapDataSeries}.\r\n *\r\n * For a code sample how to initialize a uniform heatmap, see below\r\n *\r\n * ```ts\r\n * // Create an empty 2D array using the helper function zeroArray2D\r\n * const zValues: number[][] = zeroArray2D([height, width]);\r\n * // todo: fill the zValues 2d array with values\r\n *\r\n * // Create a UniformHeatmapDataSeries passing in zValues\r\n * const heatmapDataSeries = new UniformHeatmapDataSeries(wasmContext, 0, 1, 0, 1, zValues);\r\n *\r\n * // Create a Heatmap RenderableSeries with the color map. ColorMap.minimum/maximum defines the values in\r\n * // HeatmapDataSeries which correspond to gradient stops at 0..1\r\n * const heatmapSeries = new UniformHeatmapRenderableSeries(wasmContext, {\r\n * dataSeries: heatmapDataSeries,\r\n * colorMap: new HeatmapColorMap({\r\n * minimum: 0,\r\n * maximum: 200,\r\n * gradientStops: [\r\n * { offset: 0, color: \"#00008B\" },\r\n * { offset: 0.2, color: \"#6495ED\" },\r\n * { offset: 0.4, color: \"#006400\" },\r\n * { offset: 0.6, color: \"#7FFF00\" },\r\n * { offset: 0.8, color: \"#FFFF00\" },\r\n * { offset: 1.0, color: \"#FF0000\" }\r\n * ]\r\n * })\r\n * });\r\n *\r\n * // Add heatmap to the chart\r\n * sciChartSurface.renderableSeries.add(heatmapSeries);\r\n * ```\r\n */\r\nvar UniformHeatmapRenderableSeries = /** @class */ (function (_super) {\r\n __extends(UniformHeatmapRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link UniformHeatmapRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options optional parameters of type {@link IHeatmapRenderableSeriesOptions} applied when constructing the series type\r\n */\r\n function UniformHeatmapRenderableSeries(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.UniformHeatmapSeries;\r\n _this.drawingProviders = [];\r\n if (!app_1.IS_TEST_ENV) {\r\n _this.drawingProviders.push(new UniformHeatmapDrawingProvider_1.UniformHeatmapDrawingProvider(webAssemblyContext, _this));\r\n }\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new HeatMapDataLabelProvider_1.HeatMapDataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformHeatmapRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new UniformHeatmapHitTestProvider_1.UniformHeatmapHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n return UniformHeatmapRenderableSeries;\r\n}(BaseHeatmapRenderableSeries_1.BaseHeatmapRenderableSeries));\r\nexports.UniformHeatmapRenderableSeries = UniformHeatmapRenderableSeries;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyScatterRenderableSeries = void 0;\r\nvar SeriesType_1 = require(\"../../../types/SeriesType\");\r\nvar ResamplingMode_1 = require(\"../../Numerics/Resamplers/ResamplingMode\");\r\nvar EllipsePointMarker_1 = require(\"../PointMarkers/EllipsePointMarker\");\r\nvar BaseRenderableSeries_1 = require(\"./BaseRenderableSeries\");\r\nvar constants_1 = require(\"./constants\");\r\nvar DataLabelProvider_1 = require(\"./DataLabels/DataLabelProvider\");\r\nvar PointMarkerDrawingProvider_1 = require(\"./DrawingProviders/PointMarkerDrawingProvider\");\r\nvar ScatterSeriesHitTestProvider_1 = require(\"./HitTest/ScatterSeriesHitTestProvider\");\r\n/**\r\n * Defines a scatter-series or scatter chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * To add a scatter series to a {@link SciChartSurface} you need to declare both the {@link XyScatterRenderableSeries | RenderableSeries}\r\n * and a {@link XyDataSeries | DataSeries}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChartSurface: SciChartSurface;\r\n * const wasmContext: TSciChart;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyDataSeries(wasmContext);\r\n * dataSeries.append(1,2);\r\n * dataSeries.append(1,2);\r\n * // Create the renderableSeries\r\n * const scatterSeries = new XyScatterRenderableSeries(wasmContext);\r\n * scatterSeries.dataSeries = dataSeries;\r\n * scatterSeries.pointMarker = new EllipsePointMarker(wasmContext, {\r\n * width: 9,\r\n * height: 9,\r\n * fill: \"#FF0000\",\r\n * stroke: \"#0000FF\",\r\n * strokeThickness: 1\r\n * });\r\n * // append to the SciChartSurface\r\n * sciChartSurface.renderableSeries.add(scatterSeries);\r\n * ```\r\n */\r\nvar XyScatterRenderableSeries = /** @class */ (function (_super) {\r\n __extends(XyScatterRenderableSeries, _super);\r\n /**\r\n * Creates an instance of the {@link XyScatterRenderableSeries}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IBaseRenderableSeriesOptions} to configure the series\r\n */\r\n function XyScatterRenderableSeries(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = SeriesType_1.ESeriesType.ScatterSeries;\r\n _this.scatterOpacityProperty = 1;\r\n if (!_this.pointMarker) {\r\n _this.pointMarker = new EllipsePointMarker_1.EllipsePointMarker(webAssemblyContext, { width: 10, height: 10 });\r\n }\r\n _this.drawingProviders = [];\r\n _this.drawingProviders.push(new PointMarkerDrawingProvider_1.PointMarkerDrawingProvider(webAssemblyContext, _this));\r\n if (options === null || options === void 0 ? void 0 : options.animation) {\r\n _this.animationQueue.push(options.animation);\r\n }\r\n if (!_this.dataLabelProviderProperty) {\r\n _this.dataLabelProviderProperty = new DataLabelProvider_1.DataLabelProvider(options === null || options === void 0 ? void 0 : options.dataLabels);\r\n _this.dataLabelProviderProperty.onAttach(_this.webAssemblyContext, _this);\r\n }\r\n // Must be called here for the series type to be available\r\n if ((_a = _this.paletteProvider) === null || _a === void 0 ? void 0 : _a.onAttached) {\r\n (_b = _this.paletteProvider) === null || _b === void 0 ? void 0 : _b.onAttached(_this);\r\n }\r\n _this.scatterOpacityProperty = (_c = options === null || options === void 0 ? void 0 : options.opacity) !== null && _c !== void 0 ? _c : _this.scatterOpacityProperty;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n XyScatterRenderableSeries.prototype.needsResampling = function (rp) {\r\n if (this.dataSeries.fifoCapacity) {\r\n rp.resamplingMode = ResamplingMode_1.EResamplingMode.None;\r\n this.resamplerHelper.resetAndFillBasicNativeArgs(rp, this.getNativeXValues());\r\n return true;\r\n }\r\n return false;\r\n };\r\n /** @inheritDoc */\r\n XyScatterRenderableSeries.prototype.newHitTestProvider = function () {\r\n return new ScatterSeriesHitTestProvider_1.ScatterSeriesHitTestProvider(this, this.webAssemblyContext);\r\n };\r\n Object.defineProperty(XyScatterRenderableSeries.prototype, \"opacity\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.scatterOpacityProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n this.scatterOpacityProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.OPACITY);\r\n if (this.pointMarker) {\r\n this.pointMarker.opacity = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.POINT_MARKER);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return XyScatterRenderableSeries;\r\n}(BaseRenderableSeries_1.BaseRenderableSeries));\r\nexports.XyScatterRenderableSeries = XyScatterRenderableSeries;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"BRUSH_UP\"] = \"BRUSH_UP\";\r\n PROPERTY[\"BRUSH_DOWN\"] = \"BRUSH_DOWN\";\r\n PROPERTY[\"COLOR\"] = \"COLOR\";\r\n PROPERTY[\"COLOR_MAP\"] = \"COLOR_MAP\";\r\n PROPERTY[\"CONTOUR_DRAWING_MODE\"] = \"CONTOUR_DRAWING_MODE\";\r\n PROPERTY[\"CONTOUR_MINORS_PER_MAJOR\"] = \"CONTOUR_MINORS_PER_MAJOR\";\r\n PROPERTY[\"CONTOUR_MINOR_LINE_STYLE\"] = \"CONTOUR_MINOR_LINE_STYLE\";\r\n PROPERTY[\"CONTOUR_MAJOR_LINE_STYLE\"] = \"CONTOUR_MAJOR_LINE_STYLE\";\r\n PROPERTY[\"CONTOUR_COLOR_MAP_MODE\"] = \"CONTOUR_COLOR_MAP_MODE\";\r\n PROPERTY[\"CORNER_RADIUS\"] = \"CORNER_RADIUS\";\r\n PROPERTY[\"DATA_POINT_WIDTH\"] = \"dataPointWidth\";\r\n PROPERTY[\"DATA_POINT_WIDTH_MODE\"] = \"DATA_POINT_WIDTH_MODE\";\r\n PROPERTY[\"DATA_SERIES\"] = \"dataSeries\";\r\n PROPERTY[\"DRAWING_PROVIDERS\"] = \"DRAWING_PROVIDERS\";\r\n PROPERTY[\"DRAW_NAN_AS\"] = \"drawNaNAs\";\r\n PROPERTY[\"DRAW_CONNECTOR\"] = \"DRAW_CONNECTOR\";\r\n PROPERTY[\"DRAW_WHISKERS\"] = \"DRAW_WHISKERS\";\r\n PROPERTY[\"EFFECT\"] = \"EFFECT\";\r\n PROPERTY[\"ENABLE_DRAWING_OPTIMISATIONS\"] = \"ENABLE_DRAWING_OPTIMISATIONS\";\r\n PROPERTY[\"ERROR_DIRECTION\"] = \"ERROR_DIRECTION\";\r\n PROPERTY[\"ERROR_MODE\"] = \"ERROR_MODE\";\r\n PROPERTY[\"FILL\"] = \"fill\";\r\n PROPERTY[\"FILL_Y1\"] = \"FILL_Y1\";\r\n PROPERTY[\"FILL_LINEAR_GRADIENT\"] = \"FILL_LINEAR_GRADIENT\";\r\n PROPERTY[\"FILL_LINEAR_GRADIENT_Y1\"] = \"FILL_LINEAR_GRADIENT_Y1\";\r\n PROPERTY[\"FILL_VALUES_OUT_OF_RANGE\"] = \"FILL_VALUES_OUT_OF_RANGE\";\r\n PROPERTY[\"GRADIENT_STOPS\"] = \"GRADIENT_STOPS\";\r\n PROPERTY[\"HOVERED\"] = \"HOVERED\";\r\n PROPERTY[\"INTERPOLATION_POINTS\"] = \"INTERPOLATION_POINTS\";\r\n PROPERTY[\"IS_DIGITAL_LINE\"] = \"IS_DIGITAL_LINE\";\r\n PROPERTY[\"IS_ONE_HUNDRED_PERCENT\"] = \"IS_ONE_HUNDRED_PERCENT\";\r\n PROPERTY[\"IS_SELECTED\"] = \"IS_SELECTED\";\r\n PROPERTY[\"IS_VISIBLE\"] = \"IS_VISIBLE\";\r\n PROPERTY[\"INTENSITY\"] = \"INTENSITY\";\r\n PROPERTY[\"LINE_TYPE\"] = \"LINE_TYPE\";\r\n PROPERTY[\"MAXIMUM\"] = \"MAXIMUM\";\r\n PROPERTY[\"MINIMUM\"] = \"MINIMUM\";\r\n PROPERTY[\"OFFSET\"] = \"OFFSET\";\r\n PROPERTY[\"OPACITY\"] = \"OPACITY\";\r\n PROPERTY[\"PALETTE_PROVIDER\"] = \"PALETTE_PROVIDER\";\r\n PROPERTY[\"PARENT_SURFACE\"] = \"PARENT_SURFACE\";\r\n PROPERTY[\"POINT_MARKER\"] = \"pointMarker\";\r\n PROPERTY[\"RANGE\"] = \"RANGE\";\r\n PROPERTY[\"RESAMPLING_MODE\"] = \"RESAMPLING_MODE\";\r\n PROPERTY[\"RESAMPLING_PRECISION\"] = \"RESAMPLING_PRECISION\";\r\n PROPERTY[\"SPACING\"] = \"SPACING\";\r\n PROPERTY[\"STACKED_GROUP_ID\"] = \"STACKED_GROUP_ID\";\r\n PROPERTY[\"STROKE\"] = \"STROKE\";\r\n PROPERTY[\"STROKE_Y1\"] = \"STROKE_Y1\";\r\n PROPERTY[\"STROKE_DASH_ARRAY\"] = \"STROKE_DASH_ARRAY\";\r\n PROPERTY[\"STROKE_Y1_DASH_ARRAY\"] = \"STROKE_Y1_DASH_ARRAY\";\r\n PROPERTY[\"STROKE_DOWN\"] = \"STROKE_DOWN\";\r\n PROPERTY[\"STROKE_UP\"] = \"STROKE_UP\";\r\n PROPERTY[\"STROKE_THICKNESS\"] = \"STROKE_THICKNESS\";\r\n PROPERTY[\"USE_LINEAR_TEXTURE_FILTERING\"] = \"USE_LINEAR_TEXTURE_FILTERING\";\r\n PROPERTY[\"XAXIS_ID\"] = \"XAXIS_ID\";\r\n PROPERTY[\"YAXIS_ID\"] = \"YAXIS_ID\";\r\n PROPERTY[\"ZERO_LINE_Y\"] = \"ZERO_LINE_Y\";\r\n PROPERTY[\"Z_STEP\"] = \"Z_STEP\";\r\n PROPERTY[\"Z_MAX\"] = \"Z_MAX\";\r\n PROPERTY[\"Z_MIN\"] = \"Z_MIN\";\r\n PROPERTY[\"Z_MULTIPLIER\"] = \"Z_MULTIPLIER\";\r\n PROPERTY[\"Z_LABEL_PROVIDER\"] = \"Z_LABEL_PROVIDER\";\r\n PROPERTY[\"SERIES_TEXT_PROVIDER\"] = \"SERIES_TEXT_PROVIDER\";\r\n PROPERTY[\"CLIPTOYRANGE\"] = \"CLIPTOYRANGE\";\r\n PROPERTY[\"YRANGEMODE\"] = \"YRANGEMODE\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RubberBandSvgRect = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * Used by the {@link RubberBandXyZoomModifier} to draw an {@link SVGSVGElement | SVGElement} rectangle over the chart.\r\n */\r\nvar RubberBandSvgRect = /** @class */ (function (_super) {\r\n __extends(RubberBandSvgRect, _super);\r\n function RubberBandSvgRect(svgRoot, fill, stroke, strokeThickness) {\r\n var _this = _super.call(this) || this;\r\n _this.svgTemplate = svgTemplate;\r\n _this.x1Property = 0;\r\n _this.x2Property = 0;\r\n _this.y1Property = 0;\r\n _this.y2Property = 0;\r\n _this.isHiddenProperty = true;\r\n _this.svgRoot = svgRoot;\r\n _this.create(fill, stroke, strokeThickness);\r\n return _this;\r\n }\r\n Object.defineProperty(RubberBandSvgRect.prototype, \"x1\", {\r\n /**\r\n * Gets the X1 value, the value is not scaled\r\n */\r\n get: function () {\r\n return this.x1Property;\r\n },\r\n /**\r\n * Sets the X1 value, the value must be not scaled\r\n */\r\n set: function (value) {\r\n this.x1Property = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X1);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RubberBandSvgRect.prototype, \"x2\", {\r\n /**\r\n * Gets the X2 value, the value is not scaled\r\n */\r\n get: function () {\r\n return this.x2Property;\r\n },\r\n /**\r\n * Sets the X2 value, the value must be not scaled\r\n */\r\n set: function (value) {\r\n this.x2Property = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.X2);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RubberBandSvgRect.prototype, \"y1\", {\r\n /**\r\n * Gets the Y1 value, the value is not scaled\r\n */\r\n get: function () {\r\n return this.y1Property;\r\n },\r\n /**\r\n * Sets the Y1 value, the value must be not scaled\r\n */\r\n set: function (value) {\r\n this.y1Property = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Y1);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RubberBandSvgRect.prototype, \"y2\", {\r\n /**\r\n * Gets the Y2 value, the value is not scaled\r\n */\r\n get: function () {\r\n return this.y2Property;\r\n },\r\n /**\r\n * Sets the Y2 value, the value must be not scaled\r\n */\r\n set: function (value) {\r\n this.y2Property = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.Y2);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RubberBandSvgRect.prototype, \"isHidden\", {\r\n /**\r\n * Gets isHidden property\r\n */\r\n get: function () {\r\n return this.isHiddenProperty;\r\n },\r\n /**\r\n * Sets isHidden property\r\n */\r\n set: function (value) {\r\n this.isHiddenProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_HIDDEN);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Clear the rect svg\r\n */\r\n RubberBandSvgRect.prototype.clear = function () {\r\n this.svgRoot.removeChild(this.svg);\r\n };\r\n /**\r\n * Deletes the rect\r\n */\r\n RubberBandSvgRect.prototype.delete = function () {\r\n this.clear();\r\n };\r\n // PRIVATE\r\n RubberBandSvgRect.prototype.create = function (fill, stroke, strokeThickness) {\r\n if (this.svg) {\r\n this.clear();\r\n }\r\n if (this.svgRoot) {\r\n var svgNode = this.svgTemplate(fill, stroke, strokeThickness, 0, 0);\r\n this.svgRoot.appendChild(svgNode);\r\n this.svg = svgNode;\r\n this.svg.setAttribute(\"x\", \"100px\");\r\n this.svg.setAttribute(\"y\", \"100px\");\r\n }\r\n };\r\n RubberBandSvgRect.prototype.update = function (propertyName) {\r\n if (this.svgRoot) {\r\n if (propertyName === constants_1.PROPERTY.IS_HIDDEN) {\r\n this.svg.style.display = this.isHidden ? \"none\" : \"block\";\r\n }\r\n if (propertyName === constants_1.PROPERTY.X1 || propertyName === constants_1.PROPERTY.X2) {\r\n var width = Math.abs(this.x2 - this.x1);\r\n this.svg.setAttribute(\"x\", this.x1.toString());\r\n this.svg.setAttribute(\"width\", \"\".concat(width, \"px\"));\r\n }\r\n if (propertyName === constants_1.PROPERTY.Y1 || propertyName === constants_1.PROPERTY.Y2) {\r\n var height = Math.abs(this.y2 - this.y1);\r\n this.svg.setAttribute(\"y\", this.y1.toString());\r\n this.svg.setAttribute(\"height\", \"\".concat(height, \"px\"));\r\n }\r\n }\r\n };\r\n RubberBandSvgRect.prototype.notifyPropertyChanged = function (propertyName) {\r\n this.update(propertyName);\r\n };\r\n return RubberBandSvgRect;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.RubberBandSvgRect = RubberBandSvgRect;\r\n/**\r\n * @ignore\r\n * This is a CSP style-src safe method to create SVGs\r\n */\r\nvar svgTemplate = function (fill, stroke, strokeThickness, width, height) {\r\n if (width === void 0) { width = 0; }\r\n if (height === void 0) { height = 0; }\r\n var xmlns = \"http://www.w3.org/2000/svg\";\r\n var svgElem = document.createElementNS(xmlns, \"svg\");\r\n svgElem.setAttributeNS(null, \"width\", width.toString());\r\n svgElem.setAttributeNS(null, \"height\", height.toString());\r\n svgElem.style.display = \"none\";\r\n var rectElem = document.createElementNS(xmlns, \"rect\");\r\n svgElem.appendChild(rectElem);\r\n rectElem.setAttributeNS(null, \"width\", \"100%\");\r\n rectElem.setAttributeNS(null, \"height\", \"100%\");\r\n rectElem.setAttributeNS(null, \"fill\", fill);\r\n rectElem.setAttributeNS(null, \"stroke\", stroke);\r\n rectElem.setAttributeNS(null, \"stroke-width\", strokeThickness.toString());\r\n return svgElem;\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"IS_HIDDEN\"] = \"IS_HIDDEN\";\r\n PROPERTY[\"X1\"] = \"X1\";\r\n PROPERTY[\"X2\"] = \"X2\";\r\n PROPERTY[\"Y1\"] = \"Y1\";\r\n PROPERTY[\"Y2\"] = \"Y2\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartDefaults = void 0;\r\nvar WatermarkPosition_1 = require(\"../../types/WatermarkPosition\");\r\nvar SciChartDefaults = /** @class */ (function () {\r\n function SciChartDefaults() {\r\n }\r\n /**\r\n * @deprecated This functionality has been removed. useNativeText: true provides much greater performance benefit.\r\n */\r\n SciChartDefaults.asyncLabels = false;\r\n /**\r\n * Set this true to allow reuse of label textures across different axes and different charts\r\n */\r\n SciChartDefaults.useSharedCache = false;\r\n /**\r\n * Turn on/off resampling\r\n */\r\n SciChartDefaults.enableResampling = true;\r\n /**\r\n * Turn on/off warnings to optimize performance\r\n */\r\n SciChartDefaults.performanceWarnings = true;\r\n /**\r\n * Experimental - set true to use native text for axes and titles. Not all text features currently supported\r\n */\r\n SciChartDefaults.useNativeText = false;\r\n /**\r\n * Time in ms to retry loading a native font. If you need to load a large font over a potentially slow connection await sciChartSurface.registerFont\r\n */\r\n SciChartDefaults.nativeFontTimeout = 2000;\r\n /**\r\n * The default position of the watermark for trials\r\n */\r\n SciChartDefaults.watermarkPosition = WatermarkPosition_1.EWatermarkPosition.BottomLeft;\r\n /** For 2D charts the watermark is normally positioned within the series area. Set this true to place it relative to the overall canvas. */\r\n SciChartDefaults.watermarkRelativeToCanvas = false;\r\n /**\r\n * For 2D charts a number of buffers are created to process data. Buffer size by default grows with usage and caps out at 8,192kb.\r\n * A total of 10 buffers are created for different scenarios.\r\n * When SciChartSurface.create() is used this results in a maximum of 80MB memory as a static overhead for the application.\r\n * When SciChartSurface.createSingle() is used this results in up to 80MB memory *per chart* as a static overhead.\r\n * Lowering this number to 2048kb (or 1024kb) will reduce memory usage for the SciChart 2D Engine but may impact chart drawing performance.\r\n * @remarks This property needs to be set before charts created and cannot be dynamically adjusted after that.\r\n * Do not set lower than 1024kb or higher than 32MB (1024 x 32). Values outside this range will be clamped\r\n */\r\n SciChartDefaults.wasmBufferSizesKb = 1024 * 8;\r\n /**\r\n * Defines if newly created charts should be rendered as soon as possible after initialization.\r\n * Setting to `true` will require surfaces to be \"resumed\" in order to perform actual rendering.\r\n */\r\n SciChartDefaults.createSuspended = false;\r\n return SciChartDefaults;\r\n}());\r\nexports.SciChartDefaults = SciChartDefaults;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartOverview = void 0;\r\nvar buildSeries_1 = require(\"../../Builder/buildSeries\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar NumberRange_1 = require(\"../../Core/NumberRange\");\r\nvar AutoRange_1 = require(\"../../types/AutoRange\");\r\nvar AxisType_1 = require(\"../../types/AxisType\");\r\nvar OverviewRangeSelectionModifier_1 = require(\"../ChartModifiers/OverviewRangeSelectionModifier\");\r\nvar AxisBase2D_1 = require(\"./Axis/AxisBase2D\");\r\nvar CategoryAxis_1 = require(\"./Axis/CategoryAxis\");\r\nvar LogarithmicAxis_1 = require(\"./Axis/LogarithmicAxis\");\r\nvar NumericAxis_1 = require(\"./Axis/NumericAxis\");\r\nvar SciChartSurface_1 = require(\"./SciChartSurface\");\r\n/**\r\n * @summary The {@link SciChartOverview} is the component that can control the visible range of the parent {@link SciChartSurface} using a slider\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Chart Library}\r\n * @description\r\n * To instantiate an overview use {@link SciChartOverview.create} method\r\n * @remarks\r\n * It is possible to specify options to customize style and behavior of the component.\r\n */\r\nvar SciChartOverview = /** @class */ (function (_super) {\r\n __extends(SciChartOverview, _super);\r\n function SciChartOverview(parentSciChartSurface, overviewSciChartSurface, wasmContext, rangeSelectionModifier, overviewXAxis, overviewYAxis) {\r\n var _this = _super.call(this) || this;\r\n _this.overviewXAxisProperty = overviewXAxis;\r\n _this.overviewYAxisProperty = overviewYAxis;\r\n _this.rangeSelectionModifierProperty = rangeSelectionModifier;\r\n _this.parentSciChartSurfaceProperty = parentSciChartSurface;\r\n _this.overviewSciChartSurfaceProperty = overviewSciChartSurface;\r\n _this.overviewWasmContext = wasmContext;\r\n return _this;\r\n }\r\n /**\r\n * Creates a {@link SciChartOverview} and {@link TSciChart | WebAssembly Context} to occupy the div by element ID in your DOM.\r\n * @remarks This method is async and must be awaited\r\n * @param parentChart The {@link SciChartSurface} of the {@link SciChartOverview} will reside\r\n * @param overviewRootElementId The Div Element ID or reference where the {@link SciChartSurface} of the {@link SciChartOverview} will reside\r\n * @param options Optional - Optional parameters for chart creation. See {@link IOverviewOptions for more details}\r\n */\r\n SciChartOverview.create = function (parentChart, overviewRootElement, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, sciChartSurface, wasmContext, rangeSelectionModifier, xAxis, yAxis;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0: return [4 /*yield*/, createSciChartOverview(parentChart, overviewRootElement, options)];\r\n case 1:\r\n _a = _b.sent(), sciChartSurface = _a.sciChartSurface, wasmContext = _a.wasmContext, rangeSelectionModifier = _a.rangeSelectionModifier, xAxis = _a.xAxis, yAxis = _a.yAxis;\r\n return [2 /*return*/, new SciChartOverview(parentChart, sciChartSurface, wasmContext, rangeSelectionModifier, xAxis, yAxis)];\r\n }\r\n });\r\n });\r\n };\r\n Object.defineProperty(SciChartOverview.prototype, \"overviewSciChartSurface\", {\r\n /**\r\n * Gets the {@link SciChartSurface} used by the {@link @SciChartOverview}\r\n */\r\n get: function () {\r\n return this.overviewSciChartSurfaceProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartOverview.prototype, \"parentSciChartSurface\", {\r\n /**\r\n * Gets the parent {@link SciChartSurface} controlled by the {@link @SciChartOverview}\r\n */\r\n get: function () {\r\n return this.parentSciChartSurfaceProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartOverview.prototype, \"rangeSelectionModifier\", {\r\n /**\r\n * Gets the {@link OverviewRangeSelectionModifier} used by the {@link @SciChartOverview}\r\n */\r\n get: function () {\r\n return this.rangeSelectionModifierProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartOverview.prototype, \"overviewXAxis\", {\r\n /**\r\n * Gets the X Axis of the {@link SciChartSurface} used by the {@link @SciChartOverview}\r\n */\r\n get: function () {\r\n return this.overviewXAxisProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartOverview.prototype, \"overviewYAxis\", {\r\n /**\r\n * Gets the Y Axis of the {@link SciChartSurface} used by the {@link @SciChartOverview}\r\n */\r\n get: function () {\r\n return this.overviewYAxisProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n SciChartOverview.prototype.applyTheme = function (theme) {\r\n this.overviewSciChartSurface.applyTheme(theme);\r\n };\r\n /** @inheritDoc */\r\n SciChartOverview.prototype.delete = function () {\r\n if (this.overviewSciChartSurface && !this.overviewSciChartSurface.isDeleted) {\r\n this.overviewSciChartSurface.delete();\r\n }\r\n this.overviewWasmContext = undefined;\r\n };\r\n return SciChartOverview;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.SciChartOverview = SciChartOverview;\r\n/** @ignore */\r\nvar createSciChartOverview = function (originalSciChartSurface, overviewRootElement, options) { return __awaiter(void 0, void 0, void 0, function () {\r\n var _a, wasmContext, sciChartSurface, mainAxisId, secondaryAxisId, originalMainAxis, originalSecondaryAxis, originalXAxis, originalYAxis, xAxisOptions, yAxisOptions, xAxis, yAxis, mainOverviewAxis, defaultTransform, renderableSeries, rangeSelectionModifier;\r\n var _b;\r\n var _c, _d, _e, _f;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0: return [4 /*yield*/, SciChartSurface_1.SciChartSurface.create(overviewRootElement, options)];\r\n case 1:\r\n _a = _g.sent(), wasmContext = _a.wasmContext, sciChartSurface = _a.sciChartSurface;\r\n mainAxisId = (_c = options === null || options === void 0 ? void 0 : options.mainAxisId) !== null && _c !== void 0 ? _c : AxisBase2D_1.AxisBase2D.DEFAULT_AXIS_ID;\r\n secondaryAxisId = (_d = options === null || options === void 0 ? void 0 : options.secondaryAxisId) !== null && _d !== void 0 ? _d : AxisBase2D_1.AxisBase2D.DEFAULT_AXIS_ID;\r\n originalMainAxis = originalSciChartSurface.getXAxisById(mainAxisId);\r\n originalSecondaryAxis = originalSciChartSurface.getYAxisById(secondaryAxisId);\r\n if (!originalMainAxis)\r\n throw new Error(\"Could not find a main axis with id \".concat(mainAxisId, \".\") +\r\n (!(options === null || options === void 0 ? void 0 : options.mainAxisId) ? \"Please specify mainAxisId in the options\" : \"\"));\r\n if (!originalMainAxis)\r\n throw new Error(\"Could not find a secondary axis with id \".concat(secondaryAxisId, \".\") +\r\n (!(options === null || options === void 0 ? void 0 : options.secondaryAxisId) ? \"Please specify secondaryAxisId in the options\" : \"\"));\r\n originalXAxis = originalMainAxis.isXAxis ? originalMainAxis : originalSecondaryAxis;\r\n originalYAxis = originalMainAxis.isXAxis ? originalSecondaryAxis : originalMainAxis;\r\n xAxisOptions = __assign({ axisAlignment: originalXAxis.axisAlignment, isVisible: false, autoRange: AutoRange_1.EAutoRange.Always, visibleRange: originalXAxis.visibleRange }, options === null || options === void 0 ? void 0 : options.overviewXAxisOptions);\r\n yAxisOptions = __assign({ axisAlignment: originalYAxis.axisAlignment, isVisible: false, autoRange: AutoRange_1.EAutoRange.Always, visibleRange: originalYAxis.visibleRange }, options === null || options === void 0 ? void 0 : options.overviewYAxisOptions);\r\n xAxis = originalXAxis.isCategoryAxis\r\n ? new CategoryAxis_1.CategoryAxis(wasmContext, xAxisOptions)\r\n : originalXAxis.type === AxisType_1.EAxisType.LogarithmicAxis\r\n ? new LogarithmicAxis_1.LogarithmicAxis(wasmContext, xAxisOptions)\r\n : new NumericAxis_1.NumericAxis(wasmContext, xAxisOptions);\r\n yAxis = originalYAxis.isCategoryAxis\r\n ? new CategoryAxis_1.CategoryAxis(wasmContext, yAxisOptions)\r\n : originalXAxis.type === AxisType_1.EAxisType.LogarithmicAxis\r\n ? new LogarithmicAxis_1.LogarithmicAxis(wasmContext, yAxisOptions)\r\n : new NumericAxis_1.NumericAxis(wasmContext, yAxisOptions);\r\n mainOverviewAxis = originalMainAxis.isXAxis ? xAxis : yAxis;\r\n defaultTransform = function (rendSeries) {\r\n // return undefined to skip\r\n if (rendSeries.xAxisId !== originalXAxis.id || rendSeries.yAxisId !== originalYAxis.id) {\r\n return undefined;\r\n }\r\n // clone the series using builder api\r\n var overviewSeries = (0, buildSeries_1.buildSeries)(wasmContext, rendSeries.toJSON(true))[0];\r\n overviewSeries.dataSeries = rendSeries.dataSeries;\r\n overviewSeries.xAxisId = xAxis.id;\r\n overviewSeries.yAxisId = yAxis.id;\r\n return overviewSeries;\r\n };\r\n renderableSeries = originalSciChartSurface.renderableSeries\r\n .asArray()\r\n .map((_e = options === null || options === void 0 ? void 0 : options.transformRenderableSeries) !== null && _e !== void 0 ? _e : defaultTransform)\r\n .filter(function (rendSeries) { return rendSeries; });\r\n sciChartSurface.xAxes.add(xAxis);\r\n sciChartSurface.yAxes.add(yAxis);\r\n (_b = sciChartSurface.renderableSeries).add.apply(_b, renderableSeries);\r\n sciChartSurface.zoomExtents();\r\n rangeSelectionModifier = (_f = options === null || options === void 0 ? void 0 : options.customRangeSelectionModifier) !== null && _f !== void 0 ? _f : new OverviewRangeSelectionModifier_1.OverviewRangeSelectionModifier();\r\n rangeSelectionModifier.xAxisId = xAxis.id;\r\n rangeSelectionModifier.yAxisId = yAxis.id;\r\n rangeSelectionModifier.onSelectedAreaChanged = function (selectedRange) {\r\n if (!selectedRange.equals(originalMainAxis.visibleRange)) {\r\n originalMainAxis.visibleRange = selectedRange;\r\n }\r\n };\r\n rangeSelectionModifier.selectedArea = new NumberRange_1.NumberRange(Math.max(xAxis.visibleRange.min, originalMainAxis.visibleRange.min), Math.min(xAxis.visibleRange.max, originalMainAxis.visibleRange.max));\r\n sciChartSurface.chartModifiers.add(rangeSelectionModifier);\r\n if ((options === null || options === void 0 ? void 0 : options.rangeSelectionAnnotationSvgString) !== undefined) {\r\n rangeSelectionModifier.rangeSelectionAnnotation.svgString = options.rangeSelectionAnnotationSvgString;\r\n }\r\n xAxis.visibleRangeChanged.subscribe(function (_a) {\r\n var overviewVisibleRange = _a.visibleRange;\r\n var updatedSelectedRange = originalMainAxis.visibleRange.clip(overviewVisibleRange);\r\n rangeSelectionModifier.selectedArea = updatedSelectedRange;\r\n });\r\n originalMainAxis.visibleRangeChanged.subscribe(function (_a) {\r\n var visibleRange = _a.visibleRange;\r\n var updatedSelectedRange = visibleRange.clip(mainOverviewAxis.visibleRange);\r\n var shouldUpdateSelectedRange = !updatedSelectedRange.equals(rangeSelectionModifier.selectedArea);\r\n if (shouldUpdateSelectedRange) {\r\n rangeSelectionModifier.selectedArea = updatedSelectedRange;\r\n }\r\n });\r\n return [2 /*return*/, { sciChartSurface: sciChartSurface, xAxis: xAxis, yAxis: yAxis, rangeSelectionModifier: rangeSelectionModifier, wasmContext: wasmContext }];\r\n }\r\n });\r\n}); };\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PieSegment = void 0;\r\nvar classFactory_1 = require(\"../../../../Builder/classFactory\");\r\nvar Point_1 = require(\"../../../../Core/Point\");\r\nvar BaseType_1 = require(\"../../../../types/BaseType\");\r\nvar guid_1 = require(\"../../../../utils/guid\");\r\nvar PieLabelProvider_1 = require(\"../../Axis/LabelProvider/PieLabelProvider\");\r\nvar constants_1 = require(\"./constants\");\r\nvar PieSegment = /** @class */ (function () {\r\n function PieSegment(options) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\r\n this.colorProperty = \"grey\";\r\n this.isSelectedProperty = false;\r\n this.textProperty = \"\";\r\n this.deltaProperty = 15;\r\n this.shiftProperty = 0;\r\n this.labelOffsetProperty = new Point_1.Point(0, 0);\r\n this.radiusAdjustmentProperty = 1;\r\n this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n this.colorProperty = (_b = options === null || options === void 0 ? void 0 : options.color) !== null && _b !== void 0 ? _b : this.colorProperty;\r\n this.colorLinearGradientProperty = (_c = options === null || options === void 0 ? void 0 : options.colorLinearGradient) !== null && _c !== void 0 ? _c : this.colorLinearGradientProperty;\r\n this.isSelectedProperty = (_d = options === null || options === void 0 ? void 0 : options.isSelected) !== null && _d !== void 0 ? _d : this.isSelectedProperty;\r\n this.textProperty = (_e = options === null || options === void 0 ? void 0 : options.text) !== null && _e !== void 0 ? _e : this.textProperty;\r\n this.valueProperty = (_f = options === null || options === void 0 ? void 0 : options.value) !== null && _f !== void 0 ? _f : this.valueProperty;\r\n this.deltaProperty = (_g = options === null || options === void 0 ? void 0 : options.delta) !== null && _g !== void 0 ? _g : this.deltaProperty;\r\n this.showLabelProperty = (_h = options === null || options === void 0 ? void 0 : options.showLabel) !== null && _h !== void 0 ? _h : true;\r\n if (options === null || options === void 0 ? void 0 : options.labelProvider) {\r\n if (!(\"getSegmentText\" in (options === null || options === void 0 ? void 0 : options.labelProvider))) {\r\n options.labelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.LabelProvider, options.labelProvider.type, undefined, options.labelProvider.options);\r\n }\r\n }\r\n this.labelProviderProperty = options === null || options === void 0 ? void 0 : options.labelProvider; // No default here as we default to labelprovider on parent surface\r\n this.labelOffsetProperty = (_j = options === null || options === void 0 ? void 0 : options.labelOffset) !== null && _j !== void 0 ? _j : this.labelOffsetProperty;\r\n this.labelStyleProperty = options === null || options === void 0 ? void 0 : options.labelStyle;\r\n this.radiusAdjustmentProperty = (_k = options === null || options === void 0 ? void 0 : options.radiusAdjustment) !== null && _k !== void 0 ? _k : this.radiusAdjustmentProperty;\r\n }\r\n PieSegment.prototype.onAttach = function (scps) {\r\n this.parentSurface = scps;\r\n if (this.labelProviderProperty) {\r\n this.labelProviderProperty.attachedToSurface(scps);\r\n }\r\n this.invalidateParentCallback = scps.invalidateElement;\r\n };\r\n PieSegment.prototype.onDetach = function () {\r\n this.invalidateParentCallback = undefined;\r\n };\r\n Object.defineProperty(PieSegment.prototype, \"showLabel\", {\r\n // GETTERS AND SETTERS FOR PROPERTIES\r\n /**\r\n * When true, show the label on this pie segment, else false\r\n */\r\n get: function () {\r\n return this.showLabelProperty;\r\n },\r\n /**\r\n * When true, show the label on this pie segment, else false\r\n */\r\n set: function (value) {\r\n this.showLabelProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SHOW_LABEL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"colorLinearGradient\", {\r\n /**\r\n * An optional color gradient\r\n */\r\n get: function () {\r\n return this.colorLinearGradientProperty;\r\n },\r\n /**\r\n * An optional color gradient\r\n */\r\n set: function (value) {\r\n this.colorLinearGradientProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COLOR_LINEAR_GRADIENT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"color\", {\r\n /**\r\n * The color of the segment as an HTML color code\r\n */\r\n get: function () {\r\n return this.colorProperty;\r\n },\r\n /**\r\n * The color of the segment as an HTML color code\r\n */\r\n set: function (value) {\r\n this.colorProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"isSelected\", {\r\n /**\r\n * Whether the segment is selected. Selected segments are shifted outwards by the delta\r\n */\r\n get: function () {\r\n return this.isSelectedProperty;\r\n },\r\n /**\r\n * Whether the segment is selected. Selected segments are shifted outwards by the delta\r\n */\r\n set: function (value) {\r\n if (this.isSelectedProperty !== value) {\r\n this.isSelectedProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_SELECTED);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"text\", {\r\n /**\r\n * A text value for the segment which will be displayed in the legend\r\n */\r\n get: function () {\r\n return this.textProperty;\r\n },\r\n /**\r\n * A text value for the segment which will be displayed in the legend\r\n */\r\n set: function (value) {\r\n this.textProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"labelProvider\", {\r\n /**\r\n * Optional class that can override the default label formatting for this segment only. Must be or inherit from {@link PieLabelProvider}\r\n */\r\n get: function () {\r\n // Create a labelProvider if it is accessed. This will override behaviour from the parent surface\r\n if (this.labelProviderProperty === undefined) {\r\n this.labelProvider = new PieLabelProvider_1.PieLabelProvider();\r\n }\r\n return this.labelProviderProperty;\r\n },\r\n /**\r\n * Optional class that can override the default label formatting for this segment only. Must be or inherit from {@link PieLabelProvider}\r\n */\r\n set: function (value) {\r\n this.labelProviderProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PieSegment.prototype.getPercentage = function (total) {\r\n return (100 * this.value) / total;\r\n };\r\n Object.defineProperty(PieSegment.prototype, \"value\", {\r\n /**\r\n * The numerical value of the segment\r\n */\r\n get: function () {\r\n return this.valueProperty;\r\n },\r\n /**\r\n * The numerical value of the segment\r\n */\r\n set: function (value) {\r\n this.oldValueProperty = this.valueProperty;\r\n this.valueProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VALUE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"oldValue\", {\r\n /**\r\n * The previous value of the segment, if it has been updated. Used for animations\r\n */\r\n get: function () {\r\n return this.oldValueProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"delta\", {\r\n /**\r\n * The amount to shift the segment when it is selected. Default 15 px\r\n */\r\n get: function () {\r\n return this.deltaProperty;\r\n },\r\n /**\r\n * The amount to shift the segment when it is selected. Default 15 px\r\n */\r\n set: function (value) {\r\n if (this.deltaProperty !== value) {\r\n this.deltaProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.DELTA);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"shift\", {\r\n /**\r\n * The amount the segment is shifted radially outwards. Automatically set during selected/deselection animations\r\n * Do not set this directly. Use delta and isSelected instead\r\n */\r\n get: function () {\r\n return this.shiftProperty;\r\n },\r\n /**\r\n * The amount the segment is shifted radially outwards. Automatically set during selected/deselection animations\r\n */\r\n set: function (value) {\r\n if (this.shiftProperty !== value) {\r\n this.shiftProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SHIFT);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"labelStyle\", {\r\n /**\r\n * Gets or sets a {@link TTextStyle} object for styling labels for this segment only\r\n */\r\n get: function () {\r\n var _a;\r\n return __assign(__assign({}, (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.labelStyle), this.labelStyleProperty);\r\n },\r\n /**\r\n * Gets or sets a {@link TTextStyle} object for styling labels for this segment only\r\n */\r\n set: function (textStyle) {\r\n this.labelStyleProperty = __assign(__assign({}, this.labelStyleProperty), textStyle);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"labelOffset\", {\r\n /**\r\n * An x, y offset for the label position\r\n */\r\n get: function () {\r\n return this.labelOffsetProperty;\r\n },\r\n /**\r\n * An x, y offset for the label position\r\n */\r\n set: function (value) {\r\n var _a, _b;\r\n if (((_a = this.labelOffsetProperty) === null || _a === void 0 ? void 0 : _a.x) !== value.x && ((_b = this.labelOffsetProperty) === null || _b === void 0 ? void 0 : _b.y) !== value.y) {\r\n this.labelOffsetProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_OFFSET);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PieSegment.prototype, \"radiusAdjustment\", {\r\n /**\r\n * A relative adjustment of the radius for this segment. eg 1.5 will be 50% larger than normal\r\n */\r\n get: function () {\r\n return this.radiusAdjustmentProperty;\r\n },\r\n /**\r\n * A relative adjustment of the radius for this segment. eg 1.5 will be 50% larger than normal\r\n */\r\n set: function (value) {\r\n this.radiusAdjustmentProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.RADIUS_ADJUSTMENT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PieSegment.prototype.toJSON = function () {\r\n var _a;\r\n return {\r\n id: this.id,\r\n color: this.color,\r\n colorLinearGradient: this.colorLinearGradient,\r\n isSelected: this.isSelected,\r\n delta: this.delta,\r\n text: this.text,\r\n value: this.value,\r\n // @ts-ignore\r\n labelProvider: (_a = this.labelProviderProperty) === null || _a === void 0 ? void 0 : _a.toJSON(),\r\n labelOffset: this.labelOffset,\r\n labelStyle: this.labelStyle,\r\n radiusAdjustment: this.radiusAdjustment\r\n };\r\n };\r\n PieSegment.prototype.getLabelText = function (total) {\r\n if (this.labelProviderProperty) {\r\n return this.labelProvider.getSegmentText(this, total);\r\n }\r\n else {\r\n return this.parentSurface.labelProvider.getSegmentText(this, total);\r\n }\r\n };\r\n PieSegment.prototype.notifyPropertyChanged = function (propertyName) {\r\n if (propertyName === constants_1.PROPERTY.LABEL_PROVIDER && this.labelProviderProperty) {\r\n this.labelProviderProperty.attachedToSurface(this.parentSurface);\r\n }\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback(propertyName);\r\n }\r\n };\r\n return PieSegment;\r\n}());\r\nexports.PieSegment = PieSegment;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"COLOR\"] = \"COLOR\";\r\n PROPERTY[\"COLOR_LINEAR_GRADIENT\"] = \"COLOR_LINEAR_GRADIENT\";\r\n PROPERTY[\"DELTA\"] = \"DELTA\";\r\n PROPERTY[\"IS_SELECTED\"] = \"IS_SELECTED\";\r\n PROPERTY[\"PERCENTAGE\"] = \"PERCENTAGE\";\r\n PROPERTY[\"TEXT\"] = \"TEXT\";\r\n PROPERTY[\"VALUE\"] = \"VALUE\";\r\n PROPERTY[\"SHIFT\"] = \"SHIFT\";\r\n PROPERTY[\"LABEL_PROVIDER\"] = \"LABEL_PROVIDER\";\r\n PROPERTY[\"LABEL_STYLE\"] = \"LABEL_STYLE\";\r\n PROPERTY[\"LABEL_OFFSET\"] = \"LABEL_OFFSET\";\r\n PROPERTY[\"RADIUS_ADJUSTMENT\"] = \"RADIUS_ADJUSTMENT\";\r\n PROPERTY[\"SHOW_LABEL\"] = \"SHOW_LABEL\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.addEventListenerToPieSegment = exports.SciChartPieSurface = exports.EPieValueMode = exports.EPieType = exports.ESizingMode = void 0;\r\nvar chartBuilder_1 = require(\"../../../Builder/chartBuilder\");\r\nvar classFactory_1 = require(\"../../../Builder/classFactory\");\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar EasingFunctions_1 = require(\"../../../Core/Animations/EasingFunctions\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\nvar Globals_1 = require(\"../../../Core/Globals\");\r\nvar ObservableArray_1 = require(\"../../../Core/ObservableArray\");\r\nvar Rect_1 = require(\"../../../Core/Rect\");\r\nvar BaseType_1 = require(\"../../../types/BaseType\");\r\nvar SciChartSurfaceType_1 = require(\"../../../types/SciChartSurfaceType\");\r\nvar guid_1 = require(\"../../../utils/guid\");\r\nvar SciChartJSDarkTheme_1 = require(\"../../Themes/SciChartJSDarkTheme\");\r\nvar annotationHelpers_1 = require(\"../Annotations/annotationHelpers\");\r\nvar PieLabelProvider_1 = require(\"../Axis/LabelProvider/PieLabelProvider\");\r\nvar SciChartPieLegend_1 = require(\"../Legend/SciChartPieLegend\");\r\nvar sciChartInitCommon_1 = require(\"../sciChartInitCommon\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../TextureManager/DpiHelper\");\r\nvar constants_1 = require(\"./constants\");\r\nvar constants_2 = require(\"./PieSegment/constants\");\r\n/** @ignore */\r\nvar DEG_TO_RAD = Math.PI / 180;\r\n/** @ignore */\r\nvar START_ANGLE = 90;\r\nvar ESizingMode;\r\n(function (ESizingMode) {\r\n /**\r\n * The size value is specified as absolute value ( e.g. 1px, 10dp etc)\r\n */\r\n ESizingMode[\"Absolute\"] = \"Absolute\";\r\n /**\r\n * The size value is specified as relative value ( e.g. 10% from available size )\r\n */\r\n ESizingMode[\"Relative\"] = \"Relative\";\r\n})(ESizingMode = exports.ESizingMode || (exports.ESizingMode = {}));\r\nvar EPieType;\r\n(function (EPieType) {\r\n EPieType[\"Pie\"] = \"Pie\";\r\n EPieType[\"Donut\"] = \"Donut\";\r\n})(EPieType = exports.EPieType || (exports.EPieType = {}));\r\nvar EPieValueMode;\r\n(function (EPieValueMode) {\r\n EPieValueMode[EPieValueMode[\"Percentage\"] = 0] = \"Percentage\";\r\n EPieValueMode[EPieValueMode[\"Raw\"] = 1] = \"Raw\";\r\n})(EPieValueMode = exports.EPieValueMode || (exports.EPieValueMode = {}));\r\n/**\r\n * @summary The {@link SciChartPieSurface} is the root Pie and Donut Chart control in SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Chart Library}\r\n * @description\r\n * To create a Pie chart using SciChart, declare a {@link SciChartPieSurface} using {@link SciChartPieSurface.create},\r\n *\r\n * Next, add a pie segments by adding a {@link PieSegment} to the {@link SciChartPieSurface.pieSegments} collection.\r\n *\r\n * You can create a donut chart by setting the {@link SciChartPieSurface.holeRadius} property.\r\n *\r\n * You can add and configure a legend by setting the {@link SciChartPieSurface.legend} property.\r\n * @remarks\r\n * It is possible to have more than one {@link SciChartPieSurface} on screen at the same time.\r\n * {@link SciChartPieSurface | SciChartPieSurfaces} scale to fit the parent DIV where they are hosted. Use CSS to position the DIV.\r\n */\r\nvar SciChartPieSurface = /** @class */ (function (_super) {\r\n __extends(SciChartPieSurface, _super);\r\n function SciChartPieSurface(canvases, options) {\r\n if (canvases === void 0) { canvases = {}; }\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;\r\n _this = _super.call(this) || this;\r\n _this.animate = true;\r\n /* The number of frames for the animation. Default 30. A frame will be trigged every 20ms. */\r\n _this.animationFrames = 30;\r\n /**\r\n * An event handler which notifies its subscribers when a render operation has finished. Use this\r\n * to time render performance, or to update elements of the chart or your UI on redraw.\r\n */\r\n _this.rendered = new EventHandler_1.EventHandler();\r\n _this.pieTypeProperty = EPieType.Pie;\r\n _this.holeRadiusProperty = 0.5;\r\n _this.holeRadiusSizingModeProperty = ESizingMode.Relative;\r\n _this.seriesSpacingProperty = 0;\r\n _this.labelRadiusProperty = 1;\r\n _this.titleDivs = [];\r\n _this.sweepAnimationDone = false;\r\n _this.suspendUpdate = false;\r\n _this.themeProviderProperty = new SciChartJSDarkTheme_1.SciChartJSDarkTheme();\r\n _this.previousThemeProviderProperty = new SciChartJSDarkTheme_1.SciChartJSDarkTheme();\r\n _this.deletables = [];\r\n _this.valueModeProperty = EPieValueMode.Percentage;\r\n _this.labelStyleProperty = {\r\n fontSize: 14,\r\n fontFamily: \"Arial\",\r\n color: \"#1e323d\",\r\n fontWeight: \"bold\"\r\n };\r\n _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n _this.domChartRoot = canvases.domChartRoot;\r\n _this.domCanvas2D = canvases.domCanvas2D;\r\n _this.domSvgContainer = canvases.domSvgContainer;\r\n _this.domSvgAdornerLayer = canvases.domSvgAdornerLayer;\r\n _this.domDivContainer = canvases.domDivContainer;\r\n var width = _this.domCanvas2D.width / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var height = _this.domCanvas2D.height / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n _this.viewRect = new Rect_1.Rect(0, 0, width, height);\r\n _this.resizeSubscriptionToken = sciChartInitCommon_1.default.subscribeToResize(\r\n // @ts-ignore\r\n canvases.domCanvas2D, canvases.aspect, _this);\r\n _this.drawChart = _this.drawChart.bind(_this);\r\n _this.deleteInternals = _this.deleteInternals.bind(_this);\r\n _this.invalidateElement = _this.invalidateElement.bind(_this);\r\n _this.detachPieSegment = _this.detachPieSegment.bind(_this);\r\n _this.attachPieSegment = _this.attachPieSegment.bind(_this);\r\n _this.pieSegments = new ObservableArray_1.ObservableArray();\r\n _this.pieSegments.collectionChanged.subscribe(function (args) {\r\n var _a, _b;\r\n (_a = args.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(_this.detachPieSegment);\r\n (_b = args.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(_this.attachPieSegment);\r\n // Do this only after all changes have been processed\r\n _this.invalidateElement();\r\n });\r\n _this.applySciChartBackground(SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.sciChartBackground);\r\n _this.legend = new SciChartPieLegend_1.SciChartPieLegend();\r\n _this.legend.setRootDiv(_this.domDivContainer);\r\n _this.legend.setPieSegmentArray(_this.pieSegments.asArray());\r\n _this.legend.setInvalidateParentSurface(_this.invalidateElement);\r\n _this.legend.setParentSurface(_this);\r\n _this.heightAspect = (_b = options === null || options === void 0 ? void 0 : options.heightAspect) !== null && _b !== void 0 ? _b : 0;\r\n _this.widthAspect = (_c = options === null || options === void 0 ? void 0 : options.widthAspect) !== null && _c !== void 0 ? _c : 0;\r\n _this.pieTypeProperty = (_d = options === null || options === void 0 ? void 0 : options.pieType) !== null && _d !== void 0 ? _d : _this.pieType;\r\n _this.holeRadiusProperty = (_e = options === null || options === void 0 ? void 0 : options.holeRadius) !== null && _e !== void 0 ? _e : _this.holeRadius;\r\n _this.animate = (_f = options === null || options === void 0 ? void 0 : options.animate) !== null && _f !== void 0 ? _f : _this.animate;\r\n _this.holeRadiusSizingModeProperty = (_g = options === null || options === void 0 ? void 0 : options.holeRadiusSizingMode) !== null && _g !== void 0 ? _g : _this.holeRadiusSizingModeProperty;\r\n _this.seriesSpacingProperty = (_h = options === null || options === void 0 ? void 0 : options.seriesSpacing) !== null && _h !== void 0 ? _h : _this.seriesSpacingProperty;\r\n _this.labelRadiusProperty = (_j = options === null || options === void 0 ? void 0 : options.labelRadiusAdjustment) !== null && _j !== void 0 ? _j : _this.labelRadiusProperty;\r\n _this.legend.showLegend = (_k = options === null || options === void 0 ? void 0 : options.showLegend) !== null && _k !== void 0 ? _k : _this.legend.showLegend;\r\n _this.legend.animate = (_l = options === null || options === void 0 ? void 0 : options.animateLegend) !== null && _l !== void 0 ? _l : _this.legend.animate;\r\n _this.legend.showCheckboxes = (_m = options === null || options === void 0 ? void 0 : options.showLegendCheckBoxes) !== null && _m !== void 0 ? _m : _this.legend.showCheckboxes;\r\n _this.legend.showSeriesMarkers = (_o = options === null || options === void 0 ? void 0 : options.showLegendSeriesMarkers) !== null && _o !== void 0 ? _o : _this.legend.showSeriesMarkers;\r\n _this.paddingProperty = (_p = options === null || options === void 0 ? void 0 : options.padding) !== null && _p !== void 0 ? _p : _this.paddingProperty;\r\n if (options === null || options === void 0 ? void 0 : options.labelProvider) {\r\n if (!(\"getSegmentText\" in (options === null || options === void 0 ? void 0 : options.labelProvider))) {\r\n options.labelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.LabelProvider, options.labelProvider.type, undefined, options.labelProvider.options);\r\n }\r\n }\r\n _this.labelProvider = (_q = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _q !== void 0 ? _q : new PieLabelProvider_1.PieLabelProvider();\r\n _this.valueModeProperty = (_r = options === null || options === void 0 ? void 0 : options.valueMode) !== null && _r !== void 0 ? _r : _this.valueModeProperty;\r\n return _this;\r\n }\r\n /**\r\n * Creates a {@link SciChartPieSurface} to occupy the div by element ID in your DOM.\r\n * @remarks This method is async and must be awaited\r\n * @param divElementId The Div Element ID where the {@link SciChartPieSurface} will reside\r\n * @param width Optional - the width of the {@link SciChartPieSurface} in pixels. By default SciChart will scale to fit the parent Div\r\n * @param height Optional - the height of the {@link SciChartPieSurface} in pixels. By default SciChart will scale to fit the parent Div\r\n */\r\n SciChartPieSurface.create = function (divElement, options) {\r\n var _a, _b;\r\n (0, chartBuilder_1.ensureRegistrations)();\r\n var canvases = sciChartInitCommon_1.default.initCanvas(divElement, (_a = options === null || options === void 0 ? void 0 : options.widthAspect) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.heightAspect) !== null && _b !== void 0 ? _b : 0, sciChartInitCommon_1.default.ECanvasType.svg, undefined, options === null || options === void 0 ? void 0 : options.touchAction);\r\n return new Promise(function (resolve) {\r\n var _a, _b, _c;\r\n var conflictingRenderContextDestinations = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], Globals_1.sciChartDestinations, true), Globals_1.sciChart3DDestinations, true), Globals_1.sciChartSingleDestinations, true), Globals_1.sciChartPieDestinations, true).filter(function (destination) { return destination.sciChartSurface.domChartRoot.id === canvases.domChartRoot.id; });\r\n conflictingRenderContextDestinations.forEach(function (destination) { return destination.sciChartSurface.delete(); });\r\n options = SciChartSurfaceBase_1.SciChartSurfaceBase.resolveOptions(options);\r\n var scps = new SciChartPieSurface(canvases, options);\r\n scps.applyTheme(options === null || options === void 0 ? void 0 : options.theme);\r\n Globals_1.sciChartPieDestinations.push({\r\n canvasElementId: (_a = canvases.domCanvas2D) === null || _a === void 0 ? void 0 : _a.id,\r\n sciChartSurface: scps,\r\n width: (_b = canvases.domCanvas2D) === null || _b === void 0 ? void 0 : _b.width,\r\n height: (_c = canvases.domCanvas2D) === null || _c === void 0 ? void 0 : _c.height\r\n });\r\n scps.setDestinations(Globals_1.sciChartPieDestinations);\r\n // setTimeout is used to make function async like createSciChartSurface, to have a consistent API\r\n setTimeout(function () { return resolve(scps); }, 0);\r\n });\r\n };\r\n Object.defineProperty(SciChartPieSurface.prototype, \"isDeleted\", {\r\n get: function () {\r\n return this.isDeletedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"labelProvider\", {\r\n /**\r\n * Gets or sets a {@link LabelProvider} - a class which is responsible for formatting axis labels and cursor labels from numeric values\r\n */\r\n get: function () {\r\n return this.labelProviderProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link LabelProvider} - a class which is responsible for formatting axis labels and cursor labels from numeric values\r\n */\r\n set: function (labelProvider) {\r\n if (labelProvider && this.labelProviderProperty !== labelProvider) {\r\n this.labelProviderProperty = labelProvider;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_PROVIDER);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"labelStyle\", {\r\n /**\r\n * Gets or sets a {@link TTextStyle} object for styling labels\r\n */\r\n get: function () {\r\n return this.labelStyleProperty;\r\n },\r\n /**\r\n * Gets or sets a {@link TTextStyle} object for styling labels\r\n */\r\n set: function (textStyle) {\r\n this.labelStyleProperty = __assign(__assign({}, this.labelStyle), textStyle);\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT_STYLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartPieSurface.prototype.applyTheme = function (themeProvider) {\r\n this.previousThemeProviderProperty = this.themeProviderProperty;\r\n this.themeProviderProperty = themeProvider;\r\n this.applySciChartBackground(themeProvider.sciChartBackground);\r\n if (this.labelStyle.color === this.previousThemeProvider.tickTextBrush) {\r\n this.labelStyle = { color: themeProvider.tickTextBrush };\r\n }\r\n this.invalidateElement();\r\n };\r\n Object.defineProperty(SciChartPieSurface.prototype, \"themeProvider\", {\r\n /**\r\n * Used internally - gets the previous {@link IThemeProvider}\r\n */\r\n get: function () {\r\n return this.themeProviderProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"previousThemeProvider\", {\r\n /**\r\n * Used internally - gets the previous {@link IThemeProvider}\r\n */\r\n get: function () {\r\n return this.previousThemeProviderProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SciChartPieSurface.prototype.setDestinations = function (destinations) {\r\n this.destinations = destinations;\r\n };\r\n Object.defineProperty(SciChartPieSurface.prototype, \"otherSurfaces\", {\r\n get: function () {\r\n var _this = this;\r\n if (!this.destinations) {\r\n return [];\r\n }\r\n return this.destinations.map(function (el) { return el.sciChartSurface; }).filter(function (el2) { return el2 !== _this; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Call invalidateElement() to trigger a redraw of the {@link SciChartPieSurface}. SciChart's rendering\r\n * engine will schedule a redraw a the next time the renderer is free.\r\n */\r\n SciChartPieSurface.prototype.invalidateElement = function (options) {\r\n // TODO make params type consistent with 2D and 3D\r\n if (this.isValidToDraw()) {\r\n if (typeof options === \"string\" && options === constants_2.PROPERTY.VALUE) {\r\n this.sweepAnimationDone = false;\r\n }\r\n this.update();\r\n }\r\n };\r\n /**\r\n * Called internally - Updates and draws the Pie Chart\r\n */\r\n SciChartPieSurface.prototype.update = function () {\r\n var _a;\r\n if (!this.suspendUpdate) {\r\n this.draw();\r\n (_a = this.legend) === null || _a === void 0 ? void 0 : _a.update();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartPieSurface.prototype.delete = function () {\r\n var _this = this;\r\n var _a;\r\n this.deleteInternals();\r\n this.legend = (0, Deleter_1.deleteSafe)(this.legend);\r\n this.labelProvider = (0, Deleter_1.deleteSafe)(this.labelProvider);\r\n this.resizeSubscriptionToken = (0, Deleter_1.deleteSafe)(this.resizeSubscriptionToken);\r\n // TODO probably this should be moved outside for Proxy === this comparison issue exists\r\n var currentSurfaceIndex = (_a = this.destinations) === null || _a === void 0 ? void 0 : _a.findIndex(function (dest) { return dest.sciChartSurface.id === _this.id; });\r\n if (currentSurfaceIndex >= 0) {\r\n this.destinations.splice(currentSurfaceIndex, 1);\r\n }\r\n this.isDeletedProperty = true;\r\n };\r\n /**\r\n * Used Internally. Cleans up the chart internal parts, subscriptions, etc.\r\n */\r\n SciChartPieSurface.prototype.deleteInternals = function (isAnimationProgress) {\r\n var _this = this;\r\n if (this.svg) {\r\n this.domSvgContainer.removeChild(this.svg);\r\n this.svg = undefined;\r\n }\r\n if (!isAnimationProgress) {\r\n this.titleDivs.forEach(function (divEl) {\r\n _this.domDivContainer.removeChild(divEl);\r\n });\r\n this.titleDivs = [];\r\n }\r\n for (var _i = 0, _a = this.deletables; _i < _a.length; _i++) {\r\n var deletable = _a[_i];\r\n (0, Deleter_1.deleteSafe)(deletable);\r\n }\r\n this.deletables = [];\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartPieSurface.prototype.addDeletable = function (deletable) {\r\n this.deletables.push(deletable);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartPieSurface.prototype.changeViewportSize = function (width, height) {\r\n var domWidth = width;\r\n var domHeight = height;\r\n this.viewRect = new Rect_1.Rect(0, 0, width, height);\r\n this.changeDomViewportSize(domWidth, domHeight);\r\n this.invalidateElement();\r\n };\r\n Object.defineProperty(SciChartPieSurface.prototype, \"pieType\", {\r\n // GETTERS AND SETTERS FOR PROPERTIES\r\n /**\r\n * Gets or sets the type of the pie chart. See {@link EPieType} for a list of values\r\n * @remarks See also {@link holeRadius} which is required for Donut charts and {@link holeRadiusSizingMode}\r\n * which defines whether the Donut hole is relative or absolute.\r\n */\r\n get: function () {\r\n return this.pieTypeProperty;\r\n },\r\n /**\r\n * Gets or sets the type of the pie chart. See {@link EPieType} for a list of values\r\n * @remarks See also {@link holeRadius} which is required for Donut charts and {@link holeRadiusSizingMode}\r\n * which defines whether the Donut hole is relative or absolute.\r\n */\r\n set: function (value) {\r\n this.pieTypeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PIE_TYPE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"holeRadius\", {\r\n /**\r\n * Gets or sets the hole radius, which allows you to create Donut charts instead of Pie.\r\n * @remarks See also {@link EPieType} which is required to change from Pie to Donut and {@link holeRadiusSizingMode}\r\n * which defines whether the Donut hole is relative or absolute.\r\n */\r\n get: function () {\r\n return this.holeRadiusProperty;\r\n },\r\n /**\r\n * Gets or sets the hole radius, which allows you to create Donut charts instead of Pie.\r\n * @remarks See also {@link EPieType} which is required to change from Pie to Donut and {@link holeRadiusSizingMode}\r\n * which defines whether the Donut hole is relative or absolute.\r\n */\r\n set: function (holeRadius) {\r\n this.holeRadiusProperty = holeRadius;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.HOLE_RADIUS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"holeRadiusSizingMode\", {\r\n /**\r\n * Gets or sets the hole radius size mode for Donut charts. See {@link ESizingMode} for a list of values\r\n * @remarks See also {@link EPieType} which is required to change from Pie to Donut, and {@link holeRadius}\r\n * which sets the size of a Donut Chart hole\r\n */\r\n get: function () {\r\n return this.holeRadiusSizingModeProperty;\r\n },\r\n /**\r\n * Gets or sets the hole radius size mode for Donut charts. See {@link ESizingMode} for a list of values\r\n * @remarks See also {@link EPieType} which is required to change from Pie to Donut, and {@link holeRadius}\r\n * which sets the size of a Donut Chart hole\r\n */\r\n set: function (holeRadiusSizingMode) {\r\n this.holeRadiusSizingModeProperty = holeRadiusSizingMode;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.HOLE_RADIUS_SIZING_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"padding\", {\r\n /**\r\n * Gets or sets padding\r\n */\r\n get: function () {\r\n return this.paddingProperty;\r\n },\r\n /**\r\n * Gets or sets padding\r\n */\r\n set: function (value) {\r\n if (this.paddingProperty !== value) {\r\n this.paddingProperty = value;\r\n this.updateLegendMargin();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PADDING);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"canvasBorder\", {\r\n /**\r\n * Gets or sets canvas border\r\n */\r\n get: function () {\r\n return this.canvasBorderProperty;\r\n },\r\n /**\r\n * Gets or sets canvas border\r\n */\r\n set: function (value) {\r\n if (this.canvasBorderProperty !== value) {\r\n this.canvasBorderProperty = value;\r\n this.updateLegendMargin();\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PADDING);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"seriesSpacing\", {\r\n get: function () {\r\n return this.seriesSpacingProperty;\r\n },\r\n set: function (value) {\r\n if (this.seriesSpacingProperty !== value) {\r\n this.seriesSpacingProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_SPACING);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"valueMode\", {\r\n /** Whether to show labels as percentages, or raw values. Default to percentages */\r\n get: function () {\r\n return this.valueModeProperty;\r\n },\r\n /** Whether to show labels as percentages, or raw values. Default to percentages */\r\n set: function (value) {\r\n this.valueModeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VALUE_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartPieSurface.prototype, \"labelRadiusAdjustment\", {\r\n /**\r\n * Use this to adjust the position of the labels. 1 is the default. Larger values will shift the labels outwards.\r\n * For Pie charts, 1.7 will place the labels outside the pie\r\n * If you want more detailed control you can override calcTitlePosition.\r\n */\r\n get: function () {\r\n return this.labelRadiusProperty;\r\n },\r\n /**\r\n * Use this to adjust the position of the labels. 1 is the default. Larger values will shift the labels outwards.\r\n * If you want more detailed control you can override calcTitlePosition.\r\n */\r\n set: function (value) {\r\n this.labelRadiusProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.VALUE_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Convert the surface to a {@link TSurfaceDefinition}\r\n * @param excludedata If false, segments will be included in the json\r\n */\r\n SciChartPieSurface.prototype.toJSON = function (excludedata) {\r\n if (excludedata === void 0) { excludedata = false; }\r\n var theme;\r\n if (\"toJSON\" in this.themeProvider) {\r\n // @ts-ignore\r\n theme = this.themeProvider.toJSON();\r\n }\r\n else {\r\n theme = this.themeProvider;\r\n }\r\n var surface = {\r\n animate: this.animate,\r\n animateLegend: this.legend.animate,\r\n heightAspect: this.heightAspect,\r\n widthAspect: this.widthAspect,\r\n holeRadius: this.holeRadius,\r\n holeRadiusSizingMode: this.holeRadiusSizingMode,\r\n pieType: this.pieType,\r\n showLegend: this.legend.showLegend,\r\n showLegendCheckBoxes: this.legend.showCheckboxes,\r\n showLegendSeriesMarkers: this.legend.showSeriesMarkers,\r\n padding: this.padding,\r\n canvasBorder: this.canvasBorder,\r\n seriesSpacing: this.seriesSpacing,\r\n // @ts-ignore\r\n labelProvider: this.labelProvider.toJSON(),\r\n valueMode: this.valueMode,\r\n labelRadiusAdjustment: this.labelRadiusAdjustment,\r\n animationFrames: this.animationFrames,\r\n theme: theme\r\n };\r\n var options = { surface: surface, onCreated: this.onCreatedName };\r\n if (!excludedata) {\r\n options.segments = this.pieSegments.asArray().map(function (s) { return s.toJSON(); });\r\n }\r\n return { type: SciChartSurfaceType_1.ESciChartSurfaceType.Pie2D, options: options };\r\n };\r\n /** The method used to calculate the label position for each segment */\r\n SciChartPieSurface.prototype.calcTitlePosition = function (x, y, outerRadius, innerRadius, a1, a2, delta, divWidth, divHeight) {\r\n var centerRadius = innerRadius < outerRadius / 2 ? (outerRadius * 2) / 3 + innerRadius / 6 : (outerRadius + innerRadius) / 2;\r\n var centerAngle = (a1 + a2) / 2;\r\n var left = x + Math.cos(DEG_TO_RAD * centerAngle) * (centerRadius * this.labelRadiusProperty + delta) - divWidth / 2;\r\n var top = y + Math.sin(DEG_TO_RAD * centerAngle) * (centerRadius * this.labelRadiusProperty + delta) - divHeight / 2;\r\n return { left: left, top: top };\r\n };\r\n /**\r\n * Changes the size of the DOM element where the {@link SciChartSurfaceBase} resides.\r\n * @param width\r\n * @param height\r\n */\r\n SciChartPieSurface.prototype.changeDomViewportSize = function (width, height) {\r\n if (this.domSvgContainer) {\r\n this.domSvgContainer.setAttribute(\"width\", width.toString());\r\n this.domSvgContainer.setAttribute(\"height\", height.toString());\r\n }\r\n if (this.domSvgAdornerLayer) {\r\n this.domSvgAdornerLayer.setAttribute(\"width\", width.toString());\r\n this.domSvgAdornerLayer.setAttribute(\"height\", height.toString());\r\n }\r\n };\r\n // PRIVATE\r\n SciChartPieSurface.prototype.notifyPropertyChanged = function (propertyName) {\r\n this.invalidateElement();\r\n if (propertyName === constants_1.PROPERTY.LABEL_PROVIDER && this.labelProviderProperty) {\r\n this.labelProviderProperty.attachedToSurface(this);\r\n }\r\n };\r\n SciChartPieSurface.prototype.isValidToDraw = function () {\r\n // TODO\r\n return true;\r\n };\r\n SciChartPieSurface.prototype.detachPieSegment = function (pieSegment) {\r\n pieSegment.onDetach();\r\n };\r\n SciChartPieSurface.prototype.attachPieSegment = function (pieSegment) {\r\n pieSegment.onAttach(this);\r\n };\r\n SciChartPieSurface.prototype.updateLegendMargin = function () {\r\n var _a, _b, _c;\r\n var paddingTop = ((_a = this.padding) === null || _a === void 0 ? void 0 : _a.top) || 0;\r\n var canvasBorderTop = ((_b = this.canvasBorder) === null || _b === void 0 ? void 0 : _b.border) || ((_c = this.canvasBorder) === null || _c === void 0 ? void 0 : _c.borderTop) || 0;\r\n // 10 - because of default spacing\r\n // only top included because of margin implementation for the legend\r\n this.legend.margin = paddingTop + canvasBorderTop + 10;\r\n };\r\n SciChartPieSurface.prototype.calculateViewRectWidth = function (width) {\r\n var _a, _b, _c, _d, _e;\r\n if ((_a = this.padding) === null || _a === void 0 ? void 0 : _a.left) {\r\n width -= this.padding.left;\r\n }\r\n if ((_b = this.padding) === null || _b === void 0 ? void 0 : _b.right) {\r\n width -= this.padding.right;\r\n }\r\n if ((_c = this.canvasBorder) === null || _c === void 0 ? void 0 : _c.border) {\r\n width -= this.canvasBorder.border * 2;\r\n }\r\n else {\r\n if ((_d = this.canvasBorder) === null || _d === void 0 ? void 0 : _d.borderLeft) {\r\n width -= this.canvasBorder.borderLeft;\r\n }\r\n if ((_e = this.canvasBorder) === null || _e === void 0 ? void 0 : _e.borderRight) {\r\n width -= this.canvasBorder.borderRight;\r\n }\r\n }\r\n return width;\r\n };\r\n SciChartPieSurface.prototype.calculateViewRectHeight = function (height) {\r\n var _a, _b, _c, _d, _e;\r\n if ((_a = this.padding) === null || _a === void 0 ? void 0 : _a.top) {\r\n height -= this.padding.top;\r\n }\r\n if ((_b = this.padding) === null || _b === void 0 ? void 0 : _b.bottom) {\r\n height -= this.padding.bottom;\r\n }\r\n if ((_c = this.canvasBorder) === null || _c === void 0 ? void 0 : _c.border) {\r\n height -= this.canvasBorder.border * 2;\r\n }\r\n else {\r\n if ((_d = this.canvasBorder) === null || _d === void 0 ? void 0 : _d.borderTop) {\r\n height -= this.canvasBorder.borderTop;\r\n }\r\n if ((_e = this.canvasBorder) === null || _e === void 0 ? void 0 : _e.borderBottom) {\r\n height -= this.canvasBorder.borderBottom;\r\n }\r\n }\r\n return height;\r\n };\r\n SciChartPieSurface.prototype.draw = function () {\r\n var _this = this;\r\n if (this.pieSegments.size() === 0)\r\n return;\r\n if (this.sweepAnimationDone || !this.animate) {\r\n this.deleteInternals();\r\n this.drawChart();\r\n }\r\n else {\r\n var frames_1 = this.animationFrames;\r\n this.suspendUpdate = true;\r\n var setSuspendUpdateFalse_1 = function () { return (_this.suspendUpdate = false); };\r\n var setSweepAnimationDone_1 = function () { return (_this.sweepAnimationDone = true); };\r\n var callInvalidateElement_1 = this.invalidateElement;\r\n var callDrawChart_1 = this.drawChart;\r\n var callDelete_1 = this.deleteInternals;\r\n (function myLoop(k) {\r\n setTimeout(function () {\r\n var animationProgress = k / frames_1;\r\n callDelete_1(true);\r\n callDrawChart_1(animationProgress);\r\n if (k === frames_1) {\r\n setSuspendUpdateFalse_1();\r\n setSweepAnimationDone_1();\r\n callInvalidateElement_1();\r\n }\r\n if (++k <= frames_1)\r\n myLoop(k);\r\n }, 20);\r\n })(1);\r\n }\r\n // ADD EVENT LISTENERS\r\n if (!app_1.IS_TEST_ENV) {\r\n this.pieSegments.asArray().forEach(function (ps) {\r\n var el = _this.domChartRoot.querySelector(\"[id='\".concat(ps.id, \"']\"));\r\n if (el) {\r\n var subscriptionToken = (0, exports.addEventListenerToPieSegment)(ps, el, _this.animate);\r\n _this.addDeletable(subscriptionToken);\r\n }\r\n });\r\n }\r\n this.rendered.raiseEvent();\r\n };\r\n /**\r\n * @description Draws pie chart itself\r\n * @param animationProgress - Current progress from 0 to 1, is being used for sweep animation on start.\r\n */\r\n SciChartPieSurface.prototype.drawChart = function (animationProgress) {\r\n var _this = this;\r\n if (animationProgress === void 0) { animationProgress = 1; }\r\n var totalValue = this.pieSegmentsTotalValue();\r\n if (!totalValue) {\r\n return;\r\n }\r\n var strokeWidth = 2;\r\n var strokeColor = this.themeProviderProperty.sciChartBackground;\r\n var segments = this.pieSegments.asArray();\r\n var totalOldValue = this.pieSegmentsTotalOldValue();\r\n var outerRadius = (Math.min(this.calculateViewRectWidth(this.viewRect.width), this.calculateViewRectHeight(this.viewRect.height)) *\r\n 0.8) /\r\n 2;\r\n var innerRadius = 0;\r\n if (this.pieType === EPieType.Donut) {\r\n innerRadius =\r\n this.holeRadiusSizingMode === ESizingMode.Absolute ? this.holeRadius : outerRadius * this.holeRadius;\r\n }\r\n var xCoord = this.calculateViewRectWidth(this.viewRect.width) / 2;\r\n var yCoord = this.calculateViewRectHeight(this.viewRect.height) / 2;\r\n // CREATING SVG STRING\r\n var gradientsBlock = \"\";\r\n var pathsBlock = \"\";\r\n var currentValue = 0;\r\n var currentOldValue = 0;\r\n segments.forEach(function (el, index) {\r\n var _a;\r\n if (el.value === 0) {\r\n return;\r\n }\r\n var oldValue = (_a = el.oldValue) !== null && _a !== void 0 ? _a : 0;\r\n var newFrom = (360 * currentValue) / totalValue - START_ANGLE;\r\n var newTo = (360 * (currentValue + el.value)) / totalValue - START_ANGLE - 0.0001; // newTo != newFrom - for only 1 segment\r\n var oldFrom = (360 * currentOldValue) / totalOldValue - START_ANGLE;\r\n var oldTo = (360 * (currentOldValue + oldValue)) / totalOldValue - START_ANGLE;\r\n currentValue += el.value;\r\n currentOldValue += oldValue;\r\n var angleFrom = oldFrom + (newFrom - oldFrom) * EasingFunctions_1.easing.inOutCubic(animationProgress);\r\n var angleTo = oldTo + (newTo - oldTo) * EasingFunctions_1.easing.inOutCubic(animationProgress);\r\n var hasGradient = !!el.colorLinearGradient;\r\n var gradientId = \"grad\".concat(el.id);\r\n if (hasGradient) {\r\n var x1 = el.colorLinearGradient.startPoint.x * 100;\r\n var y1 = el.colorLinearGradient.startPoint.y * 100;\r\n var x2 = el.colorLinearGradient.endPoint.x * 100;\r\n var y2 = el.colorLinearGradient.endPoint.y * 100;\r\n var gradientBlock_1 = \"\");\r\n el.colorLinearGradient.gradientStops.forEach(function (gStop) {\r\n var offset = gStop.offset * 100;\r\n gradientBlock_1 += \"\");\r\n });\r\n gradientBlock_1 += \"\";\r\n gradientsBlock += gradientBlock_1;\r\n }\r\n var dAttribute = _this.pieType === EPieType.Donut\r\n ? getDonutSectorPath(xCoord, yCoord, outerRadius * el.radiusAdjustment, innerRadius, angleFrom, angleTo, el.shift + _this.seriesSpacing)\r\n : getSectorPath(xCoord, yCoord, outerRadius * el.radiusAdjustment, angleFrom, angleTo, el.shift + _this.seriesSpacing);\r\n var pathBlock = hasGradient\r\n ? \"\")\r\n : \"\");\r\n pathsBlock += pathBlock;\r\n if (animationProgress === 1 || el.oldValue) {\r\n _this.drawSegmentLabel(el, index, totalValue, angleFrom, angleTo, xCoord, yCoord, outerRadius * el.radiusAdjustment, innerRadius);\r\n }\r\n });\r\n gradientsBlock += \"\";\r\n this.adjustDomContainer();\r\n var svgString = \"\").concat(gradientsBlock).concat(pathsBlock, \"\");\r\n // CREATING AND ATTACHING SVG TO DOM\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.domSvgContainer);\r\n this.svg = svgNode;\r\n };\r\n SciChartPieSurface.prototype.adjustDomContainer = function () {\r\n var _a, _b, _c, _d, _e, _f;\r\n if (this.padding && this.padding.left) {\r\n this.domSvgContainer.style.paddingLeft = this.padding.left + \"px\";\r\n }\r\n if (this.padding && this.padding.right) {\r\n this.domSvgContainer.style.paddingRight = this.padding.right + \"px\";\r\n }\r\n if (this.padding && this.padding.top) {\r\n this.domSvgContainer.style.paddingTop = this.padding.top + \"px\";\r\n }\r\n if (this.padding && this.padding.bottom) {\r\n this.domSvgContainer.style.paddingBottom = this.padding.bottom + \"px\";\r\n }\r\n if (this.canvasBorder) {\r\n this.domSvgContainer.style.borderStyle = \"solid\";\r\n }\r\n if ((_a = this.canvasBorder) === null || _a === void 0 ? void 0 : _a.border) {\r\n this.domSvgContainer.style.borderWidth = this.canvasBorder.border + \"px\";\r\n }\r\n if ((_b = this.canvasBorder) === null || _b === void 0 ? void 0 : _b.color) {\r\n this.domSvgContainer.style.borderColor = this.canvasBorder.color;\r\n }\r\n if ((_c = this.canvasBorder) === null || _c === void 0 ? void 0 : _c.borderBottom) {\r\n this.domSvgContainer.style.borderBottomWidth = this.canvasBorder.borderBottom + \"px\";\r\n }\r\n if ((_d = this.canvasBorder) === null || _d === void 0 ? void 0 : _d.borderTop) {\r\n this.domSvgContainer.style.borderTopWidth = this.canvasBorder.borderTop + \"px\";\r\n }\r\n if ((_e = this.canvasBorder) === null || _e === void 0 ? void 0 : _e.borderLeft) {\r\n this.domSvgContainer.style.borderLeftWidth = this.canvasBorder.borderLeft + \"px\";\r\n }\r\n if ((_f = this.canvasBorder) === null || _f === void 0 ? void 0 : _f.borderRight) {\r\n this.domSvgContainer.style.borderRightWidth = this.canvasBorder.borderRight + \"px\";\r\n }\r\n };\r\n SciChartPieSurface.prototype.drawSegmentLabel = function (el, index, totalValue, angleFrom, angleTo, xCoord, yCoord, outerRadius, innerRadius) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\r\n if (el.showLabel === false)\r\n return;\r\n var labelDivId = \"segment\" + index;\r\n var div = this.titleDivs.find(function (d) { return d.id === labelDivId; });\r\n if (!div) {\r\n div = document.createElement(\"div\");\r\n var labelStyle = el.labelStyle;\r\n div.className = \"scichart-pie-text-container\";\r\n div.id = labelDivId;\r\n div.style.position = \"absolute\";\r\n div.style.pointerEvents = \"none\";\r\n div.style.padding = \"5px\";\r\n div.style.borderRadius = \"3px\";\r\n this.titleDivs.push(div);\r\n this.domDivContainer.appendChild(div);\r\n div.style.display = \"block\";\r\n }\r\n div.style.color = el.labelStyle.color;\r\n div.style.fontWeight = el.labelStyle.fontWeight;\r\n div.style.fontFamily = el.labelStyle.fontFamily;\r\n div.style.fontSize = el.labelStyle.fontSize.toString() + \"px\";\r\n div.innerHTML = el.getLabelText(totalValue);\r\n var divWidth = div.offsetWidth;\r\n var divHeight = div.offsetHeight;\r\n var leftShift = 0;\r\n var topShift = 0;\r\n if ((_a = this.padding) === null || _a === void 0 ? void 0 : _a.left) {\r\n leftShift += (_b = this.padding) === null || _b === void 0 ? void 0 : _b.left;\r\n }\r\n if ((_c = this.padding) === null || _c === void 0 ? void 0 : _c.top) {\r\n topShift += (_d = this.padding) === null || _d === void 0 ? void 0 : _d.top;\r\n }\r\n if ((_e = this.canvasBorder) === null || _e === void 0 ? void 0 : _e.border) {\r\n leftShift += (_f = this.canvasBorder) === null || _f === void 0 ? void 0 : _f.border;\r\n topShift += (_g = this.canvasBorder) === null || _g === void 0 ? void 0 : _g.border;\r\n }\r\n else {\r\n if ((_h = this.canvasBorder) === null || _h === void 0 ? void 0 : _h.borderLeft) {\r\n leftShift += (_j = this.canvasBorder) === null || _j === void 0 ? void 0 : _j.borderLeft;\r\n }\r\n if ((_k = this.canvasBorder) === null || _k === void 0 ? void 0 : _k.borderTop) {\r\n leftShift += (_l = this.canvasBorder) === null || _l === void 0 ? void 0 : _l.borderTop;\r\n }\r\n }\r\n var position = this.calcTitlePosition(xCoord + leftShift, yCoord + topShift, outerRadius, innerRadius, angleFrom, angleTo, el.shift + this.seriesSpacing, divWidth, divHeight);\r\n div.style.left = \"\".concat(position.left + el.labelOffset.x, \"px\");\r\n div.style.top = \"\".concat(position.top + el.labelOffset.y, \"px\");\r\n };\r\n SciChartPieSurface.prototype.pieSegmentsTotalValue = function () {\r\n return this.pieSegments.asArray().reduce(function (prev, cur) { return prev + cur.value; }, 0);\r\n };\r\n SciChartPieSurface.prototype.pieSegmentsTotalOldValue = function () {\r\n var total = this.pieSegments.asArray().reduce(function (prev, cur) { var _a; return prev + ((_a = cur.oldValue) !== null && _a !== void 0 ? _a : 0); }, 0);\r\n return total > 0 ? total : 1;\r\n };\r\n SciChartPieSurface.prototype.applySciChartBackground = function (htmlColor) {\r\n this.domCanvas2D.style.background = htmlColor;\r\n };\r\n return SciChartPieSurface;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.SciChartPieSurface = SciChartPieSurface;\r\n/**\r\n * @ignore\r\n * @description Create sector path string\r\n * @param x - circle x coordinate\r\n * @param y - circle y coordinate\r\n * @param outerRadius - circle radius\r\n * @param a1 - angleFrom in degrees\r\n * @param a2 - angleTo in degrees\r\n * @param delta - sector shift, is used for selected sectors\r\n */\r\nvar getSectorPath = function (x, y, outerRadius, a1, a2, delta) {\r\n var bigArc = Math.abs(a2 - a1) > 180 ? 1 : 0;\r\n var deltaAngle = (a1 + a2) / 2;\r\n var deltaX = Math.cos(DEG_TO_RAD * deltaAngle) * delta;\r\n var deltaY = Math.sin(DEG_TO_RAD * deltaAngle) * delta;\r\n var cx1 = Math.cos(DEG_TO_RAD * a2) * outerRadius + x + deltaX;\r\n var cy1 = Math.sin(DEG_TO_RAD * a2) * outerRadius + y + deltaY;\r\n var cx2 = Math.cos(DEG_TO_RAD * a1) * outerRadius + x + deltaX;\r\n var cy2 = Math.sin(DEG_TO_RAD * a1) * outerRadius + y + deltaY;\r\n if (Math.abs(cx1 - cx2) < 0.0001) {\r\n cx2 += 0.001;\r\n }\r\n return \"M\".concat(x + deltaX, \" \").concat(y + deltaY, \" \").concat(cx1, \" \").concat(cy1, \" A\").concat(outerRadius, \" \").concat(outerRadius, \" 0 \").concat(bigArc, \" 0 \").concat(cx2, \" \").concat(cy2, \"Z\");\r\n};\r\n/**\r\n * @ignore\r\n * @description Create donut sector path string\r\n * @param x - circle x coordinate\r\n * @param y - circle y coordinate\r\n * @param outerR - circle outer radius\r\n * @param innerR - circle inner radius\r\n * @param a1 - angleFrom in degrees\r\n * @param a2 - angleTo in degrees\r\n * @param delta - sector shift, is used for selected sectors\r\n */\r\nvar getDonutSectorPath = function (x, y, outerR, innerR, a1, a2, delta) {\r\n var bigArc = Math.abs(a2 - a1) > 180 ? 1 : 0;\r\n var deltaAngle = (a1 + a2) / 2;\r\n var deltaX = Math.cos(DEG_TO_RAD * deltaAngle) * delta;\r\n var deltaY = Math.sin(DEG_TO_RAD * deltaAngle) * delta;\r\n var outerX1 = Math.cos(DEG_TO_RAD * a2) * outerR + x + deltaX;\r\n var outerY1 = Math.sin(DEG_TO_RAD * a2) * outerR + y + deltaY;\r\n var outerX2 = Math.cos(DEG_TO_RAD * a1) * outerR + x + deltaX;\r\n var outerY2 = Math.sin(DEG_TO_RAD * a1) * outerR + y + deltaY;\r\n var innerX1 = Math.cos(DEG_TO_RAD * a2) * innerR + x + deltaX;\r\n var innerY1 = Math.sin(DEG_TO_RAD * a2) * innerR + y + deltaY;\r\n var innerX2 = Math.cos(DEG_TO_RAD * a1) * innerR + x + deltaX;\r\n var innerY2 = Math.sin(DEG_TO_RAD * a1) * innerR + y + deltaY;\r\n return \"M\".concat(outerX1, \" \").concat(outerY1, \" A\").concat(outerR, \" \").concat(outerR, \" 0 \").concat(bigArc, \" 0 \").concat(outerX2, \" \").concat(outerY2, \" L\").concat(innerX2, \" \").concat(innerY2, \" A\").concat(innerR, \" \").concat(innerR, \" 0 \").concat(bigArc, \" 1 \").concat(innerX1, \" \").concat(innerY1, \"Z\");\r\n};\r\n/** @ignore */\r\nvar isListenerBlocked = false;\r\n/** @ignore */\r\nvar addEventListenerToPieSegment = function (ps, el, animate) {\r\n var eventListener = function (e) {\r\n if (!animate) {\r\n ps.isSelected = !ps.isSelected;\r\n return;\r\n }\r\n // ANIMATE\r\n if (!isListenerBlocked) {\r\n var ROUNDS_1 = 10;\r\n var directionDown = ps.isSelected;\r\n var start_1 = directionDown ? ps.delta : 0;\r\n var d_1 = directionDown ? -ps.delta / ROUNDS_1 : ps.delta / ROUNDS_1;\r\n isListenerBlocked = true;\r\n ps.isSelected = !ps.isSelected;\r\n (function myLoop(k) {\r\n setTimeout(function () {\r\n ps.shift = start_1 + d_1 * k;\r\n if (k === ROUNDS_1) {\r\n isListenerBlocked = false;\r\n }\r\n if (++k <= ROUNDS_1)\r\n myLoop(k);\r\n }, 20);\r\n })(1);\r\n }\r\n };\r\n el.addEventListener(\"click\", eventListener);\r\n return {\r\n eventListener: eventListener,\r\n eventType: \"click\",\r\n element: el,\r\n delete: function () { return el.removeEventListener(\"click\", eventListener); }\r\n };\r\n};\r\nexports.addEventListenerToPieSegment = addEventListenerToPieSegment;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"HOLE_RADIUS\"] = \"HOLE_RADIUS\";\r\n PROPERTY[\"HOLE_RADIUS_SIZING_MODE\"] = \"HOLE_RADIUS_SIZING_MODE\";\r\n PROPERTY[\"PIE_TYPE\"] = \"PIE_TYPE\";\r\n PROPERTY[\"SERIES_SPACING\"] = \"SERIES_SPACING\";\r\n PROPERTY[\"PADDING\"] = \"PADDING\";\r\n PROPERTY[\"CANVAS_BORDER\"] = \"CANVAS_BORDER\";\r\n PROPERTY[\"LABEL_PROVIDER\"] = \"LABEL_PROVIDER\";\r\n PROPERTY[\"VALUE_MODE\"] = \"VALUE_MODE\";\r\n PROPERTY[\"LABEL_RADIUS\"] = \"LABEL_RADIUS\";\r\n PROPERTY[\"TEXT_STYLE\"] = \"TEXT_STYLE\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChartSubSurface = exports.SciChartSurface = exports.sciChartConfig = void 0;\r\nvar chartBuilder_1 = require(\"../../Builder/chartBuilder\");\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar app_1 = require(\"../../constants/app\");\r\nvar performanceWarnings_1 = require(\"../../constants/performanceWarnings\");\r\nvar EasingFunctions_1 = require(\"../../Core/Animations/EasingFunctions\");\r\nvar BuildStamp_1 = require(\"../../Core/BuildStamp\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Dictionary_1 = require(\"../../Core/Dictionary\");\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar ObservableArray_1 = require(\"../../Core/ObservableArray\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar Thickness_1 = require(\"../../Core/Thickness\");\r\nvar AutoColorMode_1 = require(\"../../types/AutoColorMode\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar SeriesType_1 = require(\"../../types/SeriesType\");\r\nvar Size_1 = require(\"../../types/Size\");\r\nvar SvgClippingMode_1 = require(\"../../types/SvgClippingMode\");\r\nvar ZoomState_1 = require(\"../../types/ZoomState\");\r\nvar parseColor_1 = require(\"../../utils/parseColor\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar ChartModifierBase_1 = require(\"../ChartModifiers/ChartModifierBase\");\r\nvar BatchRenderContext_1 = require(\"../Drawing/BatchRenderContext\");\r\nvar BrushCache_1 = require(\"../Drawing/BrushCache\");\r\nvar RenderSurface_1 = require(\"../Drawing/RenderSurface\");\r\nvar SolidBrushCache_1 = require(\"../Drawing/SolidBrushCache\");\r\nvar WebGlRenderContext2D_1 = require(\"../Drawing/WebGlRenderContext2D\");\r\nvar LayoutManager_1 = require(\"../LayoutManager/LayoutManager\");\r\nvar SciChartRenderer_1 = require(\"../Services/SciChartRenderer\");\r\nvar AdornerLayer_1 = require(\"./Annotations/AdornerLayer\");\r\nvar AnnotationBase_1 = require(\"./Annotations/AnnotationBase\");\r\nvar AxisBase2D_1 = require(\"./Axis/AxisBase2D\");\r\nvar AxisCore_1 = require(\"./Axis/AxisCore\");\r\nvar createMaster_1 = require(\"./createMaster\");\r\nvar createSingle_1 = require(\"./createSingle\");\r\nvar createNativeRect_1 = require(\"./Helpers/createNativeRect\");\r\nvar drawBorder_1 = require(\"./Helpers/drawBorder\");\r\nvar NativeObject_1 = require(\"./Helpers/NativeObject\");\r\nvar StackedColumnCollection_1 = require(\"./RenderableSeries/StackedColumnCollection\");\r\nvar StackedMountainCollection_1 = require(\"./RenderableSeries/StackedMountainCollection\");\r\nvar sciChartInitCommon_1 = require(\"./sciChartInitCommon\");\r\nvar SciChartSurfaceBase_1 = require(\"./SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"./TextureManager/DpiHelper\");\r\nvar UpdateSuspender_1 = require(\"./UpdateSuspender\");\r\nvar Point_1 = require(\"../../Core/Point\");\r\nvar SciChartDefaults_1 = require(\"./SciChartDefaults\");\r\nvar ChartTitleRenderer_1 = require(\"../Services/ChartTitleRenderer\");\r\nvar TextStyle_1 = require(\"../../types/TextStyle\");\r\nvar TextPosition_1 = require(\"../../types/TextPosition\");\r\nvar Globals_1 = require(\"../../Core/Globals\");\r\nvar createMaster3d_1 = require(\"../../Charting3D/Visuals/createMaster3d\");\r\nvar LayoutMangerType_1 = require(\"../../types/LayoutMangerType\");\r\nvar logger_1 = require(\"../../utils/logger\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\nexports.sciChartConfig = {};\r\n/**\r\n * @summary The {@link SciChartSurface} is the root 2D Chart control in SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Chart Library}\r\n * @description\r\n * To create a chart using SciChart, declare a {@link SciChartSurface} using {@link SciChartSurface.create},\r\n * add X and Y axes to the {@link SciChartSurface.xAxes} {@link SciChartSurface.yAxes} collection.\r\n *\r\n * Next, add a series or chart type by adding a {@link BaseRenderableSeries} to the {@link SciChartSurface.renderableSeries} collection.\r\n *\r\n * You can add annotations and markers using the {@link SciChartSurface.annotations} property, and you can add zoom and pan behaviours,\r\n * tooltips and more by using the {@link SciChartSurface.chartModifiers} property.\r\n *\r\n * To redraw a {@link SciChartSurface} at any time, call {@link SciChartSurface.invalidateElement}, however all properties are reactive and the\r\n * chart will automatically redraw if data or properties change.\r\n * @remarks\r\n * It is possible to have more than one {@link SciChartSurface} on screen at the same time.\r\n * {@link SciChartSurface | SciChartSurfaces} scale to fit the parent DIV where they are hosted. Use CSS to position the DIV.\r\n */\r\nvar SciChartSurface = /** @class */ (function (_super) {\r\n __extends(SciChartSurface, _super);\r\n /**\r\n * Creates an instance of the {@link SciChartSurface}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options optional parameters of type {@link ISciChartSurfaceOptions} used to configure the {@link SciChartSurface}\r\n */\r\n function SciChartSurface(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e;\r\n _this = _super.call(this, webAssemblyContext, options === null || options === void 0 ? void 0 : options.canvases) || this;\r\n /**\r\n * Used internally - the {@link RenderContext2D} for drawing\r\n */\r\n //public renderContext2D: RenderContext2D;\r\n /**\r\n * An event handler which notifies its subscribers when a render operation starts. Use this\r\n * to update elements of the chart for the current render. Any updates made here will not trigger a subsequent render.\r\n */\r\n _this.preRender = new EventHandler_1.EventHandler();\r\n // TODO make these properties internal only; or add some provider\r\n _this.layersOffset = 0;\r\n _this.stepBetweenLayers = 10;\r\n _this.isSubSurface = false;\r\n /**\r\n * Sets / Gets the clipping mode for SVG Annotations\r\n */\r\n _this.svgClippingMode = SvgClippingMode_1.ESvgClippingMode.SeriesViewRect;\r\n /**\r\n * Normally, native labels are drawn all at once at the end of the render cycle to improve performance.\r\n * In circumstances where you want to draw over the labels, eg with a subchart, set this true to have them drawn earlier.\r\n */\r\n _this.renderNativeAxisLabelsImmediately = false;\r\n /** The position of the watermark for trials and community licenses */\r\n _this.watermarkPosition = SciChartDefaults_1.SciChartDefaults.watermarkPosition;\r\n /** Set true to position the watermark relative to the overall canvas, rather than the series area. */\r\n _this.watermarkRelativeToCanvas = false;\r\n _this.animationList = [];\r\n _this.titleStyleProperty = {\r\n fontSize: 60,\r\n fontFamily: \"Arial\",\r\n color: SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.chartTitleColor,\r\n fontWeight: \"normal\",\r\n fontStyle: \"normal\",\r\n lineSpacing: 1.1,\r\n padding: Thickness_1.Thickness.fromString(\"10 4 10 4\"),\r\n multilineAlignment: TextPosition_1.EMultiLineAlignment.Center,\r\n rotation: undefined,\r\n alignment: TextStyle_1.ETextAlignment.Center,\r\n position: TextStyle_1.ETitlePosition.Top,\r\n placeWithinChart: false,\r\n useNativeText: SciChartDefaults_1.SciChartDefaults.useNativeText\r\n };\r\n //function to create a proxy for the object, which traps the setter\r\n _this.getPaddingProxy = function (newPadding) {\r\n return new Proxy(newPadding, {\r\n set: function (target, key, value) {\r\n //@ts-ignore\r\n if (target[key] !== value) {\r\n //@ts-ignore\r\n target[key] = value;\r\n _this.invalidateElement();\r\n }\r\n return true;\r\n }\r\n });\r\n };\r\n _this.paddingProperty = _this.getPaddingProxy(Thickness_1.Thickness.fromNumber(10));\r\n _this.zoomStateProperty = ZoomState_1.EZoomState.AtExtents;\r\n _this.viewportBorderProperty = {\r\n borderBottom: undefined,\r\n borderLeft: undefined,\r\n borderRight: undefined,\r\n borderTop: undefined,\r\n color: \"#00000000\",\r\n border: undefined\r\n };\r\n _this.canvasBorderProperty = {\r\n borderBottom: undefined,\r\n borderLeft: undefined,\r\n borderRight: undefined,\r\n borderTop: undefined,\r\n color: \"#00000000\",\r\n border: undefined\r\n };\r\n _this.subChartsProperty = [];\r\n _this.drawSeriesBehindAxisProperty = false;\r\n _this.autoColorModeProperty = AutoColorMode_1.EAutoColorMode.OnAddRemoveSeries;\r\n _this.autoColorRequired = true;\r\n _this.xCoordSvgTrans = 0;\r\n _this.yCoordSvgTrans = 0;\r\n _this.subChartCounter = 0;\r\n var canvasWidth = (_b = (_a = _this.domCanvas2D) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : app_1.DEFAULT_WIDTH;\r\n var canvasHeight = (_d = (_c = _this.domCanvas2D) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : app_1.DEFAULT_HEIGHT;\r\n _this.webAssemblyContext2D = webAssemblyContext;\r\n if (!app_1.IS_TEST_ENV) {\r\n var canvasPixelWidth = canvasWidth / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var canvasPixelHeight = canvasHeight / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n if (_this.isCopyCanvasSurface) {\r\n _this.changeMasterCanvasViewportSize(webAssemblyContext, canvasPixelWidth, canvasPixelHeight);\r\n }\r\n else {\r\n _this.changeWebGLCanvasViewportSize(webAssemblyContext, canvasPixelWidth, canvasPixelHeight);\r\n }\r\n }\r\n _this.invalidateElement = _this.invalidateElement.bind(_this);\r\n _this.onRenderSurfaceDraw = _this.onRenderSurfaceDraw.bind(_this);\r\n var viewportSize = _this.domCanvas2D\r\n ? new Size_1.Size(canvasWidth, canvasHeight)\r\n : new Size_1.Size(app_1.DEFAULT_WIDTH, app_1.DEFAULT_HEIGHT);\r\n _this.renderSurface = new RenderSurface_1.RenderSurface(webAssemblyContext, viewportSize, (_e = _this.domCanvas2D) === null || _e === void 0 ? void 0 : _e.id);\r\n _this.renderSurface.handleDraw = _this.onRenderSurfaceDraw;\r\n _this.sciChartRenderer = new SciChartRenderer_1.SciChartRenderer(_this);\r\n _this.chartTitleRendererProperty = new ChartTitleRenderer_1.ChartTitleRenderer(_this.webAssemblyContext2D);\r\n _this.layoutManager = new LayoutManager_1.LayoutManager();\r\n // TODO: remove this\r\n //if (this.domCanvas2D) {\r\n // this.renderContext2D = new RenderContext2D(this.domCanvas2D);\r\n //}\r\n // Setup series\r\n _this.detachSeries = _this.detachSeries.bind(_this);\r\n _this.attachSeries = _this.attachSeries.bind(_this);\r\n _this.renderableSeries = new ObservableArray_1.ObservableArray();\r\n _this.renderableSeries.collectionChanged.subscribe(function (args) {\r\n var _a, _b;\r\n (_a = args.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(_this.detachSeries);\r\n (_b = args.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(_this.attachSeries);\r\n });\r\n // Setup axis\r\n _this.detachAxis = _this.detachAxis.bind(_this);\r\n _this.attachAxis = _this.attachAxis.bind(_this);\r\n _this.xAxes = new ObservableArray_1.ObservableArray();\r\n _this.yAxes = new ObservableArray_1.ObservableArray();\r\n var handler = function (args, isXAxis) {\r\n var _a, _b;\r\n (_a = args.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(function (axis) {\r\n axis.visibleRangeChanged.unsubscribeAll();\r\n _this.detachAxis(axis);\r\n });\r\n (_b = args.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(function (a) { return _this.attachAxis(a, isXAxis); });\r\n };\r\n _this.xAxes.collectionChanged.subscribe(function (arg) { return handler(arg, true); });\r\n _this.yAxes.collectionChanged.subscribe(function (arg) { return handler(arg, false); });\r\n _this.adornerLayer = new AdornerLayer_1.AdornerLayer(_this);\r\n _this.solidBrushCacheViewportBorder = new SolidBrushCache_1.SolidBrushCache(webAssemblyContext);\r\n _this.solidBrushCacheCanvasBorder = new SolidBrushCache_1.SolidBrushCache(webAssemblyContext);\r\n // Watermark\r\n if (!app_1.IS_TEST_ENV) {\r\n _this.watermarkProperties = new webAssemblyContext.SCRTWaterMarkProperties();\r\n _this.watermarkPropertyPosition = new webAssemblyContext.TSRVector2(0, 0);\r\n _this.watermarkProperties.SetPosition(_this.watermarkPropertyPosition);\r\n _this.watermarkProperties.SetOpacity(0.5);\r\n webAssemblyContext.SCRTSetWaterMarkProperties(_this.watermarkProperties);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Creates a {@link SciChartSurface} and {@link TSciChart | WebAssembly Context} to occupy the div by element ID in your DOM.\r\n * @remarks This method is async and must be awaited\r\n * @param divElement The Div Element ID or reference where the {@link SciChartSurface} will reside\r\n * @param options Optional - Optional parameters for chart creation. See {@link I2DSurfaceOptions} for more details\r\n */\r\n SciChartSurface.create = function (divElement, options) {\r\n var mark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.InitializationStart, { contextId: options === null || options === void 0 ? void 0 : options.id });\r\n (0, chartBuilder_1.ensureRegistrations)();\r\n options = SciChartSurface.resolveOptions(options);\r\n if (app_1.IS_TEST_ENV) {\r\n return this.createTest(divElement, options);\r\n }\r\n else {\r\n return (0, createMaster_1.createMultichart)(divElement, options).then(function (result) {\r\n var _a;\r\n result.sciChartSurface.applyOptions(options);\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.InitializationEnd, {\r\n contextId: result.sciChartSurface.id,\r\n relatedId: (_a = mark === null || mark === void 0 ? void 0 : mark.detail) === null || _a === void 0 ? void 0 : _a.relatedId\r\n });\r\n return result;\r\n });\r\n }\r\n };\r\n SciChartSurface.disposeSharedWasmContext = function () {\r\n if (Globals_1.sciChart3DDestinations.length === 0 && Globals_1.sciChartDestinations.length === 0) {\r\n (0, createMaster_1.disposeMultiChart)();\r\n (0, createMaster3d_1.disposeMultiChart3d)();\r\n }\r\n _super.disposeSharedWasmContext.call(this);\r\n };\r\n /**\r\n * Performs a similar operation to {@link SciChartSurface.create} but uses a dedicated WebAssembly context for this chart, and draws directly to the target canvas\r\n * This provides better performance for a single chart, but there is a limit (16) to how many you can have on one page.\r\n * If you need large numbers of charts all updating at the same time, use this, together with {@link addSubChart} to create many charts on one surface.\r\n * @param divElement The Div Element ID or reference where the {@link SciChartSurface} will reside\r\n * @param options - optional parameters for chart creation. See {@link I2DSurfaceOptions} for more details\r\n */\r\n SciChartSurface.createSingle = function (divElement, options) {\r\n var mark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.InitializationStart, { contextId: options === null || options === void 0 ? void 0 : options.id });\r\n (0, chartBuilder_1.ensureRegistrations)();\r\n options = SciChartSurface.resolveOptions(options);\r\n if (app_1.IS_TEST_ENV) {\r\n return this.createTest(divElement, options);\r\n }\r\n else {\r\n return (0, createSingle_1.createSingleInternal)(divElement, options).then(function (result) {\r\n var _a;\r\n result.sciChartSurface.applyOptions(options);\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.InitializationEnd, {\r\n contextId: result.sciChartSurface.id,\r\n relatedId: (_a = mark === null || mark === void 0 ? void 0 : mark.detail) === null || _a === void 0 ? void 0 : _a.relatedId\r\n });\r\n return result;\r\n });\r\n }\r\n };\r\n /**\r\n * Allows setting of web URL for Wasm and Data files, in the case you are loading SciChart outside of npm/webpack environment.\r\n * Note the version number of data/wasm Urls must match the version number of SciChart.js you are using.\r\n * To use the default CDN, just call SciChart.SciChartSurface.useWasmFromCDN();\r\n * @example\r\n * ```ts\r\n * import { libraryVersion } from \"scichart/Core/BuildStamp\";\r\n *\r\n * SciChart.SciChartSurface.configure({\r\n * dataUrl: `https://cdn.jsdelivr.net/npm/scichart@${libraryVersion}/_wasm/scichart2d.data`,\r\n * wasmUrl: `https://cdn.jsdelivr.net/npm/scichart@${libraryVersion}/_wasm/scichart2d.wasm`\r\n * });\r\n * ```\r\n * @param config\r\n */\r\n SciChartSurface.configure = function (config) {\r\n var _a, _b;\r\n exports.sciChartConfig.dataUrl = (_a = config === null || config === void 0 ? void 0 : config.dataUrl) !== null && _a !== void 0 ? _a : undefined;\r\n exports.sciChartConfig.wasmUrl = (_b = config === null || config === void 0 ? void 0 : config.wasmUrl) !== null && _b !== void 0 ? _b : undefined;\r\n };\r\n /**\r\n * Tell SciChart to load the Wasm and Data files from CDN, rather than expecting them to be served by the host server.\r\n * @deprecated the method name breaks [eslint react-hooks/rules-of-hooks](https://legacy.reactjs.org/docs/hooks-rules.html).\r\n * To avoid this error in React, use {@link loadWasmFromCDN} instead.\r\n *\r\n */\r\n SciChartSurface.useWasmFromCDN = function () {\r\n exports.sciChartConfig.dataUrl = \"https://cdn.jsdelivr.net/npm/scichart@\".concat(BuildStamp_1.libraryVersion, \"/_wasm/scichart2d.data\");\r\n exports.sciChartConfig.wasmUrl = \"https://cdn.jsdelivr.net/npm/scichart@\".concat(BuildStamp_1.libraryVersion, \"/_wasm/scichart2d.wasm\");\r\n };\r\n /**\r\n * Tell SciChart to load the Wasm and Data files from the local server, rather than from CDN.\r\n * @deprecated the method name breaks [eslint react-hooks/rules-of-hooks](https://legacy.reactjs.org/docs/hooks-rules.html).\r\n * To avoid this error in React, use {@link loadWasmLocal} instead.\r\n *\r\n */\r\n SciChartSurface.useWasmLocal = function () {\r\n SciChartSurface.configure(undefined);\r\n };\r\n /**\r\n * Tell SciChart to load the Wasm and Data files from CDN, rather than expecting them to be served by the host server.\r\n */\r\n SciChartSurface.loadWasmFromCDN = function () {\r\n return SciChartSurface.useWasmFromCDN();\r\n };\r\n /**\r\n * Tell SciChart to load the Wasm and Data files from the local server, rather than from CDN.\r\n */\r\n SciChartSurface.loadWasmLocal = function () {\r\n return SciChartSurface.useWasmLocal();\r\n };\r\n SciChartSurface.isSubSurface = function (surface) {\r\n return surface.isSubSurface;\r\n };\r\n SciChartSurface.createTest = function (divElement, options) {\r\n var _a, _b;\r\n var canvases = sciChartInitCommon_1.default.initCanvas(divElement, (_a = options === null || options === void 0 ? void 0 : options.widthAspect) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.heightAspect) !== null && _b !== void 0 ? _b : 0, sciChartInitCommon_1.default.ECanvasType.canvas2D);\r\n var sciChartSurface = new SciChartSurface(exports.sciChartConfig.testWasm, { canvases: canvases });\r\n sciChartSurface.applyTheme(options === null || options === void 0 ? void 0 : options.theme);\r\n sciChartSurface.applyOptions(options);\r\n return new Promise(function (resolve) {\r\n return resolve({ wasmContext: sciChartSurface.webAssemblyContext2D, sciChartSurface: sciChartSurface });\r\n });\r\n };\r\n /**\r\n * Add another chart to an existing surface.\r\n * This is a performance optimization if you need to have multiple charts all updating together, eg because they have synced axes.\r\n * We suggest you use SciChartSurface.createSingle for the parent surface. The parent surface does not have to have any chart elements defined.\r\n * The position property required in the options determines the placement and size of the subchart. Its values are interpreted differently depending on the coordinateMode\r\n * Modifiers using modifierGroup will work across other subcharts on the surface, but not to any other surface.\r\n */\r\n SciChartSurface.prototype.addSubChart = function (options) {\r\n var optionsBase = SciChartSurface.resolveOptions(options);\r\n options = __assign(__assign({}, options), optionsBase);\r\n this.subChartCounter++;\r\n var divElementId = this.domChartRoot.id + \"_\" + this.subChartCounter.toString();\r\n var chartRoot = this.domChartRoot;\r\n var width = chartRoot.clientWidth;\r\n var height = chartRoot.clientHeight;\r\n // SVG Root Element\r\n var svgRootElement = (0, sciChartInitCommon_1.createSvgLayer)(\"\".concat(divElementId, \"_SVG\"), width, height);\r\n svgRootElement.style.left = \"0\";\r\n svgRootElement.style.top = \"0\";\r\n svgRootElement.style.pointerEvents = \"none\";\r\n svgRootElement.classList.add(sciChartInitCommon_1.ELayerClass.FRONT_SVG_ROOT);\r\n chartRoot.appendChild(svgRootElement);\r\n // SVG Root Element\r\n var backgroundSvgRootElement = (0, sciChartInitCommon_1.createSvgLayer)(\"\".concat(divElementId, \"_BACKGROUND_SVG\"), width, height);\r\n backgroundSvgRootElement.style.left = \"0\";\r\n backgroundSvgRootElement.style.top = \"0\";\r\n backgroundSvgRootElement.style.pointerEvents = \"none\";\r\n backgroundSvgRootElement.classList.add(sciChartInitCommon_1.ELayerClass.BACK_SVG_ROOT);\r\n chartRoot.insertBefore(backgroundSvgRootElement, this.getMainCanvas());\r\n // Background Div Root Element\r\n var backgroundDomRoot = document.createElement(\"div\");\r\n backgroundDomRoot.id = \"\".concat(divElementId, \"_background_div\");\r\n backgroundDomRoot.classList.add(sciChartInitCommon_1.ELayerClass.DIV_ROOT, sciChartInitCommon_1.ELayerClass.BACK_DIV_ROOT);\r\n backgroundDomRoot.style.left = \"0\";\r\n backgroundDomRoot.style.top = \"0\";\r\n backgroundDomRoot.style.position = \"absolute\";\r\n backgroundDomRoot.style.pointerEvents = \"none\";\r\n chartRoot.insertBefore(backgroundDomRoot, backgroundSvgRootElement);\r\n var canvases = {\r\n domChartRoot: this.domChartRoot,\r\n domCanvasWebGL: this.domCanvasWebGL,\r\n domCanvas2D: this.domCanvas2D,\r\n domSvgContainer: svgRootElement,\r\n domSvgAdornerLayer: this.domSvgAdornerLayer,\r\n domDivContainer: this.domDivContainer,\r\n domBackgroundSvgContainer: backgroundSvgRootElement,\r\n domSeriesBackground: backgroundDomRoot\r\n };\r\n var subSurface = new SciChartSubSurface(this.webAssemblyContext2D, {\r\n canvases: canvases,\r\n parentSurface: this,\r\n subSurfaceOptions: options\r\n });\r\n if (options === null || options === void 0 ? void 0 : options.theme) {\r\n subSurface.applyTheme(options.theme);\r\n }\r\n // subcharts get mouse events from parent\r\n subSurface.mouseManager.unsubscribe();\r\n this.subChartsProperty.push(subSurface);\r\n this.onAttachSubSurface(subSurface);\r\n subSurface.setIsInitialized();\r\n return subSurface;\r\n };\r\n /**\r\n * Remove an existing subChart from a parent surface. See {@link addSubChart}\r\n */\r\n SciChartSurface.prototype.removeSubChart = function (subChart) {\r\n var index = this.subChartsProperty.findIndex(function (s) { return s === subChart; });\r\n if (index > -1) {\r\n this.subChartsProperty.splice(index, 1);\r\n subChart.delete();\r\n }\r\n };\r\n Object.defineProperty(SciChartSurface.prototype, \"subCharts\", {\r\n /**\r\n * The list of subCharts on this surface. See {@link addSubChart}\r\n */\r\n get: function () {\r\n return this.subChartsProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"surfaceType\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return SciChartSurfaceBase_1.ESurfaceType.SciChartSurfaceType;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"layoutManager\", {\r\n /**\r\n * Gets or sets the {@link LayoutManager}\r\n */\r\n get: function () {\r\n return this.layoutManagerProperty;\r\n },\r\n /**\r\n * Used internally - gets or sets the {@link LayoutManager}\r\n */\r\n set: function (value) {\r\n this.layoutManagerProperty = value;\r\n this.layoutManagerProperty.sciChartSurface = this;\r\n this.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"chartTitleRenderer\", {\r\n /**\r\n * Controls the rendering of {@link SiCharSurface.title}\r\n */\r\n get: function () {\r\n return this.chartTitleRendererProperty;\r\n },\r\n set: function (value) {\r\n var _a;\r\n (_a = this.chartTitleRendererProperty) === null || _a === void 0 ? void 0 : _a.delete();\r\n this.chartTitleRendererProperty = value;\r\n this.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"dataLabelLayoutManager\", {\r\n /**\r\n * Gets or sets the {@link ISeriesTextLayoutManager} for performing text layout across multiple series\r\n */\r\n get: function () {\r\n return this.dataLabelLayoutManagerProperty;\r\n },\r\n /**\r\n * Used internally - gets or sets the {@link ISeriesTextLayoutManager} for performing text layout across multiple series\r\n */\r\n set: function (value) {\r\n this.dataLabelLayoutManagerProperty = value;\r\n this.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"title\", {\r\n /**\r\n * Gets or sets the title for the SciChartSurface\r\n */\r\n get: function () {\r\n return this.titleProperty;\r\n },\r\n /**\r\n * Gets or sets the title for the SciChartSurface\r\n */\r\n set: function (value) {\r\n if (this.titleProperty !== value) {\r\n this.titleProperty = value;\r\n this.invalidateElement();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"titleStyle\", {\r\n /**\r\n * Gets or sets the title text style and placement for the SciChartSurface as {@link TChartTitleStyle}\r\n */\r\n get: function () {\r\n return this.titleStyleProperty;\r\n },\r\n /**\r\n * Gets or sets the title text style and placement for the SciChartSurface as {@link TChartTitleStyle}\r\n * @remarks if updating, should be set as an object (or partial object) of type {@link TChartTitleStyle},\r\n * instead of directly setting individual properties\r\n */\r\n set: function (value) {\r\n if (this.titleStyleProperty !== value) {\r\n this.titleStyleProperty = Object.assign({}, this.titleStyleProperty, value);\r\n this.invalidateElement();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"padding\", {\r\n /**\r\n * Gets or sets the Padding between the SciChartSurface and its inner elements, in order top, right, bottom, left\r\n */\r\n get: function () {\r\n return this.paddingProperty;\r\n },\r\n set: function (padding) {\r\n if (!this.paddingProperty.equals(padding)) {\r\n this.paddingProperty = this.getPaddingProxy(padding);\r\n this.invalidateElement();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"adjustedPadding\", {\r\n /**\r\n * Gets the adjusted padding between the SciChartSurface and its inner elements, in order top, right, bottom, left\r\n * Defines a resulting padding accordingly to DPI scaling.\r\n */\r\n get: function () {\r\n return DpiHelper_1.DpiHelper.adjustThickness(this.padding);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"debugRendering\", {\r\n /**\r\n * Gets or sets a property whether rendering should be debugged. This will draw rectangles around key boxes and areas on the chart.\r\n * Used internally for development purposes\r\n */\r\n get: function () {\r\n return this.debugRenderingProperty;\r\n },\r\n /**\r\n * Gets or sets a property whether rendering should be debugged. This will draw rectangles around key boxes and areas on the chart.\r\n * Used internally for development purposes\r\n */\r\n set: function (debugRendering) {\r\n this.debugRenderingProperty = debugRendering;\r\n this.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"autoColorMode\", {\r\n /**\r\n * Gets or sets the {@link EAutoColorMode} which determines when resolution of AUTO_COLOR should occur\r\n */\r\n get: function () {\r\n return this.autoColorModeProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link EAutoColorMode} which determines when resolution of AUTO_COLOR should occur\r\n */\r\n set: function (autoColorMode) {\r\n this.autoColorModeProperty = autoColorMode;\r\n if (autoColorMode !== AutoColorMode_1.EAutoColorMode.Never && !this.autoColorRequired) {\r\n this.autoColorRequired = true;\r\n }\r\n else if (autoColorMode === AutoColorMode_1.EAutoColorMode.Never) {\r\n this.autoColorRequired = false;\r\n }\r\n this.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"isInvalidated\", {\r\n get: function () {\r\n var _a;\r\n return (_a = this.sciChartRenderer) === null || _a === void 0 ? void 0 : _a.isInvalidated;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.applyTheme = function (themeProvider) {\r\n // TODO move to base when title is implemented on 3d charts\r\n var previousThemeProvider = this.previousThemeProvider;\r\n if (this.titleStyle.color === previousThemeProvider.chartTitleColor) {\r\n this.titleStyle = { color: themeProvider.chartTitleColor };\r\n }\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n this.renderableSeries.asArray().forEach(function (rs) { return rs.applyTheme(themeProvider); });\r\n this.xAxes.asArray().forEach(function (axis) { return axis.applyTheme(themeProvider); });\r\n this.yAxes.asArray().forEach(function (axis) { return axis.applyTheme(themeProvider); });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.changeViewportSize = function (pixelWidth, pixelHeight) {\r\n logger_1.Logger.debug(\"changeViewportSize\");\r\n if (!pixelWidth || !pixelHeight || this.isDeleted) {\r\n return;\r\n }\r\n // Changing the viewportSize\r\n var backBufferWidth = pixelWidth * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var backBufferHeight = pixelHeight * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n this.renderSurface.viewportSize = new Size_1.Size(backBufferWidth, backBufferHeight);\r\n if (this.isCopyCanvasSurface) {\r\n this.changeMasterCanvasViewportSize(this.webAssemblyContext2D, pixelWidth, pixelHeight);\r\n if (this.domCanvas2D) {\r\n DpiHelper_1.DpiHelper.setSize(this.domCanvas2D, pixelWidth, pixelHeight);\r\n }\r\n }\r\n else {\r\n this.changeWebGLCanvasViewportSize(this.webAssemblyContext2D, pixelWidth, pixelHeight);\r\n }\r\n // Notice: this.domSvgContainer is updated in SciChartRenderer.resizeAnnotationRootElements() method\r\n if (this.domSvgAdornerLayer) {\r\n this.domSvgAdornerLayer.setAttribute(\"width\", pixelWidth.toString());\r\n this.domSvgAdornerLayer.setAttribute(\"height\", pixelHeight.toString());\r\n }\r\n for (var _i = 0, _a = this.subChartsProperty; _i < _a.length; _i++) {\r\n var chart = _a[_i];\r\n chart.updateSubLayout();\r\n }\r\n // Bypass the isSuspended check, otherwise the chart will go blank if it is resized while suspended\r\n this.invalidateElement({ force: true });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.invalidateElement = function (options) {\r\n var _a, _b;\r\n logger_1.Logger.debug(\"Invalidating \".concat((_b = (_a = this.domChartRoot) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.id, \": force=\").concat(options === null || options === void 0 ? void 0 : options.force, \" isSuspended=\").concat(this.isSuspended, \" isInitialized=\").concat(this.isInitialized, \".\"));\r\n // When isSuspended (see suspendUpdates() function) ignore drawing\r\n if (!(options === null || options === void 0 ? void 0 : options.force) && (this.isSuspended || this.isDeleted || !this.isInitialized)) {\r\n return;\r\n }\r\n perfomance_1.PerformanceDebugHelper.mark(this.sciChartRenderer.isInvalidated\r\n ? perfomance_1.EPerformanceMarkType.Invalidate\r\n : perfomance_1.EPerformanceMarkType.LeadingInvalidate, { contextId: this.id });\r\n this.sciChartRenderer.isInvalidated = true;\r\n // console.trace(\"Invalidating \", this.domChartRoot.id);\r\n var canvasId = this.domCanvas2D ? this.domCanvas2D.id : \"undefinedCanvasId\";\r\n this.renderSurface.invalidateElement(canvasId);\r\n };\r\n // Step_5: Get context and pass drawing to SciChartRenderer\r\n SciChartSurface.prototype.doDrawingLoop = function (context) {\r\n if (this.isDeleted)\r\n return;\r\n context = context !== null && context !== void 0 ? context : this.renderSurface.getRenderContext();\r\n this.currentWebGlRenderContextProperty = context;\r\n try {\r\n var sus = new UpdateSuspender_1.UpdateSuspender(this, false); // Don't want to invalidate on resume\r\n try {\r\n if (this.autoColorRequired &&\r\n ((this.themeProvider.strokePalette && this.themeProvider.strokePalette.length > 0) ||\r\n (this.themeProvider.fillPalette && this.themeProvider.fillPalette.length > 0))) {\r\n this.resolveAutoColors();\r\n if (this.autoColorMode !== AutoColorMode_1.EAutoColorMode.Always) {\r\n this.autoColorRequired = false;\r\n }\r\n }\r\n this.preRender.raiseEvent(context);\r\n }\r\n catch (err) {\r\n if (err === null || err === void 0 ? void 0 : err.message) {\r\n console.error(err === null || err === void 0 ? void 0 : err.message);\r\n }\r\n console.error(err);\r\n }\r\n finally {\r\n sus.resume();\r\n sus.delete();\r\n }\r\n this.sciChartRenderer.render(context);\r\n }\r\n catch (err) {\r\n // @ts-ignore\r\n if (err.name === \"BindingError\") {\r\n console.error(err);\r\n console.warn(\"Binding errors can occur if a previous chart using the same div id was not deleted correctly, or if you try to share data or series between charts that use different webassembly contexts.\");\r\n (0, NativeObject_1.freeCache)(this.webAssemblyContext2D).delete();\r\n }\r\n else if (this.domChartRoot) {\r\n console.error(\"Error from chart in div \".concat(this.domChartRoot.id, \":\"), err);\r\n }\r\n else {\r\n // Surface the error for tests\r\n throw err;\r\n }\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.delete = function (clearHtml) {\r\n if (clearHtml === void 0) { clearHtml = true; }\r\n if (this.isDeleted) {\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n console.warn(\"Trying to delete the surface with ID = \\\"\".concat(this.id, \")\\\", which has already been deleted!\"));\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n return;\r\n }\r\n for (var _i = 0, _a = this.subChartsProperty; _i < _a.length; _i++) {\r\n var chart = _a[_i];\r\n chart.delete();\r\n }\r\n this.subChartsProperty = [];\r\n if (this.layoutManagerProperty.type === LayoutMangerType_1.ELayoutManagerType.Synchronised) {\r\n if (this.layoutManagerProperty.verticalGroup) {\r\n this.layoutManagerProperty.verticalGroup.removeSurface(this);\r\n }\r\n if (this.layoutManagerProperty.horizontalGroup) {\r\n this.layoutManagerProperty.horizontalGroup.removeSurface(this);\r\n }\r\n }\r\n this.layoutManagerProperty.sciChartSurface = undefined;\r\n this.layoutManagerProperty = undefined;\r\n this.renderableSeries.asArray().forEach(function (rs) { return rs.delete(); });\r\n this.renderableSeries.clear();\r\n this.xAxes.asArray().forEach(function (xAxis) { return xAxis.delete(); });\r\n this.yAxes.asArray().forEach(function (yAxis) { return yAxis.delete(); });\r\n this.solidBrushCacheViewportBorder = (0, Deleter_1.deleteSafe)(this.solidBrushCacheViewportBorder);\r\n this.solidBrushCacheCanvasBorder = (0, Deleter_1.deleteSafe)(this.solidBrushCacheCanvasBorder);\r\n this.watermarkProperties = (0, Deleter_1.deleteSafe)(this.watermarkProperties);\r\n this.watermarkPropertyPosition = (0, Deleter_1.deleteSafe)(this.watermarkPropertyPosition);\r\n this.chartTitleRendererProperty = (0, Deleter_1.deleteSafe)(this.chartTitleRenderer);\r\n this.sciChartRenderer = undefined;\r\n this.renderSurface = undefined;\r\n this.clearRootElement(clearHtml);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.onDpiChanged = function (args) {\r\n var _a, _b;\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.DpiChange, { contextId: this.id });\r\n logger_1.Logger.debug(\"onDpiChanged\");\r\n this.renderableSeries.asArray().forEach(function (rs) { return rs.onDpiChanged(args); });\r\n this.xAxes.asArray().forEach(function (a) { return a.onDpiChanged(); });\r\n this.yAxes.asArray().forEach(function (a) { return a.onDpiChanged(); });\r\n // Force a viewport size change as size-changed may not fire when parent div has width, height\r\n this.changeViewportSize((_a = this.getMainCanvas()) === null || _a === void 0 ? void 0 : _a.clientWidth, (_b = this.getMainCanvas()) === null || _b === void 0 ? void 0 : _b.clientHeight);\r\n _super.prototype.onDpiChanged.call(this, args);\r\n };\r\n /**\r\n * Gets the {@link AxisBase2D | XAxis} which matches the axisId. Returns undefined if not axis found\r\n * @param axisId The AxisId to search for\r\n */\r\n SciChartSurface.prototype.getXAxisById = function (axisId) {\r\n var axis = this.xAxes.getById(axisId);\r\n if (!axis && axisId === AxisCore_1.AxisCore.DEFAULT_AXIS_ID && this.xAxes.size() > 0) {\r\n axis = this.xAxes.get(0);\r\n }\r\n return axis;\r\n };\r\n /**\r\n * Gets the {@link AxisBase2D | YAxis} which matches the axisId. Returns undefined if not axis found\r\n * @param axisId The AxisId to search for\r\n */\r\n SciChartSurface.prototype.getYAxisById = function (axisId) {\r\n var axis = this.yAxes.getById(axisId);\r\n if (!axis && axisId === AxisCore_1.AxisCore.DEFAULT_AXIS_ID && this.yAxes.size() > 0) {\r\n axis = this.yAxes.get(0);\r\n }\r\n return axis;\r\n };\r\n /**\r\n * Update accumulated vectors for all stacked collections\r\n */\r\n SciChartSurface.prototype.updateStackedCollectionAccumulatedVectors = function () {\r\n var stackedCollection = this.renderableSeries.asArray().filter(function (el) { return el.isStacked && \"size\" in el; });\r\n stackedCollection.forEach(function (el) { return el.updateAccumulatedVectors(); });\r\n };\r\n /**\r\n * @summary Zooms the {@link SciChartSurface} in the X and Y direction to extents of all data (zoom to fit)\r\n * @description\r\n * @param animationDurationMs An optional animation duration. Default value is 0, which means 'no animation'\r\n * @param easingFunction An optional easing function for animations. See {@link TEasingFn} for a list of values\r\n * @param onCompleted the callback function\r\n */\r\n SciChartSurface.prototype.zoomExtents = function (animationDurationMs, easingFunction, onCompleted) {\r\n if (animationDurationMs === void 0) { animationDurationMs = 0; }\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }\r\n if (onCompleted === void 0) { onCompleted = function () { }; }\r\n this.updateStackedCollectionAccumulatedVectors();\r\n var xSize = this.xAxes === undefined ? 0 : this.xAxes.size();\r\n var ySize = this.yAxes === undefined ? 0 : this.yAxes.size();\r\n if (xSize === 0 || ySize === 0) {\r\n throw new Error(\"Cannot ZoomExtents when XAxes or YAxes is undefined or empty\");\r\n }\r\n // Update the VisibleRange of X Axes\r\n var xRanges = this.zoomExtentsXInternal(animationDurationMs, easingFunction, onCompleted);\r\n // Now ZoomExtents on Y for N Y-axes\r\n this.zoomExtentsYInternal(xRanges, animationDurationMs, easingFunction, onCompleted);\r\n };\r\n /**\r\n * @summary Zooms the {@link SciChartSurface} in the X direction to extents of all data (zoom to fit)\r\n * @description\r\n * @param animationDurationMs An optional animation duration. Default value is 0, which means 'no animation'\r\n * @param easingFunction An optional easing function for animations. See {@link TEasingFn} for a list of values\r\n */\r\n SciChartSurface.prototype.zoomExtentsX = function (animationDurationMs, easingFunction) {\r\n if (animationDurationMs === void 0) { animationDurationMs = 0; }\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }\r\n this.zoomExtentsXInternal(animationDurationMs, easingFunction);\r\n };\r\n /**\r\n * @summary Zooms the {@link SciChartSurface} in the Y direction to extents of all data (zoom to fit)\r\n * @description\r\n * @param animationDurationMs An optional animation duration. Default value is 0, which means 'no animation'\r\n * @param easingFunction An optional easing function for animations. See {@link TEasingFn} for a list of values\r\n */\r\n SciChartSurface.prototype.zoomExtentsY = function (animationDurationMs, easingFunction) {\r\n if (animationDurationMs === void 0) { animationDurationMs = 0; }\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }\r\n this.zoomExtentsYInternal(undefined, animationDurationMs, easingFunction);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.updateWatermark = function (left, bottom) {\r\n var _a;\r\n if (!app_1.IS_TEST_ENV) {\r\n this.watermarkPropertyPosition.x = left;\r\n this.watermarkPropertyPosition.y = bottom;\r\n this.watermarkProperties.m_fCanvasWidth = this.renderSurface.viewportSize.width;\r\n this.watermarkProperties.SetPosition(this.watermarkPropertyPosition);\r\n var isLightBackground = (_a = this.themeProvider) === null || _a === void 0 ? void 0 : _a.isLightBackground;\r\n this.watermarkProperties.m_bIsDarkBackground = isLightBackground !== undefined ? !isLightBackground : false;\r\n this.webAssemblyContext2D.SCRTSetWaterMarkProperties(this.watermarkProperties);\r\n }\r\n };\r\n /**\r\n * Sets zoomStateProperty\r\n * @param zoomState\r\n */\r\n SciChartSurface.prototype.setZoomState = function (zoomState) {\r\n this.zoomStateProperty = zoomState;\r\n };\r\n Object.defineProperty(SciChartSurface.prototype, \"zoomState\", {\r\n /**\r\n * Gets zoomStateProperty\r\n */\r\n get: function () {\r\n return this.zoomStateProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"viewportBorder\", {\r\n /**\r\n * Gets or sets the SciChartSurface Viewport Border properties\r\n */\r\n get: function () {\r\n return this.viewportBorderProperty;\r\n },\r\n /**\r\n * Gets or sets the SciChartSurface Viewport Border properties\r\n */\r\n set: function (value) {\r\n this.viewportBorderProperty = __assign(__assign({}, this.viewportBorderProperty), value);\r\n this.notifyPropertyChanged(\"ViewportBorder\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"canvasBorder\", {\r\n /**\r\n * Gets or sets the SciChartSurface Canvas Border properties\r\n */\r\n get: function () {\r\n return this.canvasBorderProperty;\r\n },\r\n /**\r\n * Gets or sets the SciChartSurface Canvas Border properties\r\n */\r\n set: function (value) {\r\n this.canvasBorderProperty = __assign(__assign({}, this.canvasBorderProperty), value);\r\n this.notifyPropertyChanged(\"Border\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Used internally - draws SciChartSurface borders\r\n */\r\n SciChartSurface.prototype.drawBorder = function (renderContext) {\r\n // Draw Viewport Border\r\n (0, drawBorder_1.drawBorder)(renderContext, this.webAssemblyContext2D, this.solidBrushCacheViewportBorder, this.seriesViewRect, this.leftViewportBorder, this.topViewportBorder, this.rightViewportBorder, this.bottomViewportBorder, this.viewportBorder.color);\r\n // Draw Canvas Border\r\n var canvasSize = renderContext.viewportSize;\r\n var canvasBorderRect = Rect_1.Rect.create(this.leftCanvasBorder, this.topCanvasBorder, canvasSize.width - this.leftCanvasBorder - this.rightCanvasBorder, canvasSize.height - this.topCanvasBorder - this.bottomCanvasBorder);\r\n (0, drawBorder_1.drawBorder)(renderContext, this.webAssemblyContext2D, this.solidBrushCacheCanvasBorder, canvasBorderRect, this.leftCanvasBorder, this.topCanvasBorder, this.rightCanvasBorder, this.bottomCanvasBorder, this.canvasBorder.color);\r\n };\r\n Object.defineProperty(SciChartSurface.prototype, \"leftViewportBorder\", {\r\n /**\r\n * Gets the SciChartSurface Viewport Left Border\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.viewportBorder.borderLeft) !== null && _a !== void 0 ? _a : this.viewportBorder.border) !== null && _b !== void 0 ? _b : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"rightViewportBorder\", {\r\n /**\r\n * Gets the SciChartSurface Viewport Right Border\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.viewportBorder.borderRight) !== null && _a !== void 0 ? _a : this.viewportBorder.border) !== null && _b !== void 0 ? _b : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"topViewportBorder\", {\r\n /**\r\n * Gets the SciChartSurface Viewport Top Border\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.viewportBorder.borderTop) !== null && _a !== void 0 ? _a : this.viewportBorder.border) !== null && _b !== void 0 ? _b : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"bottomViewportBorder\", {\r\n /**\r\n * Gets the SciChartSurface Viewport Bottom Border\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.viewportBorder.borderBottom) !== null && _a !== void 0 ? _a : this.viewportBorder.border) !== null && _b !== void 0 ? _b : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"leftCanvasBorder\", {\r\n /**\r\n * Gets the SciChartSurface Canvas Left Border\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.canvasBorder.borderLeft) !== null && _a !== void 0 ? _a : this.canvasBorder.border) !== null && _b !== void 0 ? _b : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"rightCanvasBorder\", {\r\n /**\r\n * Gets the SciChartSurface Canvas Right Border\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.canvasBorder.borderRight) !== null && _a !== void 0 ? _a : this.canvasBorder.border) !== null && _b !== void 0 ? _b : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"topCanvasBorder\", {\r\n /**\r\n * Gets the SciChartSurface Canvas Top Border\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.canvasBorder.borderTop) !== null && _a !== void 0 ? _a : this.canvasBorder.border) !== null && _b !== void 0 ? _b : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"bottomCanvasBorder\", {\r\n /**\r\n * Gets the SciChartSurface Canvas Bottom Border\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.canvasBorder.borderBottom) !== null && _a !== void 0 ? _a : this.canvasBorder.border) !== null && _b !== void 0 ? _b : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurface.prototype, \"currentWebGlRenderContext\", {\r\n get: function () {\r\n return this.currentWebGlRenderContextProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Is being called on each render, to run animations\r\n * @param timeElapsed\r\n */\r\n SciChartSurface.prototype.onAnimate = function (timeElapsed) {\r\n this.renderableSeries.asArray().forEach(function (rs) { return rs.onAnimate(timeElapsed); });\r\n // advance all animations in queue\r\n var remainingAnimations = [];\r\n for (var i = 0; i < this.animationList.length; i++) {\r\n var animation = this.animationList[i];\r\n if (!animation.isComplete) {\r\n animation.update(timeElapsed);\r\n if (!animation.isComplete) {\r\n remainingAnimations.push(animation);\r\n }\r\n }\r\n }\r\n this.animationList = remainingAnimations;\r\n };\r\n /**\r\n * Gets the generic animations currently on the surface. Do not manipulate this array directly.\r\n * To add, use addAnimation. To remove, find an animation and call .cancel() on it.\r\n */\r\n SciChartSurface.prototype.getAnimations = function () {\r\n return this.animationList;\r\n };\r\n /**\r\n * Add a {@link GenericAnimation} to the surface.\r\n * Multiple animations will be run in parallel, so if you want to run one after another, use the onCompleted callback\r\n * to add another animation after the first completes\r\n */\r\n SciChartSurface.prototype.addAnimation = function () {\r\n var _this = this;\r\n var animations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n animations[_i] = arguments[_i];\r\n }\r\n if (animations === undefined)\r\n return;\r\n animations.forEach(function (a) { return _this.animationList.push(a); });\r\n this.invalidateElement();\r\n };\r\n Object.defineProperty(SciChartSurface.prototype, \"isRunningAnimation\", {\r\n /**\r\n * Returns true if an animation is running\r\n */\r\n get: function () {\r\n for (var i = 0; i < this.renderableSeries.size(); i++) {\r\n if (this.renderableSeries.get(i).isRunningAnimation) {\r\n return true;\r\n }\r\n }\r\n return this.animationList.some(function (a) { return !a.isComplete; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns the seriesViewRect padding relative to the canvas\r\n * @param scaled If True returns scaled values, if False divided by {@link DpiHelper.PIXEL_RATIO}\r\n * Use not scaled values for SVG annotations and the Legend\r\n */\r\n SciChartSurface.prototype.getSeriesViewRectPadding = function (scaled) {\r\n if (scaled === void 0) { scaled = true; }\r\n if (!this.seriesViewRect) {\r\n throw new Error(\"Cannot get seriesViewRect before layout has ocurred. Move code that calls to be triggered by sciChartSurface.rendered\");\r\n }\r\n var divider = scaled ? 1 : DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var seriesViewRect = this.seriesViewRect;\r\n var left = seriesViewRect.left / divider;\r\n var top = seriesViewRect.top / divider;\r\n var right = (this.domCanvas2D.width - seriesViewRect.right) / divider;\r\n var bottom = (this.domCanvas2D.height - seriesViewRect.bottom) / divider;\r\n return new Thickness_1.Thickness(top, right, bottom, left);\r\n };\r\n /** Calls resolveAutoColors on each series to resolve colors marked as auto based on the seriesColorPalette */\r\n SciChartSurface.prototype.resolveAutoColors = function (maxSeries) {\r\n if (!maxSeries) {\r\n var stackedCollections = this.renderableSeries\r\n .asArray()\r\n .filter(function (el) { return el.isStacked && \"size\" in el; });\r\n maxSeries = this.renderableSeries.size() - stackedCollections.length;\r\n for (var _i = 0, stackedCollections_1 = stackedCollections; _i < stackedCollections_1.length; _i++) {\r\n var sc = stackedCollections_1[_i];\r\n maxSeries += sc.size();\r\n }\r\n }\r\n var index = 0;\r\n for (var i = 0; i < this.renderableSeries.size(); i++) {\r\n var rs = this.renderableSeries.get(i);\r\n if (rs) {\r\n rs.resolveAutoColors(index, maxSeries, this.themeProvider);\r\n }\r\n if (rs.isStacked && \"size\" in rs) {\r\n index += rs.size();\r\n }\r\n else {\r\n index += 1;\r\n }\r\n }\r\n };\r\n /**\r\n *\r\n * @param fontName Register a font to be used with native text.\r\n * @param url\r\n * @returns\r\n */\r\n SciChartSurface.prototype.registerFont = function (fontName, url) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n if (!fontName.includes(\".\")) {\r\n fontName += \".ttf\";\r\n }\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var callback = _this.webAssemblyContext2D.SCRTFileLoadCallbackInterface.implement({\r\n OnLoadComplete: function (success, message) {\r\n if (success) {\r\n resolve(true);\r\n }\r\n else {\r\n console.error(\"Failed to load \".concat(fontName, \" from \").concat(url, \". Error: \").concat(message));\r\n resolve(false);\r\n }\r\n }\r\n });\r\n _this.webAssemblyContext2D.SCRTRegisterFile(fontName, url, callback);\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Used internally - sets SVG Canvas Translation\r\n * @param x\r\n * @param y\r\n */\r\n SciChartSurface.prototype.setCoordSvgTranslation = function (x, y) {\r\n this.xCoordSvgTrans = x;\r\n this.yCoordSvgTrans = y;\r\n };\r\n /**\r\n * Gets SVG Canvas Translation, used to draw on SVG Canvas using different {@link ESvgClippingMode}\r\n */\r\n SciChartSurface.prototype.getCoordSvgTranslation = function () {\r\n return new Point_1.Point(this.xCoordSvgTrans, this.yCoordSvgTrans);\r\n };\r\n /**\r\n * Convert the object to a definition that can be serialized to JSON, or used directly with the builder api\r\n * @param excludeData if set true, data values will not be included in the json.\r\n */\r\n SciChartSurface.prototype.toJSON = function (excludeData) {\r\n var _a;\r\n if (excludeData === void 0) { excludeData = false; }\r\n var theme;\r\n if (\"toJSON\" in this.themeProvider) {\r\n // @ts-ignore\r\n theme = this.themeProvider.toJSON();\r\n }\r\n else {\r\n theme = this.themeProvider;\r\n }\r\n var options = {\r\n id: this.id,\r\n title: this.title,\r\n titleStyle: this.titleStyle,\r\n canvasBorder: this.canvasBorder,\r\n heightAspect: this.heightAspect,\r\n widthAspect: this.widthAspect,\r\n layoutManager: (_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.toJSON(),\r\n padding: this.padding,\r\n theme: theme,\r\n viewportBorder: this.viewportBorder,\r\n loader: this.loaderJson,\r\n drawSeriesBehindAxis: this.drawSeriesBehindAxis,\r\n disableAspect: this.disableAspect,\r\n createSuspended: this.createSuspended,\r\n autoColorMode: this.autoColorMode,\r\n touchAction: this.touchActionProperty\r\n };\r\n var definition = {\r\n surface: options,\r\n xAxes: this.xAxes.asArray().map(function (axis) { return axis.toJSON(); }),\r\n yAxes: this.yAxes.asArray().map(function (axis) { return axis.toJSON(); }),\r\n series: this.renderableSeries.asArray().map(function (series) { return series.toJSON(excludeData); }),\r\n modifiers: this.chartModifiers.asArray().map(function (modifier) { return modifier.toJSON(); }),\r\n annotations: this.annotations.asArray().map(function (annotation) { return annotation.toJSON(); }),\r\n onCreated: this.onCreatedName,\r\n subCharts: this.subCharts.map(function (sc) { return sc.toJSON(); }),\r\n createSingle: this.webAssemblyContext2D.canvas.id !== \"SciChartMasterCanvas\"\r\n };\r\n return definition;\r\n };\r\n /**\r\n * Triggers the rerendering of the surface and after the chart rerendering is completed,\r\n * returns its serialized state retrieved with {@link SciChartSurface.toJSON}.\r\n *\r\n * @param excludeData - if set true, data values will not be included in the json.\r\n * @returns JSON-like object {@link ISciChart2DDefinition}\r\n */\r\n SciChartSurface.prototype.getNextState = function (excludeData) {\r\n if (excludeData === void 0) { excludeData = false; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.nextStateRender({ resumeBefore: true, invalidateOnResume: true, suspendAfter: true })];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, this.toJSON(excludeData)];\r\n }\r\n });\r\n });\r\n };\r\n SciChartSurface.prototype.applyOptions = function (options) {\r\n _super.prototype.applyOptions.call(this, options);\r\n if (options === null || options === void 0 ? void 0 : options.layoutManager) {\r\n if (!(\"layoutChart\" in options.layoutManager)) {\r\n options.layoutManager = (0, classFactory_1.createType)(BaseType_1.EBaseType.LayoutManager, options.layoutManager.type, null, options.layoutManager.options);\r\n }\r\n this.layoutManager = options.layoutManager;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.padding) {\r\n this.padding = options.padding;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.viewportBorder) {\r\n this.viewportBorder = options.viewportBorder;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.canvasBorder) {\r\n this.canvasBorder = options.canvasBorder;\r\n }\r\n if ((options === null || options === void 0 ? void 0 : options.loader) && \"toJSON\" in options.loader) {\r\n // @ts-ignore\r\n this.loaderJson = options.loader.toJSON();\r\n }\r\n else if ((options === null || options === void 0 ? void 0 : options.loader) === false) {\r\n // loader should be disabled\r\n this.loaderJson = false;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.drawSeriesBehindAxis) {\r\n this.drawSeriesBehindAxisProperty = options.drawSeriesBehindAxis;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.autoColorMode) {\r\n this.autoColorMode = options.autoColorMode;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.title) {\r\n this.title = options.title;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.titleStyle) {\r\n this.titleStyle = options.titleStyle;\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.touchAction) {\r\n this.touchActionProperty = options.touchAction;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.detachChartModifier = function (chartModifier) {\r\n _super.prototype.detachChartModifier.call(this, chartModifier);\r\n this.subCharts.forEach(function (subChart) {\r\n chartModifier.onDetachSubSurface(subChart);\r\n });\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.attachChartModifier = function (chartModifier) {\r\n _super.prototype.attachChartModifier.call(this, chartModifier);\r\n if (chartModifier.modifierType !== ChartModifierBase_1.EModifierType.MultiChart2DModifier) {\r\n chartModifier.setParentSurface(this);\r\n chartModifier.invalidateParentCallback = this.invalidateElement;\r\n chartModifier.onAttach();\r\n this.subCharts.forEach(function (subChart) {\r\n chartModifier.onAttachSubSurface(subChart);\r\n });\r\n this.invalidateElement();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.applySciChartBackground = function (background, alphaEnabled) {\r\n if (alphaEnabled === void 0) { alphaEnabled = true; }\r\n this.backgroundProperty = background;\r\n var renderContext = this.webAssemblyContext2D.SCRTGetMainRenderContext2D();\r\n if (this.domChartRoot) {\r\n this.domChartRoot.style.background = background;\r\n }\r\n if (renderContext) {\r\n renderContext.SetClearColor(0, 0, 0, 0);\r\n renderContext.Clear();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurface.prototype.setClearAlphaParams = function (enabled, alpha) {\r\n this.webAssemblyContext2D.SCRTSetClearAlphaParams(enabled, alpha);\r\n };\r\n SciChartSurface.prototype.zoomExtentsYInternal = function (xRanges, animationDurationMs, easingFunction, onCompleted) {\r\n if (animationDurationMs === void 0) { animationDurationMs = 0; }\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }\r\n if (onCompleted === void 0) { onCompleted = function () { }; }\r\n this.yAxes.asArray().forEach(function (yAxis) {\r\n var yRange = yAxis.getWindowedYRange(xRanges);\r\n if (yRange) {\r\n yAxis.animateVisibleRange(yRange, animationDurationMs, easingFunction, onCompleted);\r\n }\r\n });\r\n };\r\n SciChartSurface.prototype.zoomExtentsXInternal = function (animationDurationMs, easingFunction, onCompleted) {\r\n if (animationDurationMs === void 0) { animationDurationMs = 0; }\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }\r\n if (onCompleted === void 0) { onCompleted = function () { }; }\r\n var xRanges = new Dictionary_1.Dictionary();\r\n this.xAxes.asArray().forEach(function (xAxis) {\r\n var maxXRange = xAxis.getMaximumRange();\r\n xAxis.animateVisibleRange(maxXRange, animationDurationMs, easingFunction, onCompleted);\r\n xRanges.add(xAxis.id, maxXRange);\r\n });\r\n return xRanges;\r\n };\r\n // Step_4: Start drawing\r\n SciChartSurface.prototype.onRenderSurfaceDraw = function () {\r\n var _a;\r\n if (this.subChartsProperty.length > 0) {\r\n var batchContext_1 = new BatchRenderContext_1.BatchRenderContext(this.webAssemblyContext2D, this.renderSurface.viewportSize, (_a = this.domCanvas2D) === null || _a === void 0 ? void 0 : _a.id);\r\n var visibleSubCharts_1 = this.subChartsProperty.filter(function (sc) { return sc.isVisible; });\r\n if (visibleSubCharts_1.length === 0) {\r\n // Draw on parent if no visible SubCharts\r\n batchContext_1.doDraw = true;\r\n }\r\n // Render parent\r\n this.doDrawingLoop(batchContext_1);\r\n var middleChartLayersOffset_1 = 100;\r\n visibleSubCharts_1.forEach(function (chart, index) {\r\n chart.layersOffset = middleChartLayersOffset_1 * (index + 1);\r\n if (index === visibleSubCharts_1.length - 1) {\r\n // If this is the last subChart, draw\r\n batchContext_1.doDraw = true;\r\n }\r\n chart.doDrawingLoop(batchContext_1);\r\n });\r\n }\r\n else {\r\n this.doDrawingLoop();\r\n }\r\n this.currentWebGlRenderContextProperty = (0, Deleter_1.deleteSafe)(this.currentWebGlRenderContext);\r\n };\r\n SciChartSurface.prototype.detachSeries = function (renderableSeries) {\r\n if (renderableSeries.type === SeriesType_1.ESeriesType.StackedColumnSeries ||\r\n renderableSeries.type === SeriesType_1.ESeriesType.StackedMountainSeries) {\r\n return;\r\n }\r\n this.chartModifiers.asArray().forEach(function (cm) {\r\n cm.onDetachSeries(renderableSeries);\r\n });\r\n renderableSeries.onDetach();\r\n if (this.autoColorMode === AutoColorMode_1.EAutoColorMode.OnAddRemoveSeries) {\r\n this.autoColorRequired = true;\r\n }\r\n this.invalidateElement();\r\n };\r\n SciChartSurface.prototype.attachSeries = function (renderableSeries) {\r\n // If the user tries to add a stacked series, add it to a stacked collection, creating if necessary.\r\n if (renderableSeries.type === SeriesType_1.ESeriesType.StackedColumnSeries) {\r\n var col = this.renderableSeries\r\n .asArray()\r\n .find(function (rs) { return rs.type === SeriesType_1.ESeriesType.StackedColumnCollection; });\r\n if (!col) {\r\n col = new StackedColumnCollection_1.StackedColumnCollection(this.webAssemblyContext2D);\r\n // Insert collection at old index to preserve z order\r\n var index = this.renderableSeries.asArray().findIndex(function (s) { return s === renderableSeries; });\r\n this.renderableSeries.insert(index, col);\r\n }\r\n col.add(renderableSeries);\r\n this.renderableSeries.remove(renderableSeries);\r\n return;\r\n }\r\n else if (renderableSeries.type === SeriesType_1.ESeriesType.StackedMountainSeries) {\r\n var col = this.renderableSeries\r\n .asArray()\r\n .find(function (rs) { return rs.type === SeriesType_1.ESeriesType.StackedMountainCollection; });\r\n if (!col) {\r\n col = new StackedMountainCollection_1.StackedMountainCollection(this.webAssemblyContext2D);\r\n var index = this.renderableSeries.asArray().findIndex(function (s) { return s === renderableSeries; });\r\n this.renderableSeries.insert(index, col);\r\n }\r\n col.add(renderableSeries);\r\n this.renderableSeries.remove(renderableSeries);\r\n }\r\n if (!renderableSeries.isStacked || \"size\" in renderableSeries) {\r\n renderableSeries.onAttach(this);\r\n }\r\n if (this.themeProviderProperty) {\r\n renderableSeries.applyTheme(this.themeProviderProperty);\r\n }\r\n this.chartModifiers.asArray().forEach(function (cm) {\r\n cm.onAttachSeries(renderableSeries);\r\n });\r\n if (this.autoColorMode === AutoColorMode_1.EAutoColorMode.OnAddRemoveSeries) {\r\n this.autoColorRequired = true;\r\n }\r\n this.invalidateElement();\r\n };\r\n SciChartSurface.prototype.detachAxis = function (axis) {\r\n axis.onDetach();\r\n this.invalidateElement();\r\n };\r\n SciChartSurface.prototype.attachAxis = function (axis, isXAxis) {\r\n if (axis.invalidateParentCallback) {\r\n throw new Error(\"Invalid operation in sciChartSurface.attachAxis, this axis has already been attached to a SciChartSurface. Please detach it from a SciChartSurface before attaching to another\");\r\n }\r\n var isPrimaryAxis = false;\r\n if (isXAxis && !this.xAxes.asArray().some(function (a) { return a.isPrimaryAxis; })) {\r\n isPrimaryAxis = true;\r\n }\r\n if (!isXAxis && !this.yAxes.asArray().some(function (a) { return a.isPrimaryAxis; })) {\r\n isPrimaryAxis = true;\r\n }\r\n axis.onAttach(this, isXAxis, isPrimaryAxis);\r\n if (this.themeProviderProperty) {\r\n axis.applyTheme(this.themeProviderProperty);\r\n }\r\n axis.invalidateParentCallback = this.invalidateElement;\r\n this.invalidateElement();\r\n };\r\n SciChartSurface.prototype.onAttachSubSurface = function (subSurface) {\r\n this.chartModifiers.asArray().forEach(function (modifier) {\r\n modifier.onAttachSubSurface(subSurface);\r\n });\r\n };\r\n SciChartSurface.prototype.onDetachSubSurface = function (subSurface) {\r\n this.chartModifiers.asArray().forEach(function (modifier) {\r\n modifier.onDetachSubSurface(subSurface);\r\n });\r\n };\r\n Object.defineProperty(SciChartSurface.prototype, \"drawSeriesBehindAxis\", {\r\n /**\r\n * Gets or sets the boolean flag for switching behaviour of Axises rendering\r\n */\r\n get: function () {\r\n return this.drawSeriesBehindAxisProperty;\r\n },\r\n /**\r\n * Gets or sets the boolean flag for switching behaviour of Axises rendering\r\n */\r\n set: function (value) {\r\n this.drawSeriesBehindAxisProperty = value;\r\n this.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return SciChartSurface;\r\n}(SciChartSurfaceBase_1.SciChartSurfaceBase));\r\nexports.SciChartSurface = SciChartSurface;\r\n/**\r\n * @summary The {@link SciChartSubSurface} is the surface created within another surface\r\n * @description\r\n * It can be added using {@link SciChartSurface.addSubChart} method.\r\n *\r\n * To update the positioning of the {@link SciChartSubSurface}, use {@link SciChartSubSurface.subPosition};\r\n * also you can call {@link SciChartSubSurface.updateSubLayout} to refresh the layout of the sub-surface.\r\n * @remarks\r\n * It is not possible to have more than one level of nested sub-surfaces.\r\n */\r\n// tslint:disable-next-line: max-classes-per-file\r\nvar SciChartSubSurface = /** @class */ (function (_super) {\r\n __extends(SciChartSubSurface, _super);\r\n /**\r\n * Creates an instance of the {@link SciChartSurface}\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options optional parameters of type {@link ISciChartSurfaceOptions} used to configure the {@link SciChart2DSurfaceBase}\r\n */\r\n function SciChartSubSurface(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.isSubSurface = true;\r\n _this.topSectionClass = \"top-section\";\r\n _this.leftSectionClass = \"left-section\";\r\n _this.bottomSectionClass = \"bottom-section\";\r\n _this.rightSectionClass = \"right-section\";\r\n // TODO move to constant for subCharts\r\n _this.backgroundProperty = \"transparent\";\r\n _this.isTransparentProperty = true;\r\n _this.subPositionProperty = new Rect_1.Rect(0, 0, 1, 1);\r\n _this.coordinateModeProperty = AnnotationBase_1.ECoordinateMode.Relative;\r\n _this.parentXAxisIdProperty = AxisBase2D_1.AxisBase2D.DEFAULT_AXIS_ID;\r\n _this.parentYAxisIdProperty = AxisBase2D_1.AxisBase2D.DEFAULT_AXIS_ID;\r\n _this.isVisibleProperty = true;\r\n _this.sectionScaleProperty = 1;\r\n _this.parentSurfaceProperty = options.parentSurface;\r\n _this.subChartContainerId = (_a = options.subSurfaceOptions) === null || _a === void 0 ? void 0 : _a.subChartContainerId;\r\n _this.subPaddingProperty = (_b = options === null || options === void 0 ? void 0 : options.subSurfaceOptions) === null || _b === void 0 ? void 0 : _b.subChartPadding;\r\n _this.isTransparentProperty = (_d = (_c = options === null || options === void 0 ? void 0 : options.subSurfaceOptions) === null || _c === void 0 ? void 0 : _c.isTransparent) !== null && _d !== void 0 ? _d : _this.isTransparent;\r\n _this.coordinateModeProperty = (_f = (_e = options === null || options === void 0 ? void 0 : options.subSurfaceOptions) === null || _e === void 0 ? void 0 : _e.coordinateMode) !== null && _f !== void 0 ? _f : _this.coordinateMode;\r\n _this.parentXAxisIdProperty = (_h = (_g = options === null || options === void 0 ? void 0 : options.subSurfaceOptions) === null || _g === void 0 ? void 0 : _g.parentXAxisId) !== null && _h !== void 0 ? _h : _this.parentXAxisId;\r\n _this.parentYAxisIdProperty = (_k = (_j = options === null || options === void 0 ? void 0 : options.subSurfaceOptions) === null || _j === void 0 ? void 0 : _j.parentYAxisId) !== null && _k !== void 0 ? _k : _this.parentYAxisId;\r\n _this.sectionScaleProperty = (_m = (_l = options === null || options === void 0 ? void 0 : options.subSurfaceOptions) === null || _l === void 0 ? void 0 : _l.sectionScale) !== null && _m !== void 0 ? _m : _this.sectionScaleProperty;\r\n _this.isVisible = (_p = (_o = options === null || options === void 0 ? void 0 : options.subSurfaceOptions) === null || _o === void 0 ? void 0 : _o.isVisible) !== null && _p !== void 0 ? _p : _this.isVisible;\r\n if (_this.subChartContainerId) {\r\n _this.subChartContainer =\r\n typeof _this.subChartContainerId === \"string\"\r\n ? document.querySelector(\"[id='\".concat(_this.subChartContainerId, \"']\"))\r\n : _this.subChartContainerId;\r\n }\r\n _this.applyOptions(options.subSurfaceOptions);\r\n _this.subPosition = (_q = options.subSurfaceOptions.position) !== null && _q !== void 0 ? _q : _this.subPositionProperty;\r\n _this.backgroundFillBrushCache = new BrushCache_1.BrushCache(webAssemblyContext);\r\n _this.preRender.subscribe(function (context) {\r\n // Parent coordcalc may not be available when the chart is first created, so recalculate padding before drawing\r\n if (_this.coordinateMode === AnnotationBase_1.ECoordinateMode.DataValue) {\r\n _this.updateSubLayout(true);\r\n }\r\n });\r\n return _this;\r\n }\r\n Object.defineProperty(SciChartSubSurface.prototype, \"isTransparent\", {\r\n /**\r\n * Whether other surfaces, including the parent, will be visible underneath this surface\r\n */\r\n get: function () {\r\n return this.isTransparentProperty;\r\n },\r\n /**\r\n * Whether other surfaces, including the parent, will be visible underneath this surface\r\n */\r\n set: function (value) {\r\n if (this.isTransparentProperty !== value) {\r\n this.isTransparentProperty = value;\r\n this.updateBackground();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSubSurface.prototype, \"subChartPadding\", {\r\n /**\r\n * Gets or sets additional absolute padding between the SciChartSubSurface and its parent, in order top, right, bottom, left\r\n * {@link subPosition} is applied first, then this padding is added.\r\n */\r\n get: function () {\r\n return this.subPaddingProperty;\r\n },\r\n /**\r\n * Gets or sets additional absolute padding between the SciChartSubSurface and its parent, in order top, right, bottom, left\r\n * {@link subPosition} is applied first, then this padding is added.\r\n */\r\n set: function (padding) {\r\n this.subPaddingProperty = padding;\r\n this.updateSubLayout();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSubSurface.prototype, \"coordinateMode\", {\r\n /**\r\n * Gets or sets the {@link ECoordinateMode} used when calculating the actual position based on the {@link subPosition}\r\n */\r\n get: function () {\r\n return this.coordinateModeProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link ECoordinateMode} used when calculating the actual position based on the {@link subPosition}\r\n */\r\n set: function (coordinateMode) {\r\n this.coordinateModeProperty = coordinateMode;\r\n this.updateSubLayout();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSubSurface.prototype, \"parentXAxisId\", {\r\n /**\r\n * Gets or sets the AxisId used to determing which X Axis should be used when calculating the actual position based on the {@link subPosition}\r\n * if {@link coordinateMode} is DataValue\r\n */\r\n get: function () {\r\n return this.parentXAxisIdProperty;\r\n },\r\n /**\r\n * Gets or sets the AxisId used to determing which X Axis should be used when calculating the actual position based on the {@link subPosition}\r\n * if {@link coordinateMode} is DataValue\r\n */\r\n set: function (id) {\r\n this.parentXAxisIdProperty = id;\r\n this.updateSubLayout();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSubSurface.prototype, \"parentYAxisId\", {\r\n /**\r\n * Gets or sets the AxisId used to determing which Y Axis should be used when calculating the actual position based on the {@link subPosition}\r\n * if {@link coordinateMode} is DataValue\r\n */\r\n get: function () {\r\n return this.parentYAxisIdProperty;\r\n },\r\n /**\r\n * Gets or sets the AxisId used to determing which Y Axis should be used when calculating the actual position based on the {@link subPosition}\r\n * if {@link coordinateMode} is DataValue\r\n */\r\n set: function (id) {\r\n this.parentYAxisIdProperty = id;\r\n this.updateSubLayout();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSubSurface.prototype, \"subPosition\", {\r\n /**\r\n * A rectangle defining the position and size of a subchart.\r\n * If {@link coordinateMode} is Relative (the default) then the values give the size as a proportion of the parent div, and all properties must be between 0 and 1 inclusive.\r\n * If {@link coordinateMode} is DataValue, values will be converted to coordinates using {@link parentXAxisId} and {@link parentYAxisId}. Subchart will be clpped to the parent SeriesViewRect\r\n * Can only be set if this is a subChart. See {@link addSubChart}\r\n */\r\n get: function () {\r\n return this.subPositionProperty;\r\n },\r\n /**\r\n * A rectangle defining the position and size of a subchart.\r\n * If {@link coordinateMode} is Relative (the default) then the values give the size as a proportion of the parent div, and all properties must be between 0 and 1 inclusive.\r\n * If {@link coordinateMode} is DataValue, values will be converted to coordinates using {@link parentXAxisId} and {@link parentYAxisId}. Subchart will be clpped to the parent SeriesViewRect\r\n * Can only be set if this is a subChart. See {@link addSubChart}\r\n */\r\n set: function (value) {\r\n if (!this.parentSurface) {\r\n throw new Error(\"subPosition can only be changed for subCharts.\");\r\n }\r\n if (!Rect_1.Rect.isEqual(this.subPositionProperty, value)) {\r\n this.subPositionProperty = value;\r\n this.updateSubLayout();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSubSurface.prototype, \"isVisible\", {\r\n /**\r\n * Gets or sets if the subchart is visible, allowing you to hide a subchart without removing it from the parent surface\r\n */\r\n get: function () {\r\n return this.isVisibleProperty;\r\n },\r\n /**\r\n * Gets or sets if the subchart is visible, allowing you to hide a subchart without removing it from the parent surface\r\n */\r\n set: function (isVisible) {\r\n this.isVisibleProperty = isVisible;\r\n this.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSubSurface.prototype, \"sectionScale\", {\r\n /**\r\n * Gets or sets scale property for all sections\r\n * It is necessary if the scale transformation is being used for html areas around the subchart\r\n * For example, style = { width: \"50%\", transform: scale(2), transformOrigin: 'left top' }\r\n */\r\n get: function () {\r\n return this.sectionScaleProperty;\r\n },\r\n set: function (value) {\r\n this.sectionScaleProperty = value;\r\n this.updateSubLayout();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** Recalculate the position of the subChart. Call if you update the size of html elements in the wrapper */\r\n SciChartSubSurface.prototype.updateSubLayout = function (isDrawing) {\r\n if (isDrawing === void 0) { isDrawing = false; }\r\n this.updateWrapper(this.subPosition);\r\n var offsets = this.getOffsets(this.subChartContainer);\r\n this.padding = this.calcPadding(this.parentSurface.renderSurface.viewportSize, this.subPositionProperty, offsets, isDrawing);\r\n };\r\n Object.defineProperty(SciChartSubSurface.prototype, \"parentSurface\", {\r\n /**\r\n * The parent SciChartSurface, if this is a subChart. See {@link addSubChart}\r\n */\r\n get: function () {\r\n return this.parentSurfaceProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSubSurface.prototype, \"surfaceType\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return SciChartSurfaceBase_1.ESurfaceType.SciChartSurfaceType;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSubSurface.prototype.changeViewportSize = function (pixelWidth, pixelHeight) {\r\n this.renderSurface.viewportSize = this.parentSurface.renderSurface.viewportSize;\r\n };\r\n /**\r\n * Gets the sub-chart container\r\n */\r\n SciChartSubSurface.prototype.getSubChartContainer = function () {\r\n return this.subChartContainer;\r\n };\r\n SciChartSubSurface.prototype.getSubChartRect = function () {\r\n var _a = this.renderSurface.viewportSize, width = _a.width, height = _a.height;\r\n var _b = this.adjustedPadding, top = _b.top, left = _b.left, bottom = _b.bottom, right = _b.right;\r\n // When resizing too fast it could happen that width < left + right or height < top + bottom and it breaks subcharts\r\n var newWidth = width - left - right > 0 ? width - left - right : 0;\r\n var newHeight = height - top - bottom > 0 ? height - top - bottom : 0;\r\n return new Rect_1.Rect(left, top, newWidth, newHeight);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSubSurface.prototype.delete = function (clearHtml) {\r\n if (clearHtml === void 0) { clearHtml = true; }\r\n // Don't ever clear html on the parent here as it kills the drawing for all subcharts.\r\n if (clearHtml && this.domChartRoot.contains(this.domSvgContainer)) {\r\n this.domChartRoot.removeChild(this.domSvgContainer);\r\n }\r\n if (clearHtml && this.domChartRoot.contains(this.domBackgroundSvgContainer)) {\r\n this.domChartRoot.removeChild(this.domBackgroundSvgContainer);\r\n }\r\n this.backgroundFillBrushCache = (0, Deleter_1.deleteSafe)(this.backgroundFillBrushCache);\r\n _super.prototype.delete.call(this, false);\r\n };\r\n SciChartSubSurface.prototype.toJSON = function (excludeData) {\r\n var _a;\r\n if (excludeData === void 0) { excludeData = false; }\r\n var theme;\r\n if (\"toJSON\" in this.themeProvider) {\r\n // @ts-ignore\r\n theme = this.themeProvider.toJSON();\r\n }\r\n else {\r\n theme = this.themeProvider;\r\n }\r\n var baseSurfaceDefinition = _super.prototype.toJSON.call(this);\r\n var options = __assign(__assign({}, baseSurfaceDefinition.surface), { isTransparent: this.isTransparent, isVisible: this.isVisible, sectionScale: this.sectionScale, subChartPadding: this.subPaddingProperty, position: this.subPosition, subChartContainerId: typeof this.subChartContainerId === \"string\" ? this.subChartContainerId : (_a = this.subChartContainerId) === null || _a === void 0 ? void 0 : _a.id, coordinateMode: this.coordinateMode, parentXAxisId: this.parentXAxisId, parentYAxisId: this.parentYAxisId });\r\n var definition = {\r\n surface: options,\r\n xAxes: this.xAxes.asArray().map(function (axis) { return axis.toJSON(); }),\r\n yAxes: this.yAxes.asArray().map(function (axis) { return axis.toJSON(); }),\r\n series: this.renderableSeries.asArray().map(function (series) { return series.toJSON(excludeData); }),\r\n modifiers: this.chartModifiers.asArray().map(function (modifier) { return modifier.toJSON(); }),\r\n annotations: this.annotations.asArray().map(function (annotation) { return annotation.toJSON(); })\r\n };\r\n return definition;\r\n };\r\n SciChartSubSurface.prototype.calcPadding = function (viewportSize, position, offsets, isDrawing) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if (isDrawing === void 0) { isDrawing = false; }\r\n var scaledViewWidth = viewportSize.width, scaledViewHeight = viewportSize.height;\r\n var viewWidth = (0, translate_1.translateToNotScaled)(scaledViewWidth);\r\n var viewHeight = (0, translate_1.translateToNotScaled)(scaledViewHeight);\r\n var x = position.x, y = position.y, width = position.width, height = position.height;\r\n // Pixel mode\r\n // TODO DPI scale absolute coords?\r\n var left = x;\r\n var top = y;\r\n var bottom = viewHeight - y - height;\r\n var right = viewWidth - x - width;\r\n if (this.coordinateMode === AnnotationBase_1.ECoordinateMode.Relative) {\r\n left = viewWidth * x + offsets.left;\r\n top = viewHeight * y + offsets.top;\r\n right = viewWidth - viewWidth * x - viewWidth * width + offsets.right;\r\n bottom = viewHeight - viewHeight * y - viewHeight * height + offsets.bottom;\r\n }\r\n else if (this.coordinateMode === AnnotationBase_1.ECoordinateMode.DataValue && isDrawing) {\r\n var xAxis = this.parentSurface.getXAxisById(this.parentXAxisId);\r\n if (!xAxis) {\r\n throw new Error(\"No x axis with id \".concat(this.parentXAxisId, \" found on parent surface\"));\r\n }\r\n var xCoordCalc = xAxis.getCurrentCoordinateCalculator();\r\n var yAxis = this.parentSurface.getYAxisById(this.parentYAxisId);\r\n if (!yAxis) {\r\n throw new Error(\"No y axis with id \".concat(this.parentYAxisId, \" found on parent surface\"));\r\n }\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n var scaledParentLeft = (0, translate_1.translateToNotScaled)(seriesViewRect.left);\r\n var scaledParentTop = (0, translate_1.translateToNotScaled)(seriesViewRect.top);\r\n var scaledParentBottom = (0, translate_1.translateToNotScaled)(seriesViewRect.bottom);\r\n var scaledParentRight = (0, translate_1.translateToNotScaled)(seriesViewRect.right);\r\n var yCoordCalc = yAxis.getCurrentCoordinateCalculator();\r\n left = xAxis.isVerticalChart ? yCoordCalc.getCoordinate(x) : xCoordCalc.getCoordinate(x);\r\n top = xAxis.isVerticalChart ? xCoordCalc.getCoordinate(y) : yCoordCalc.getCoordinate(y);\r\n left = Math.max((0, translate_1.translateToNotScaled)(left), 0);\r\n top = Math.max((0, translate_1.translateToNotScaled)(top), 0);\r\n left += scaledParentLeft;\r\n top += scaledParentTop;\r\n var x2 = xAxis.flippedCoordinates ? x - width : x + width;\r\n var y2 = yAxis.flippedCoordinates ? y + height : y - height;\r\n bottom = Math.max(viewHeight -\r\n scaledParentTop -\r\n (0, translate_1.translateToNotScaled)(xAxis.isVerticalChart ? xCoordCalc.getCoordinate(y2) : yCoordCalc.getCoordinate(y2)), viewHeight - scaledParentBottom);\r\n right = Math.max(viewWidth -\r\n scaledParentLeft -\r\n (0, translate_1.translateToNotScaled)(xAxis.isVerticalChart ? yCoordCalc.getCoordinate(x2) : xCoordCalc.getCoordinate(x2)), viewWidth - scaledParentRight);\r\n }\r\n left += (_b = (_a = this.subPaddingProperty) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0;\r\n top += (_d = (_c = this.subPaddingProperty) === null || _c === void 0 ? void 0 : _c.top) !== null && _d !== void 0 ? _d : 0;\r\n right += (_f = (_e = this.subPaddingProperty) === null || _e === void 0 ? void 0 : _e.right) !== null && _f !== void 0 ? _f : 0;\r\n bottom += (_h = (_g = this.subPaddingProperty) === null || _g === void 0 ? void 0 : _g.bottom) !== null && _h !== void 0 ? _h : 0;\r\n return new Thickness_1.Thickness(top, right, bottom, left);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSubSurface.prototype.applySciChartBackground = function (background, alphaEnabled) {\r\n if (alphaEnabled === void 0) { alphaEnabled = true; }\r\n this.backgroundProperty = background;\r\n if (!this.isTransparent) {\r\n // const renderContext = this.renderSurface.getRenderContext();\r\n // This is probably an unnecessary change, and mostly here to prevent a memory usage debug warning\r\n var renderContext = new WebGlRenderContext2D_1.WebGlRenderContext2D(this.webAssemblyContext2D, this.renderSurface.viewportSize, this.renderSurface.canvasId);\r\n var nativeContext = renderContext.getNativeContext();\r\n var _a = this.parentSurface.renderSurface.viewportSize, width = _a.width, height = _a.height;\r\n nativeContext.SetClipRect(this.adjustedPadding.left, this.adjustedPadding.top, width - this.adjustedPadding.right - this.adjustedPadding.left, height - this.adjustedPadding.bottom - this.adjustedPadding.top);\r\n nativeContext.SetClearColor(0, 0, 0, 0);\r\n nativeContext.Clear();\r\n nativeContext.SetClipRect(0, 0, width, height);\r\n try {\r\n // try parse background value. throws if cannot parse html color\r\n var brushColor = (0, parseColor_1.parseColorToUIntArgb)(background);\r\n var vecRects = (0, NativeObject_1.getVectorRectVertex)(this.webAssemblyContext2D);\r\n vecRects.push_back((0, createNativeRect_1.createNativeRect)(this.webAssemblyContext2D, this.adjustedPadding.left, this.adjustedPadding.top, this.renderSurface.viewportSize.width - this.adjustedPadding.right, this.renderSurface.viewportSize.height - this.adjustedPadding.bottom));\r\n var brush = (0, BrushCache_1.createBrushInCache)(this.backgroundFillBrushCache, background, 1);\r\n renderContext.drawRects(vecRects, brush, 0, 0);\r\n }\r\n catch (error) {\r\n performanceWarnings_1.performanceWarnings.subchartBackgroundNotSimpleColor.warn();\r\n }\r\n renderContext.delete();\r\n }\r\n };\r\n SciChartSubSurface.prototype.updateWrapper = function (subChartPosition) {\r\n var _this = this;\r\n if (!this.parentSurface || !this.subChartContainer) {\r\n return;\r\n }\r\n var seriesViewRect = this.parentSurface.seriesViewRect;\r\n if (!seriesViewRect && this.coordinateMode !== AnnotationBase_1.ECoordinateMode.Relative) {\r\n return;\r\n }\r\n this.subChartContainer.style.pointerEvents = \"none\";\r\n this.subChartContainer.style.position = \"absolute\";\r\n var getSubChartContainerPosition = function (subChartPosition) {\r\n if (_this.coordinateMode === AnnotationBase_1.ECoordinateMode.DataValue) {\r\n var xAxis = _this.parentSurface.getXAxisById(_this.parentXAxisId);\r\n if (!xAxis) {\r\n throw new Error(\"No x axis with id \".concat(_this.parentXAxisId, \" found on parent surface\"));\r\n }\r\n var yAxis = _this.parentSurface.getYAxisById(_this.parentYAxisId);\r\n if (!yAxis) {\r\n throw new Error(\"No y axis with id \".concat(_this.parentYAxisId, \" found on parent surface\"));\r\n }\r\n var absolutePositionRect = (0, translate_1.translateDataValueRectToAbsolute)(subChartPosition, xAxis, yAxis, seriesViewRect);\r\n var left = (0, translate_1.convertToHtmlPx)(absolutePositionRect.x);\r\n var top_1 = (0, translate_1.convertToHtmlPx)(absolutePositionRect.y);\r\n var width = (0, translate_1.convertToHtmlPx)(absolutePositionRect.width);\r\n var height = (0, translate_1.convertToHtmlPx)(absolutePositionRect.height);\r\n return { left: left, top: top_1, width: width, height: height };\r\n }\r\n else if (_this.coordinateMode === AnnotationBase_1.ECoordinateMode.Relative) {\r\n var left = (0, translate_1.convertToRelativeHtmlSize)(subChartPosition.x);\r\n var top_2 = (0, translate_1.convertToRelativeHtmlSize)(subChartPosition.y);\r\n var width = (0, translate_1.convertToRelativeHtmlSize)(subChartPosition.width);\r\n var height = (0, translate_1.convertToRelativeHtmlSize)(subChartPosition.height);\r\n return { left: left, top: top_2, width: width, height: height };\r\n }\r\n else {\r\n var left = (0, translate_1.convertToHtmlPx)(subChartPosition.x);\r\n var top_3 = (0, translate_1.convertToHtmlPx)(subChartPosition.y);\r\n var width = (0, translate_1.convertToHtmlPx)(subChartPosition.width);\r\n var height = (0, translate_1.convertToHtmlPx)(subChartPosition.height);\r\n return { left: left, top: top_3, width: width, height: height };\r\n }\r\n };\r\n var subChartContainerPosition = getSubChartContainerPosition(subChartPosition);\r\n this.subChartContainer.style.left = subChartContainerPosition.left;\r\n this.subChartContainer.style.top = subChartContainerPosition.top;\r\n this.subChartContainer.style.width = subChartContainerPosition.width;\r\n this.subChartContainer.style.height = subChartContainerPosition.height;\r\n };\r\n SciChartSubSurface.prototype.getOffsets = function (subChartContainer) {\r\n var _a, _b, _c, _d;\r\n if (!subChartContainer) {\r\n return {\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0\r\n };\r\n }\r\n // TODO probably we can use better selector\r\n var leftSection = subChartContainer.getElementsByClassName(this.leftSectionClass)[0];\r\n var topSection = subChartContainer.getElementsByClassName(this.topSectionClass)[0];\r\n var rightSection = subChartContainer.getElementsByClassName(this.rightSectionClass)[0];\r\n var bottomSection = subChartContainer.getElementsByClassName(this.bottomSectionClass)[0];\r\n var leftSectionWidth = (_a = leftSection === null || leftSection === void 0 ? void 0 : leftSection.clientWidth) !== null && _a !== void 0 ? _a : 0;\r\n var topSectionHeight = (_b = topSection === null || topSection === void 0 ? void 0 : topSection.clientHeight) !== null && _b !== void 0 ? _b : 0;\r\n var rightSectionWidth = (_c = rightSection === null || rightSection === void 0 ? void 0 : rightSection.clientWidth) !== null && _c !== void 0 ? _c : 0;\r\n var bottomSectionHeight = (_d = bottomSection === null || bottomSection === void 0 ? void 0 : bottomSection.clientHeight) !== null && _d !== void 0 ? _d : 0;\r\n return {\r\n left: leftSectionWidth * this.sectionScaleProperty,\r\n top: topSectionHeight * this.sectionScaleProperty,\r\n right: rightSectionWidth * this.sectionScaleProperty,\r\n bottom: bottomSectionHeight * this.sectionScaleProperty\r\n };\r\n };\r\n return SciChartSubSurface;\r\n}(SciChartSurface));\r\nexports.SciChartSubSurface = SciChartSubSurface;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getLocateFile = exports.getMasterCanvas = exports.createChartDestination = exports.SciChartSurfaceBase = exports.ESurfaceType = exports.DebugForDpi = void 0;\r\nvar classFactory_1 = require(\"../../Builder/classFactory\");\r\nvar licenseManager2D_1 = require(\"../../Charting/Visuals/licenseManager2D\");\r\nvar licenseManager3D_1 = require(\"../../Charting3D/Visuals/licenseManager3D\");\r\nvar app_1 = require(\"../../constants/app\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar Globals_1 = require(\"../../Core/Globals\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar MouseManager_1 = require(\"../../Core/Mouse/MouseManager\");\r\nvar ObservableArray_1 = require(\"../../Core/ObservableArray\");\r\nvar PropertyChangedEventArgs_1 = require(\"../../Core/PropertyChangedEventArgs\");\r\nvar WebGlHelper_1 = require(\"../../Core/WebGlHelper\");\r\nvar BaseType_1 = require(\"../../types/BaseType\");\r\nvar array_1 = require(\"../../utils/array\");\r\nvar guid_1 = require(\"../../utils/guid\");\r\nvar MemoryUsageHelper_1 = require(\"../../utils/MemoryUsageHelper\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\nvar ChartModifierBase_1 = require(\"../ChartModifiers/ChartModifierBase\");\r\nvar SciChartJSDarkv2Theme_1 = require(\"../Themes/SciChartJSDarkv2Theme\");\r\nvar DpiHelper_1 = require(\"./TextureManager/DpiHelper\");\r\nvar UpdateSuspender_1 = require(\"./UpdateSuspender\");\r\nexports.DebugForDpi = false;\r\n/**\r\n * Enum constants to specify SciChartSurface type\r\n */\r\nvar ESurfaceType;\r\n(function (ESurfaceType) {\r\n /**\r\n * A 2D Cartesian {@link SciChartSurface}\r\n */\r\n ESurfaceType[\"SciChartSurfaceType\"] = \"SciChartSurfaceType\";\r\n /**\r\n * A 3D Cartesian {@link SciChart3DSurface}\r\n */\r\n ESurfaceType[\"SciChart3DSurfaceType\"] = \"SciChart3DSurfaceType\";\r\n})(ESurfaceType = exports.ESurfaceType || (exports.ESurfaceType = {}));\r\n/**\r\n * @summary The base class for a 2D Cartesian {@link SciChartSurface} or 3D Cartesian {@link SciChart3DSurface} within SciChart -\r\n * High Performance Realtime {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * See derived types {@link SciChartSurface} (2D Charts) and {@link SciChart3DSurface} (3D Charts) for more specific instructions on how\r\n * to use the SciChartSurface and create a 2D or 3D {@link https://www.scichart.com/javascript-chart-features | JavaScript Chart}\r\n */\r\nvar SciChartSurfaceBase = /** @class */ (function (_super) {\r\n __extends(SciChartSurfaceBase, _super);\r\n /**\r\n * Creates an instance of a SciChartSurfaceBase\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart | SciChart 3D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 WebAssembly Rendering Engine\r\n * @param canvases A list of {@link TSciChartSurfaceCanvases} to draw to\r\n */\r\n function SciChartSurfaceBase(webAssemblyContext, canvases) {\r\n if (canvases === void 0) { canvases = {}; }\r\n var _this = _super.call(this) || this;\r\n /**\r\n * An event handler which notifies its subscribers when a render operation has finished. Use this\r\n * to time render performance, or to update elements of the chart or your UI on redraw.\r\n */\r\n _this.rendered = new EventHandler_1.EventHandler();\r\n _this.themeProviderProperty = SciChartSurfaceBase.DEFAULT_THEME;\r\n _this.previousThemeProviderProperty = SciChartSurfaceBase.DEFAULT_THEME;\r\n _this.isInitializedProperty = false;\r\n _this.isDeletedProperty = false;\r\n _this.backgroundProperty = SciChartSurfaceBase.DEFAULT_THEME.sciChartBackground;\r\n _this.idProperty = (0, guid_1.generateGuid)();\r\n _this.suspendableIdProperty = (0, guid_1.generateGuid)();\r\n _this.isAlphaEnabledProperty = true;\r\n _this.deletables = [];\r\n Guard_1.Guard.notNull(webAssemblyContext, \"webAssemblyContext\");\r\n _this.domChartRoot = canvases.domChartRoot;\r\n _this.domCanvasWebGL = canvases.domCanvasWebGL;\r\n _this.domCanvas2D = canvases.domCanvas2D;\r\n _this.domSvgContainer = canvases.domSvgContainer;\r\n _this.domSvgAdornerLayer = canvases.domSvgAdornerLayer;\r\n _this.domBackgroundSvgContainer = canvases.domBackgroundSvgContainer;\r\n _this.domSeriesBackground = canvases.domSeriesBackground;\r\n _this.domDivContainer = canvases.domDivContainer;\r\n _this.sharedWasmContext = webAssemblyContext;\r\n _this.propertyChanged = new EventHandler_1.EventHandler();\r\n // Flag which ensures Typescript side drives emscripten rendering (one render per draw request)\r\n webAssemblyContext.TSRSetDrawRequestsEnabled(true);\r\n // Setup chart modifiers\r\n _this.detachChartModifier = _this.detachChartModifier.bind(_this);\r\n _this.attachChartModifier = _this.attachChartModifier.bind(_this);\r\n _this.chartModifiers = new ObservableArray_1.ObservableArray();\r\n _this.chartModifiers.collectionChanged.subscribe(function (arg) {\r\n var _a, _b;\r\n (_a = arg.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(function (cm) { return _this.detachChartModifier(cm); });\r\n (_b = arg.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(function (cm) { return _this.attachChartModifier(cm); });\r\n });\r\n // Setup annotations\r\n _this.detachAnnotation = _this.detachAnnotation.bind(_this);\r\n _this.attachAnnotation = _this.attachAnnotation.bind(_this);\r\n _this.annotations = new ObservableArray_1.ObservableArray();\r\n _this.modifierAnnotations = new ObservableArray_1.ObservableArray();\r\n _this.annotations.collectionChanged.subscribe(function (arg) {\r\n var _a, _b;\r\n (_a = arg.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(function (a) { return _this.detachAnnotation(a); });\r\n (_b = arg.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(function (a) { return _this.attachAnnotation(a); });\r\n });\r\n _this.modifierAnnotations.collectionChanged.subscribe(function (arg) {\r\n var _a, _b;\r\n (_a = arg.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(function (a) { return _this.detachAnnotation(a); });\r\n (_b = arg.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(function (a) { return _this.attachAnnotation(a); });\r\n });\r\n // Setup mouse manager\r\n _this.mouseManager = new MouseManager_1.MouseManager(_this);\r\n if (canvases.domCanvasWebGL) {\r\n _this.mouseManager.subscribe(canvases.domCanvasWebGL);\r\n }\r\n else if (canvases.domCanvas2D) {\r\n _this.mouseManager.subscribe(canvases.domCanvas2D);\r\n }\r\n // Setup Dpi change listeners\r\n _this.onDpiChanged = _this.onDpiChanged.bind(_this);\r\n DpiHelper_1.DpiHelper.dpiChanged.subscribe(_this.onDpiChanged);\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {\r\n var rootContainer = document.body;\r\n var wasAttached_1 = false;\r\n var observer_1 = new MutationObserver(function () {\r\n var isInDom = _this.domChartRoot.isConnected;\r\n if (wasAttached_1 && !isInDom && !_this.isDeleted) {\r\n console.warn(\"The chart root element \\\"\".concat(_this.domChartRoot.id, \"\\\" was detached before the surface \").concat(_this.id, \" was properly disposed! Make sure to call \\\"delete\\\" method on the surface when it is not longer needed.\"));\r\n }\r\n if (isInDom) {\r\n wasAttached_1 = true;\r\n }\r\n });\r\n observer_1.observe(rootContainer, { childList: true, subtree: true });\r\n _this.addDeletable({\r\n delete: function () { return observer_1.disconnect(); }\r\n });\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n if (perfomance_1.PerformanceDebugHelper.enableDebug) {\r\n _this.enableRenderListener();\r\n }\r\n if (!app_1.IS_TEST_ENV && SciChartSurfaceBase.invalidateOnTabVisible) {\r\n var visibilityChangeHandler_1 = function () {\r\n if (document.visibilityState === \"visible\") {\r\n _this.invalidateElement({ force: true });\r\n }\r\n };\r\n document.addEventListener(\"visibilitychange\", visibilityChangeHandler_1);\r\n _this.addDeletable({\r\n delete: function () { return document.removeEventListener(\"visibilitychange\", visibilityChangeHandler_1); }\r\n });\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Deletes the shared wasmContext ({@link TSciChart | WebAssembly Context}) used by the charts instantiated with {@link SciChartSurface.create} or {@link SciChart3DSurface.create}.\r\n */\r\n SciChartSurfaceBase.disposeSharedWasmContext = function () {\r\n if (Globals_1.sciChart3DDestinations.length === 0 && Globals_1.sciChartDestinations.length === 0) {\r\n if (SciChartSurfaceBase.domMasterCanvas) {\r\n document.body.removeChild(SciChartSurfaceBase.domMasterCanvas);\r\n SciChartSurfaceBase.domMasterCanvas = undefined;\r\n }\r\n }\r\n (0, licenseManager2D_1.forceReapplyLicense2D)();\r\n (0, licenseManager3D_1.forceReapplyLicense3D)();\r\n // try {\r\n // if (process.env.NODE_ENV !== \"production\") {\r\n // if (MemoryUsageHelper.isMemoryUsageDebugEnabled) {\r\n // // @ts-ignore\r\n // window.gc && window.gc();\r\n // // TODO add warning if there are undeleted or uncollected entities instead\r\n // // MemoryUsageHelper.objectRegistry.log();\r\n // }\r\n // }\r\n // } catch (err) {\r\n // console.warn(err);\r\n // }\r\n };\r\n /**\r\n * Sets the runtime license key. Use for full licenses or trials only, not developer licenses.\r\n * @param keyCode\r\n */\r\n SciChartSurfaceBase.setRuntimeLicenseKey = function (keyCode) {\r\n licenseManager2D_1.licenseManager.setRuntimeLicenseKey(keyCode);\r\n };\r\n /**\r\n * Causes SciChart to always use its built in community non-commercial license. This stops it attempting to look for the license wizard\r\n * Usage of the community license constitutes acceptance of the terms at https://www.scichart.com/community-licensing/\r\n */\r\n SciChartSurfaceBase.UseCommunityLicense = function () {\r\n licenseManager2D_1.licenseManager.setRuntimeLicenseKey(\"community\");\r\n };\r\n /**\r\n * Sets the endpoint for validating a runtime license key with the server. Must be a relative path.\r\n * @default api/license\r\n * @param endpoint\r\n */\r\n SciChartSurfaceBase.setServerLicenseEndpoint = function (endpoint) {\r\n licenseManager2D_1.licenseManager.setServerLicenseEndpoint(endpoint);\r\n };\r\n /**\r\n * Sets function that will be called by the framework to validate a runtime license from the server,\r\n * if you need to add additional handling, such as custom authentication.\r\n * The request sent to the server must include the queryString section passed in, which does not come with a leading ?\r\n * @param callback\r\n */\r\n SciChartSurfaceBase.setLicenseCallback = function (callback) {\r\n licenseManager2D_1.licenseManager.setLicenseCallback(callback);\r\n };\r\n SciChartSurfaceBase.resolveOptions = function (options) {\r\n // We need to resolve these before create as the loader and theme are required before the surface is created.\r\n if ((options === null || options === void 0 ? void 0 : options.theme) && \"type\" in options.theme) {\r\n if (!(\"applyOverrides\" in options.theme)) {\r\n // This is {type, overrides}\r\n var theme = (0, classFactory_1.createType)(BaseType_1.EBaseType.ThemeProvider, options.theme.type, null, options.theme);\r\n if (\"applyOverrides\" in theme) {\r\n // We got a ThemeProvider we can give overrides to\r\n theme.applyOverrides(options.theme);\r\n }\r\n options.theme = theme;\r\n }\r\n }\r\n else {\r\n if (!options) {\r\n options = { theme: SciChartSurfaceBase.DEFAULT_THEME };\r\n }\r\n else {\r\n options.theme = SciChartSurfaceBase.DEFAULT_THEME;\r\n }\r\n }\r\n if (options === null || options === void 0 ? void 0 : options.loader) {\r\n if (!(\"addChartLoader\" in options.loader)) {\r\n options.loader = (0, classFactory_1.createType)(BaseType_1.EBaseType.Loader, options.loader.type, null, options.loader);\r\n }\r\n }\r\n return options;\r\n };\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"id\", {\r\n /**\r\n * Gets or sets the SciChartSurface Id\r\n */\r\n get: function () {\r\n return this.idProperty;\r\n },\r\n /**\r\n * Gets or sets the SciChartSurface Id\r\n */\r\n set: function (value) {\r\n this.idProperty = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"background\", {\r\n /**\r\n * Gets or sets the SciChartSurface Background as an HTML color code\r\n */\r\n get: function () {\r\n return this.backgroundProperty;\r\n },\r\n /**\r\n * Gets or sets the SciChartSurface Background as an HTML color code\r\n */\r\n set: function (background) {\r\n this.backgroundProperty = background;\r\n this.applySciChartBackground(background, this.isAlphaEnabledProperty);\r\n this.notifyPropertyChanged(\"Background\");\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Used internally, updates background after switching between different SciChartSurfaces\r\n */\r\n SciChartSurfaceBase.prototype.updateBackground = function () {\r\n this.applySciChartBackground(this.backgroundProperty, this.isAlphaEnabledProperty);\r\n };\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"isCopyCanvasSurface\", {\r\n get: function () {\r\n return !this.domCanvasWebGL && this.domCanvas2D;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"seriesViewRect\", {\r\n /**\r\n * Gets the Series View {@link Rect}, a rectangle relative to the entire size of the {@link SciChartSurfaceBase}\r\n */\r\n get: function () {\r\n return this.seriesViewRectProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"otherSurfaces\", {\r\n /**\r\n * Used internally - gets other SciChartSurfaces\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this.destinations) {\r\n return [];\r\n }\r\n return this.destinations.map(function (el) { return el.sciChartSurface; }).filter(function (el2) { return el2 !== _this; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"isInitialized\", {\r\n /**\r\n * Used internally - gets isInitialized flag\r\n */\r\n get: function () {\r\n return this.isInitializedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"isDeleted\", {\r\n /**\r\n * Used internally - gets isDeleted flag\r\n */\r\n get: function () {\r\n return this.isDeletedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"isSuspended\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return UpdateSuspender_1.UpdateSuspender.getIsSuspended(this);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"suspendableId\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.suspendableIdProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurfaceBase.prototype.decrementSuspend = function () { };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurfaceBase.prototype.resumeUpdates = function (suspender) {\r\n if (suspender.shouldResumeTarget) {\r\n this.invalidateElement();\r\n if (suspender === this.suspender) {\r\n this.suspender = undefined;\r\n }\r\n }\r\n };\r\n SciChartSurfaceBase.prototype.resume = function () {\r\n var _a;\r\n (_a = this.suspender) === null || _a === void 0 ? void 0 : _a.resume();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurfaceBase.prototype.suspendUpdates = function () {\r\n this.suspender = new UpdateSuspender_1.UpdateSuspender(this);\r\n this.addDeletable(this.suspender);\r\n return this.suspender;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurfaceBase.prototype.applyTheme = function (themeProvider) {\r\n this.previousThemeProviderProperty = this.themeProviderProperty;\r\n this.themeProviderProperty = themeProvider;\r\n this.applySciChartBackground(themeProvider.sciChartBackground);\r\n this.chartModifiers.asArray().forEach(function (el) { return el.applyTheme(themeProvider); });\r\n this.invalidateElement();\r\n };\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"themeProvider\", {\r\n /**\r\n * Used internally - gets the previous {@link IThemeProvider}\r\n */\r\n get: function () {\r\n return this.themeProviderProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"previousThemeProvider\", {\r\n /**\r\n * Used internally - gets the previous {@link IThemeProvider}\r\n */\r\n get: function () {\r\n return this.previousThemeProviderProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurfaceBase.prototype.delete = function (clearHtml) {\r\n var _this = this;\r\n var _a;\r\n if (clearHtml === void 0) { clearHtml = true; }\r\n this.isDeletedProperty = true;\r\n // TODO probably this should be moved outside for Proxy === this comparison issue exists\r\n var currentSurfaceIndex = (_a = this.destinations) === null || _a === void 0 ? void 0 : _a.findIndex(function (dest) { return dest.sciChartSurface.id === _this.id; });\r\n if (currentSurfaceIndex >= 0) {\r\n this.destinations.splice(currentSurfaceIndex, 1);\r\n }\r\n DpiHelper_1.DpiHelper.dpiChanged.unsubscribe(this.onDpiChanged);\r\n this.mouseManager.unsubscribe();\r\n this.mouseManager = undefined;\r\n this.chartModifiers.asArray().forEach(function (chm) { return chm.delete(); });\r\n this.modifierAnnotations.asArray().forEach(function (annotation) { return annotation.delete(); });\r\n this.annotations.asArray().forEach(function (annotation) { return annotation.delete(); });\r\n this.adornerLayer = undefined;\r\n for (var _i = 0, _b = this.deletables; _i < _b.length; _i++) {\r\n var deletable = _b[_i];\r\n (0, Deleter_1.deleteSafe)(deletable);\r\n }\r\n this.domChartRoot = undefined;\r\n this.domCanvasWebGL = undefined;\r\n this.domCanvas2D = undefined;\r\n this.domSvgContainer = undefined;\r\n this.domSvgAdornerLayer = undefined;\r\n this.domBackgroundSvgContainer = undefined;\r\n this.domSeriesBackground = undefined;\r\n this.domDivContainer = undefined;\r\n this.sharedWasmContext = undefined;\r\n this.deletables = [];\r\n };\r\n SciChartSurfaceBase.prototype.addDeletable = function (deletable) {\r\n this.deletables.push(deletable);\r\n };\r\n SciChartSurfaceBase.prototype.getMainCanvas = function () {\r\n return this.domCanvasWebGL || this.domCanvas2D;\r\n };\r\n /**\r\n * Sets the Series View {@link Rect}, a rectangle relative to the entire size of the {@link SciChartSurfaceBase}\r\n * @param seriesViewRect a {@link Rect} which defines the portion of the view for drawing series\r\n */\r\n SciChartSurfaceBase.prototype.setSeriesViewRect = function (seriesViewRect) {\r\n this.seriesViewRectProperty = seriesViewRect;\r\n };\r\n /**\r\n * Used internally - sets destinations\r\n */\r\n SciChartSurfaceBase.prototype.setDestinations = function (destinations) {\r\n this.destinations = destinations;\r\n };\r\n /**\r\n * Used internally, the flag is set after {@link SciChartSurfaceBase} is initialized\r\n */\r\n SciChartSurfaceBase.prototype.setIsInitialized = function () {\r\n this.isInitializedProperty = true;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChartSurfaceBase.prototype.onDpiChanged = function (args) {\r\n this.annotations.asArray().forEach(function (a) { return a.onDpiChanged(args); });\r\n this.modifierAnnotations.asArray().forEach(function (a) { return a.onDpiChanged(args); });\r\n this.invalidateElement();\r\n };\r\n /**\r\n * Creates a promise which resolves when the chart is updated to the next fully rendered state\r\n *\r\n * @remarks\r\n * If the surface is initialized with `createSingle` the promise resolves after the main `render` function is executed.\r\n * Otherwise, if it is initialized with `create` - the promise resolves after image data is copied to the 2D canvas.\r\n */\r\n SciChartSurfaceBase.prototype.nextStateRender = function (options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var listener = function (isInvalidated) {\r\n try {\r\n if (!isInvalidated) {\r\n if (options === null || options === void 0 ? void 0 : options.suspendAfter) {\r\n var nextSuspender = _this.suspendUpdates();\r\n resolve(nextSuspender);\r\n }\r\n else {\r\n resolve(null);\r\n }\r\n _this.rendered.unsubscribe(listener);\r\n }\r\n }\r\n catch (err) {\r\n console.error(err);\r\n reject(err);\r\n }\r\n };\r\n _this.rendered.subscribe(listener);\r\n if (options === null || options === void 0 ? void 0 : options.resumeBefore) {\r\n _this.resume();\r\n if (options === null || options === void 0 ? void 0 : options.invalidateOnResume) {\r\n _this.invalidateElement();\r\n }\r\n }\r\n })];\r\n });\r\n });\r\n };\r\n Object.defineProperty(SciChartSurfaceBase.prototype, \"chartModifierGroups\", {\r\n get: function () {\r\n var arr = this.chartModifiers\r\n .asArray()\r\n .filter(function (cm) { return cm.modifierGroup !== undefined; })\r\n .map(function (el) { return el.modifierGroup; });\r\n return (0, array_1.getUniqueValues)(arr);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SciChartSurfaceBase.prototype.enableRenderListener = function () {\r\n var _this = this;\r\n var listener = function (isInvalidated) {\r\n perfomance_1.PerformanceDebugHelper.mark(isInvalidated ? perfomance_1.EPerformanceMarkType.Rendered : perfomance_1.EPerformanceMarkType.FullStateRendered, { contextId: _this.id });\r\n };\r\n this.rendered.subscribe(listener);\r\n this.addDeletable({ delete: function () { return _this.rendered.unsubscribe(listener); } });\r\n };\r\n SciChartSurfaceBase.prototype.clearRootElement = function (clearHtml) {\r\n if (clearHtml && this.domChartRoot) {\r\n var style = this.domChartRoot.style;\r\n if (style) {\r\n style.background = \"\";\r\n style.position = \"\";\r\n }\r\n if (this.domChartRoot.hasOwnProperty(\"replaceChildren\")) {\r\n // @ts-ignore\r\n this.domChartRoot.replaceChildren();\r\n }\r\n else {\r\n this.domChartRoot.innerHTML = \"\";\r\n }\r\n }\r\n };\r\n SciChartSurfaceBase.prototype.applyOptions = function (options) {\r\n var _a;\r\n this.idProperty = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : this.idProperty;\r\n this.widthAspect = options === null || options === void 0 ? void 0 : options.widthAspect;\r\n this.heightAspect = options === null || options === void 0 ? void 0 : options.heightAspect;\r\n this.disableAspect = options === null || options === void 0 ? void 0 : options.disableAspect;\r\n };\r\n /**\r\n * Detaches a {@link ChartModifierBase2D} from the {@link SciChartSurfaceBase}\r\n * @param chartModifier\r\n */\r\n SciChartSurfaceBase.prototype.detachChartModifier = function (chartModifier) {\r\n if (chartModifier.modifierType !== ChartModifierBase_1.EModifierType.MultiChart2DModifier) {\r\n chartModifier.invalidateParentCallback = undefined;\r\n chartModifier.onDetach();\r\n chartModifier.setParentSurface(undefined);\r\n this.invalidateElement();\r\n }\r\n };\r\n /**\r\n * Attaches a {@link ChartModifierBase2D} to the {@link SciChartSurfaceBase}\r\n * @param chartModifier\r\n */\r\n SciChartSurfaceBase.prototype.attachChartModifier = function (chartModifier) {\r\n if (chartModifier.modifierType === ChartModifierBase_1.EModifierType.MultiChart2DModifier) {\r\n if (this.chartModifiers.asArray().filter(function (cm) { return cm === chartModifier; }).length > 1) {\r\n throw Error(\"Invalid operation in sciChartSurface.attachChartModifier, this FinChartModifier has already been attached to this SciChartSurface.\");\r\n }\r\n }\r\n else {\r\n if (chartModifier.invalidateParentCallback) {\r\n throw Error(\"Invalid operation in sciChartSurface.attachChartModifier, this chartModifier has already been attached to a SciChartSurface. Please detach it from a SciChartSurface before attaching to another\");\r\n }\r\n }\r\n if (this.themeProviderProperty) {\r\n chartModifier.applyTheme(this.themeProviderProperty);\r\n }\r\n };\r\n /**\r\n * @summary Notifies subscribers of {@link SciChartSurfaceBase.propertyChanged} that a property has changed and the chart requires redrawing\r\n * @description SciChart provides fully reactive components, changing any property or changing data will cause the {@link SciChartSurfaceBase} to\r\n * redraw where necessary. This method notifies subscribers of the {@link SciChartSurfaceBase.propertyChanged} {@link EventHandler}\r\n * that a property has changed.\r\n * @param propertyName The name of the property which has changed\r\n */\r\n SciChartSurfaceBase.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n (_a = this.propertyChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new PropertyChangedEventArgs_1.PropertyChangedEventArgs(propertyName));\r\n this.invalidateElement();\r\n };\r\n SciChartSurfaceBase.prototype.changeMasterCanvasViewportSize = function (wasmContext, pixelWidth, pixelHeight) {\r\n if (!SciChartSurfaceBase.domMasterCanvas)\r\n return;\r\n var newWidth = pixelWidth;\r\n var newHeight = pixelHeight;\r\n var width = SciChartSurfaceBase.domMasterCanvas.width / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var height = SciChartSurfaceBase.domMasterCanvas.height / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n if (width > newWidth)\r\n newWidth = width;\r\n if (height > newHeight)\r\n newHeight = height;\r\n // domMasterCanvas.width/height are backBuffer sizes so we want to expand canvas size\r\n // if the backBuffer size is too small\r\n DpiHelper_1.DpiHelper.setSize(SciChartSurfaceBase.domMasterCanvas, newWidth, newHeight);\r\n var masterCanvasBackBufferWidth = SciChartSurfaceBase.domMasterCanvas.width;\r\n var masterCanvasBackBufferHeight = SciChartSurfaceBase.domMasterCanvas.height;\r\n wasmContext.SCRTSetMainWindowSize(masterCanvasBackBufferWidth, masterCanvasBackBufferHeight);\r\n };\r\n SciChartSurfaceBase.prototype.changeWebGLCanvasViewportSize = function (wasmContext, pixelWidth, pixelHeight) {\r\n if (!this.domCanvasWebGL)\r\n return;\r\n var backBufferWidth = pixelWidth * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var backBufferHeight = pixelHeight * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n DpiHelper_1.DpiHelper.setSize(this.domCanvasWebGL, pixelWidth, pixelHeight);\r\n wasmContext.SCRTSetMainWindowSize(backBufferWidth, backBufferHeight);\r\n };\r\n SciChartSurfaceBase.prototype.detachAnnotation = function (annotation) {\r\n annotation.onDetach();\r\n annotation.invalidateParentCallback = undefined;\r\n annotation.parentSurface = undefined;\r\n this.invalidateElement();\r\n };\r\n SciChartSurfaceBase.prototype.attachAnnotation = function (annotation) {\r\n if (annotation.invalidateParentCallback) {\r\n throw new Error(\"Invalid operation in sciChartSurface.attachAnnotation, this annotation has already been attached to a SciChartSurface. Please detach it from a SciChartSurface before attaching to another\");\r\n }\r\n annotation.parentSurface = this;\r\n annotation.invalidateParentCallback = this.invalidateElement;\r\n annotation.onAttach(this);\r\n this.invalidateElement();\r\n };\r\n /**\r\n * Gets or sets the application-wide default theme. See {@link IThemeProvider} for details\r\n */\r\n SciChartSurfaceBase.DEFAULT_THEME = new SciChartJSDarkv2Theme_1.SciChartJSDarkv2Theme();\r\n /**\r\n * Global property defining whether the WebGL render target is anti-aliased or not. This will affect all SciChartSurfaces (2D & 3D)\r\n * in the application.\r\n * @remarks Defaults to FALSE for crisp gridlines and lines. Individual line series and text labels are\r\n * chart parts are automatically anti-aliased\r\n */\r\n SciChartSurfaceBase.AntiAliasWebGlBackbuffer = false;\r\n /**\r\n * Defines a delay of the shared wasmContext auto-dispose if {@link autoDisposeWasmContext} is enabled.\r\n */\r\n SciChartSurfaceBase.wasmContextDisposeTimeout = 0;\r\n /**\r\n * Defines if the shared wasmContext ({@link TSciChart | WebAssembly Context}) should be deleted after all of the surfaces that use it are deleted.\r\n */\r\n SciChartSurfaceBase.autoDisposeWasmContext = false;\r\n /**\r\n * Defines if charts should rerender when the tab becomes active.\r\n * @remarks\r\n * Enabled by default. Purpose of this behavior is to deal with the issue of canvas data being cleared on an inactive tab .\r\n */\r\n SciChartSurfaceBase.invalidateOnTabVisible = true;\r\n return SciChartSurfaceBase;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.SciChartSurfaceBase = SciChartSurfaceBase;\r\nvar createChartDestination = function (canvas) {\r\n if (!canvas)\r\n return undefined;\r\n return {\r\n canvas: canvas,\r\n GetHeight: function () {\r\n return this.canvas.height;\r\n },\r\n GetWidth: function () {\r\n return this.canvas.width;\r\n },\r\n GetID: function () {\r\n return this.canvas.id;\r\n }\r\n };\r\n};\r\nexports.createChartDestination = createChartDestination;\r\n/** @ignore */\r\nvar getMasterCanvas = function () {\r\n /** @ignore */\r\n var SCICHART_MASTER_CANVAS_ID = \"SciChartMasterCanvas\";\r\n // Have we created a master canvas yet?\r\n if (!SciChartSurfaceBase.domMasterCanvas) {\r\n var canvasWebGL = document.createElement(\"canvas\");\r\n canvasWebGL.id = SCICHART_MASTER_CANVAS_ID;\r\n canvasWebGL.style.display = \"none\";\r\n canvasWebGL.style.position = \"absolute\";\r\n canvasWebGL.style.left = \"0\";\r\n canvasWebGL.style.top = \"0\";\r\n if (exports.DebugForDpi) {\r\n canvasWebGL.style.background = \"#00000077\";\r\n canvasWebGL.style.pointerEvents = \"none\";\r\n canvasWebGL.style.left = \"\";\r\n canvasWebGL.style.top = \"\";\r\n canvasWebGL.style.display = \"inline\";\r\n }\r\n canvasWebGL.addEventListener(\"webglcontextcreationerror\", function (event) {\r\n console.warn(\"WebGL Context creation error: \", event.statusMessage || \"Unknown error\");\r\n }, false);\r\n document.body.appendChild(canvasWebGL);\r\n var gl = WebGlHelper_1.WebGlHelper.getContext(canvasWebGL, {\r\n premultipliedAlpha: true,\r\n antialias: SciChartSurfaceBase.AntiAliasWebGlBackbuffer\r\n });\r\n // if (gl) {\r\n // const debugInfo = gl.getExtension(\"WEBGL_debug_renderer_info\");\r\n // const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);\r\n // const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);\r\n // console.log(`WebGL Debug info: ${vendor}, ${renderer}`);\r\n // }\r\n SciChartSurfaceBase.domMasterCanvas = canvasWebGL;\r\n }\r\n return SciChartSurfaceBase.domMasterCanvas;\r\n};\r\nexports.getMasterCanvas = getMasterCanvas;\r\n/** @ignore */\r\nvar getLocateFile = function (sciChartConfig) { return function (path, prefix) {\r\n if (path.endsWith(\".wasm\") && sciChartConfig.wasmUrl) {\r\n return sciChartConfig.wasmUrl;\r\n }\r\n if (path.endsWith(\".data\") && sciChartConfig.dataUrl) {\r\n return sciChartConfig.dataUrl;\r\n }\r\n return prefix + path;\r\n}; };\r\nexports.getLocateFile = getLocateFile;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CanvasTexture = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar TextureCache_1 = require(\"../../Drawing/TextureCache\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\n/**\r\n * @summary The {@link CanvasTexture} is used internally to map an {@link HTMLCanvasElement} to a WebGL Texture.\r\n * Use this when you want to create a WebGL texture and draw on it.\r\n * @remarks\r\n * To use a canvas texture, declare one, draw on the HTML canvas, then call {@link CanvasTexture.copyTexture}.\r\n * Code example below\r\n * ```ts\r\n * // Create a canvasTexture\r\n * const canvasTexture = new CanvasTexture(wasmContext, width, height);\r\n * canvasTexture.clear();\r\n *\r\n * // do some drawing with html5Context\r\n * const html5Context = canvasTexture.getContext();\r\n * // todo - your drawing here\r\n *\r\n * // Copy and get the texture\r\n * canvasTexture.copyTexture();\r\n * const webAssemblyTexture: TSRTexture = canvasTexture.getTexture();\r\n *\r\n * // After use, delete the CanvasTexture\r\n * canvasTexture.delete();\r\n * ```\r\n */\r\nvar CanvasTexture = /** @class */ (function (_super) {\r\n __extends(CanvasTexture, _super);\r\n /**\r\n * Creates an instance of a {@link CanvasTexture}\r\n * @remarks\r\n * The {@link CanvasTexture} implements {@link IDeletable}, and must be manually deleted to free WebAssembly / native memory\r\n * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} or {@link TSciChart2D | SciChart 2D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param textureWidth The width of the texture\r\n * @param textureHeight The height of the texture\r\n * @param useInterpolation The flat determines whether to useInterpolation when creating texture\r\n */\r\n function CanvasTexture(webAssemblyContext, textureWidth, textureHeight) {\r\n var _this = _super.call(this) || this;\r\n _this.width = Math.floor(textureWidth);\r\n _this.height = Math.floor(textureHeight);\r\n Guard_1.Guard.isTrue(_this.width > 0, \"CanvasTexture.width must be greater than zero\");\r\n Guard_1.Guard.isTrue(_this.height > 0, \"CanvasTexture.height must be greater than zero\");\r\n if (!app_1.IS_TEST_ENV) {\r\n _this.canvas = document.createElement(\"canvas\");\r\n _this.canvas.width = _this.width;\r\n _this.canvas.height = _this.height;\r\n // Uncomment to see the texture on the screen\r\n // document.body.appendChild(this.canvas);\r\n }\r\n _this.wasmContext = webAssemblyContext;\r\n // Create UIntVector with size once\r\n _this.intermediateVector = new _this.wasmContext.UIntVector();\r\n _this.intermediateVector.resize(_this.height * _this.width, 0);\r\n // Create UIntVector that will store initial color values\r\n _this.originalIntermediateVector = new _this.wasmContext.UIntVector();\r\n _this.originalIntermediateVector.resize(_this.height * _this.width, 0);\r\n var textureFormat = _this.wasmContext.eTSRTextureFormat.TSR_TEXTUREFORMAT_A8B8G8R8;\r\n // Create TSRTexture with size once\r\n _this.tsrTextureCache = new TextureCache_1.TextureCache(webAssemblyContext);\r\n _this.tsrTextureCache.create(_this.width, _this.height, textureFormat);\r\n return _this;\r\n }\r\n /**\r\n * Get an HTML5 {@link CanvasRenderingContext2D} to draw on.\r\n */\r\n CanvasTexture.prototype.getContext = function () {\r\n return this.canvas.getContext(\"2d\", { willReadFrequently: true });\r\n };\r\n /**\r\n * Get the SciChart WebAssembly / WebGL {@link TSRTexture | Texture}\r\n */\r\n CanvasTexture.prototype.getTexture = function () {\r\n return this.tsrTextureCache.value;\r\n };\r\n /**\r\n * Clears the texture and the canvas\r\n */\r\n CanvasTexture.prototype.clear = function () {\r\n // Set canvas to clear\r\n this.getContext().clearRect(0, 0, this.width, this.height);\r\n // Set UIntVector to zeros\r\n this.intermediateVector.fill(0);\r\n this.originalIntermediateVector.fill(0);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CanvasTexture.prototype.delete = function () {\r\n this.intermediateVector = (0, Deleter_1.deleteSafe)(this.intermediateVector);\r\n this.originalIntermediateVector = (0, Deleter_1.deleteSafe)(this.originalIntermediateVector);\r\n this.tsrTextureCache = (0, Deleter_1.deleteSafe)(this.tsrTextureCache);\r\n this.wasmContext = undefined;\r\n };\r\n /**\r\n * After you have finished drawing, copy the canvas to the destination {@link TSRTexture}\r\n */\r\n CanvasTexture.prototype.copyTexture = function () {\r\n var _a;\r\n var expectedSize = this.width * this.height;\r\n if (!this.intermediateVector || this.intermediateVector.size() !== expectedSize) {\r\n throw new Error(\"CanvasTexture.ts: IntermediateVector size is \".concat((_a = this.intermediateVector) === null || _a === void 0 ? void 0 : _a.size(), \" and expected \").concat(expectedSize));\r\n }\r\n // Get image data from the HTML5 canvas\r\n var imageData = this.getContext().getImageData(0, 0, this.width, this.height);\r\n // Array of Uint8\r\n var imageArr = imageData.data;\r\n // Copy to intermediate vector and pixel swizzle RGBA to ABGR\r\n var size = this.width * this.height;\r\n for (var i = 0; i < size; i++) {\r\n var el = i * 4;\r\n var a = imageArr[el + 3];\r\n // Only set pixels that are not alpha=0\r\n if (a !== 0) {\r\n var r = imageArr[el];\r\n var g = imageArr[el + 1];\r\n var b = imageArr[el + 2];\r\n // tslint:disable-next-line:no-bitwise\r\n var pixel = (a << 24) | (r << 16) | (g << 8) | b;\r\n // tslint:disable-next-line:no-bitwise\r\n this.intermediateVector.set(i, pixel >>> 0);\r\n this.originalIntermediateVector.set(i, pixel >>> 0);\r\n }\r\n }\r\n // Copy to TSRTexture ready for drawing\r\n var tsrTexture = this.tsrTextureCache.value;\r\n this.wasmContext.SCRTFillTextureAbgr(tsrTexture, this.width, this.height, this.intermediateVector);\r\n };\r\n CanvasTexture.prototype.applyOpacity = function (opacity) {\r\n this.wasmContext.SCRTMultiplyColorVectorOpacity(this.originalIntermediateVector, this.intermediateVector, opacity);\r\n var tsrTexture = this.tsrTextureCache.value;\r\n this.wasmContext.SCRTFillTextureAbgr(tsrTexture, this.width, this.height, this.intermediateVector);\r\n };\r\n return CanvasTexture;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.CanvasTexture = CanvasTexture;\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DpiHelper = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\nvar Thickness_1 = require(\"../../../Core/Thickness\");\r\nvar SciChartSurfaceBase_1 = require(\"../SciChartSurfaceBase\");\r\n/**\r\n * A helper class with methods and properties for DPI scaling of canvases\r\n */\r\nvar DpiHelper = /** @class */ (function () {\r\n function DpiHelper() {\r\n }\r\n /**\r\n * Static initialization function for {@link DpiHelper}. Is called once by the framework on startup\r\n */\r\n DpiHelper.initialize = function () {\r\n if (!DpiHelper.initialized) {\r\n DpiHelper.PIXEL_RATIO = 1;\r\n if (DpiHelper.IsDpiScaleEnabled && typeof window !== \"undefined\" && window.devicePixelRatio) {\r\n DpiHelper.PIXEL_RATIO = window.devicePixelRatio;\r\n }\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"Initializing Dpi Helper. Scaling factor = \" + DpiHelper.PIXEL_RATIO);\r\n }\r\n if (DpiHelper.IsDpiScaleEnabled && !app_1.IS_TEST_ENV) {\r\n window.addEventListener(\"resize\", function () {\r\n var newDpiScale = window.devicePixelRatio || 1;\r\n var lastDpiScaling = DpiHelper.PIXEL_RATIO;\r\n if (lastDpiScaling !== newDpiScale) {\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"Dpi Changing, was \".concat(lastDpiScaling, \", now \").concat(newDpiScale));\r\n }\r\n DpiHelper.PIXEL_RATIO = newDpiScale;\r\n DpiHelper.dpiChanged.raiseEvent({ newValue: newDpiScale, oldValue: lastDpiScaling });\r\n }\r\n });\r\n }\r\n DpiHelper.initialized = true;\r\n }\r\n };\r\n /**\r\n * Creates a HTML Canvas element and applies the desired width, height using the {@link PIXEL_RATIO} DPI scaling factor\r\n * @param desiredWidth\r\n * @param desiredHeight\r\n */\r\n DpiHelper.createCanvas = function (desiredWidth, desiredHeight) {\r\n if (desiredWidth === void 0) { desiredWidth = 0; }\r\n if (desiredHeight === void 0) { desiredHeight = 0; }\r\n var canvas = document.createElement(\"canvas\");\r\n if (desiredWidth && desiredHeight) {\r\n DpiHelper.setSize(canvas, desiredWidth, desiredHeight);\r\n }\r\n return canvas;\r\n };\r\n /**\r\n * Sets the desired size on an HTML Canvas element using the {@link PIXEL_RATIO} DPI scaling factor\r\n * @param canvas\r\n * @param desiredWidth\r\n * @param desiredHeight\r\n */\r\n DpiHelper.setSize = function (canvas, desiredWidth, desiredHeight) {\r\n DpiHelper.setWidth(canvas, desiredWidth);\r\n DpiHelper.setHeight(canvas, desiredHeight);\r\n };\r\n /**\r\n * Sets the desired width on an HTML Canvas element using the {@link PIXEL_RATIO} DPI scaling factor\r\n * @param canvas\r\n * @param desiredWidth\r\n */\r\n DpiHelper.setWidth = function (canvas, desiredWidth) {\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"setWidth \".concat(canvas.id, \" backBuffer=\").concat(desiredWidth * DpiHelper.PIXEL_RATIO, \" display=\").concat(desiredWidth));\r\n }\r\n // https://www.khronos.org/webgl/wiki/HandlingHighDPI\r\n // Size of drawingbuffer is set by width, height\r\n canvas.width = desiredWidth * DpiHelper.PIXEL_RATIO;\r\n };\r\n /**\r\n * Sets the desired height on an HTML Canvas element using the {@link PIXEL_RATIO} DPI scaling factor\r\n * @param canvas\r\n * @param desiredHeight\r\n */\r\n DpiHelper.setHeight = function (canvas, desiredHeight) {\r\n if (SciChartSurfaceBase_1.DebugForDpi) {\r\n console.log(\"setHeight \".concat(canvas.id, \" backBuffer=\").concat(desiredHeight * DpiHelper.PIXEL_RATIO, \" display=\").concat(desiredHeight));\r\n }\r\n // https://www.khronos.org/webgl/wiki/HandlingHighDPI\r\n // Size of drawingbuffer is set by width, height\r\n canvas.height = desiredHeight * DpiHelper.PIXEL_RATIO;\r\n };\r\n DpiHelper.adjustLineStyle = function (lineStyle, dpiScale) {\r\n if (dpiScale === void 0) { dpiScale = DpiHelper.PIXEL_RATIO; }\r\n var dpiAdjusted = __assign({}, lineStyle);\r\n dpiAdjusted.end *= dpiScale;\r\n dpiAdjusted.start *= dpiScale;\r\n dpiAdjusted.strokeThickness *= dpiScale;\r\n return dpiAdjusted;\r\n };\r\n DpiHelper.adjustTextStyle = function (textStyle, dpiScale) {\r\n if (dpiScale === void 0) { dpiScale = DpiHelper.PIXEL_RATIO; }\r\n var dpiAdjusted = __assign({}, textStyle);\r\n dpiAdjusted.fontSize = Math.round(dpiAdjusted.fontSize * dpiScale);\r\n if (textStyle.padding) {\r\n dpiAdjusted.padding = DpiHelper.adjustThickness(textStyle.padding, dpiScale);\r\n }\r\n return dpiAdjusted;\r\n };\r\n DpiHelper.adjustStrokeSize = function (gridLineStyle, dpiScale) {\r\n var _a;\r\n if (dpiScale === void 0) { dpiScale = DpiHelper.PIXEL_RATIO; }\r\n var dpiAdjusted = __assign({}, gridLineStyle);\r\n var roundedStrokeThickness = Math.round(gridLineStyle.strokeThickness * dpiScale);\r\n dpiAdjusted.strokeDashArray = (_a = gridLineStyle.strokeDashArray) === null || _a === void 0 ? void 0 : _a.map(function (sd) { return Math.round(sd * dpiScale); });\r\n dpiAdjusted.strokeThickness =\r\n roundedStrokeThickness > 0 || gridLineStyle.strokeThickness === 0 ? roundedStrokeThickness : 1;\r\n return dpiAdjusted;\r\n };\r\n DpiHelper.adjustThickness = function (thickness, dpiScale) {\r\n if (dpiScale === void 0) { dpiScale = DpiHelper.PIXEL_RATIO; }\r\n return new Thickness_1.Thickness(Math.round(thickness.top * dpiScale), Math.round(thickness.right * dpiScale), Math.round(thickness.bottom * dpiScale), Math.round(thickness.left * dpiScale));\r\n };\r\n /**\r\n * When true, automatically adjust chart resolution for sharper images on high DPI screens\r\n */\r\n DpiHelper.IsDpiScaleEnabled = true;\r\n /**\r\n * Event you can subscribe to for Dpi Changes. See {@link EventHandler} for subscription syntax. Remember to unsubscribe to prevent memory leaks!\r\n */\r\n DpiHelper.dpiChanged = new EventHandler_1.EventHandler();\r\n return DpiHelper;\r\n}());\r\nexports.DpiHelper = DpiHelper;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.measureTextWidth = exports.measureTextHeight = exports.TextureManager = void 0;\r\nvar app_1 = require(\"../../../constants/app\");\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar AxisAlignment_1 = require(\"../../../types/AxisAlignment\");\r\nvar LabelAlignment_1 = require(\"../../../types/LabelAlignment\");\r\nvar font_1 = require(\"../../../utils/font\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar NativeObject_1 = require(\"../Helpers/NativeObject\");\r\nvar DpiHelper_1 = require(\"./DpiHelper\");\r\n/** @ignore */\r\nvar DEFAULT_HEIGHT = 1080;\r\n/** @ignore */\r\nvar DEFAULT_WIDTH = 1920;\r\n/** @ignore */\r\nvar PT_TO_PX = 96 / 72;\r\n/** @ignore */\r\nvar PX_TO_PT = 72 / 96;\r\nvar TextureManager = /** @class */ (function (_super) {\r\n __extends(TextureManager, _super);\r\n function TextureManager(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n if (!app_1.IS_TEST_ENV) {\r\n _this.canvas = document.createElement(\"canvas\");\r\n _this.canvas.width = DEFAULT_WIDTH;\r\n _this.canvas.height = DEFAULT_HEIGHT;\r\n _this.ctx = _this.canvas.getContext(\"2d\", { willReadFrequently: true });\r\n }\r\n return _this;\r\n }\r\n TextureManager.prototype.createSimpleTextTexture = function (text, textStyle, backgroundColor, displayVertically, displayMirrored, opacity) {\r\n var rotation = 0;\r\n if (displayVertically) {\r\n if (displayMirrored) {\r\n rotation = 90;\r\n }\r\n else {\r\n rotation = -90;\r\n }\r\n }\r\n return this.createTextTexture([text], textStyle, rotation, undefined, backgroundColor, opacity);\r\n };\r\n /**\r\n * Create a text texture supporting multiline and arbitrary rotation\r\n * @param text\r\n * @param textStyle\r\n * @param rotation\r\n * @param lineSpacing Expressed as a fraction of the font size. Default 1.1\r\n * @param backgroundColor\r\n * @param opacity\r\n * @returns\r\n */\r\n TextureManager.prototype.createTextTextureNative = function (text, textStyle, rotation, lineSpacing, backgroundColor, opacity) {\r\n var fontStyle = textStyle.fontStyle, fontWeight = textStyle.fontWeight, fontFamily = textStyle.fontFamily, fontSizePx = textStyle.fontSize, padding = textStyle.padding, alignment = textStyle.alignment, color = textStyle.color;\r\n var nativeContext = this.webAssemblyContext.SCRTGetMainRenderContext2D();\r\n // TODO support rotation, spacing and alignment\r\n var fontKey = (0, NativeObject_1.getFontKey)(this.webAssemblyContext, { fontFamily: fontFamily, fontSize: fontSizePx !== null && fontSizePx !== void 0 ? fontSizePx : 12 });\r\n var bgColor = backgroundColor ? (0, parseColor_1.parseColorToUIntArgb)(backgroundColor) : 0;\r\n var bitmapTexture = nativeContext.CreateTextTextureColored(fontKey, text.join(\"\\n\"), (0, parseColor_1.parseColorToUIntArgb)(color), bgColor);\r\n this.webAssemblyContext.SCRTSetTextureLinearSamplerEnabled(bitmapTexture, false);\r\n var textureWidth = bitmapTexture.GetWidth();\r\n var textureHeight = bitmapTexture.GetHeight();\r\n return {\r\n bitmapTexture: bitmapTexture,\r\n textureWidth: textureWidth,\r\n textureHeight: textureHeight\r\n };\r\n };\r\n /**\r\n * Create a text texture supporting multiline and arbitrary rotation\r\n * @param text\r\n * @param textStyle\r\n * @param rotation\r\n * @param lineSpacing Expressed as a fraction of the font size. Default 1.1\r\n * @param backgroundColor\r\n * @param opacity\r\n * @returns\r\n */\r\n TextureManager.prototype.createTextTexture = function (text, textStyle, rotation, lineSpacing, backgroundColor, opacity) {\r\n var _a;\r\n if (app_1.IS_TEST_ENV) {\r\n return { bitmapTexture: undefined, textureWidth: 1, textureHeight: 1 };\r\n }\r\n var fontStyle = textStyle.fontStyle, fontWeight = textStyle.fontWeight, fontFamily = textStyle.fontFamily, fontSizePx = textStyle.fontSize, padding = textStyle.padding, alignment = textStyle.alignment, color = textStyle.color;\r\n // Save state\r\n this.ctx.save();\r\n this.ctx.globalAlpha = opacity !== null && opacity !== void 0 ? opacity : 1;\r\n this.ctx.textBaseline = \"alphabetic\";\r\n // Switched this back to alphabetic because...reasons\r\n // https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-textbaseline-alphabetic\r\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n if (backgroundColor) {\r\n this.ctx.fillStyle = backgroundColor;\r\n this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\r\n }\r\n this.ctx.fillStyle = color;\r\n this.ctx.font = (0, font_1.getFontString)(fontStyle, fontWeight, fontSizePx, fontFamily);\r\n var textureWidth = 0;\r\n // const fontSizePt = Math.ceil(fontSizePx * PX_TO_PT);\r\n var textureHeight = padding.top + padding.bottom;\r\n var maxLineHeight = 0;\r\n var firstLineOffset = 0;\r\n var lineHeights = [];\r\n for (var index = 0; index < text.length; index++) {\r\n var line = text[index];\r\n var textMeasure = this.ctx.measureText(line);\r\n var lineHeight = Math.round(textMeasure.actualBoundingBoxAscent + textMeasure.actualBoundingBoxDescent);\r\n lineHeights.push(lineHeight);\r\n if (lineHeight > maxLineHeight) {\r\n maxLineHeight = lineHeight;\r\n }\r\n if (index === 0) {\r\n firstLineOffset = textMeasure.actualBoundingBoxAscent;\r\n }\r\n var lineWidth = Math.round(textMeasure.width + padding.left + padding.right);\r\n if (lineWidth > textureWidth) {\r\n textureWidth = lineWidth;\r\n }\r\n textureHeight += lineHeight;\r\n }\r\n var lineSpacingPixels = Math.round(maxLineHeight * ((lineSpacing !== null && lineSpacing !== void 0 ? lineSpacing : 1.1) - 1));\r\n textureHeight += (text.length - 1) * lineSpacingPixels;\r\n var y = padding.top + firstLineOffset;\r\n var x = padding.left;\r\n if (!textureWidth || !textureHeight) {\r\n return { bitmapTexture: undefined, textureWidth: textureWidth, textureHeight: textureHeight };\r\n }\r\n var newTextureWidth = textureWidth;\r\n var newTextureHeight = textureHeight;\r\n if (rotation) {\r\n // convert to radians\r\n var rotationRad = (rotation * Math.PI) / 180;\r\n // We need to Math.ceil to fix rotation for WebGL1\r\n newTextureWidth = Math.round(textureWidth * Math.abs(Math.cos(rotationRad)) + textureHeight * Math.abs(Math.sin(rotationRad)));\r\n newTextureHeight = Math.round(textureWidth * Math.abs(Math.sin(rotationRad)) + textureHeight * Math.abs(Math.cos(rotationRad)));\r\n // translate to the center of rectangle\r\n this.ctx.translate(newTextureWidth / 2, newTextureHeight / 2);\r\n this.ctx.rotate(rotationRad);\r\n // translate to the new origin that is located in the left top center of the texture\r\n this.ctx.translate(-textureWidth / 2, -textureHeight / 2);\r\n }\r\n var multilineAlignment = (_a = textStyle.multilineAlignment) !== null && _a !== void 0 ? _a : alignment;\r\n var maxLineTextWidth = textureWidth - padding.right - padding.left;\r\n for (var index = 0; index < text.length; index++) {\r\n var line = text[index];\r\n if (multilineAlignment === LabelAlignment_1.ELabelAlignment.Center || multilineAlignment === LabelAlignment_1.ELabelAlignment.Right) {\r\n var lineWidth = (0, exports.measureTextWidth)(this.ctx, line);\r\n x =\r\n multilineAlignment === LabelAlignment_1.ELabelAlignment.Right\r\n ? textureWidth - lineWidth - padding.right\r\n : (maxLineTextWidth - lineWidth) / 2 + padding.left;\r\n }\r\n this.ctx.fillText(line, Math.round(x), Math.round(y));\r\n y += lineHeights[index] + lineSpacingPixels;\r\n }\r\n this.ctx.strokeStyle = color;\r\n this.ctx.restore();\r\n // Useful for debugging rotated textures\r\n // this.ctx.beginPath();\r\n // this.ctx.rect(0, 0, newTextureWidth, newTextureHeight);\r\n // this.ctx.stroke();\r\n return this.createTextureFromCtxBuffer(newTextureWidth, newTextureHeight);\r\n };\r\n TextureManager.prototype.createAxisMarkerTexture = function (axisAlignment, text, fontStyle, fontWeight, fontSizePx, fontFamily, color, padding, backgroundColor, opacity) {\r\n if (padding === void 0) { padding = 0; }\r\n this.ctx.globalAlpha = opacity !== null && opacity !== void 0 ? opacity : 1;\r\n this.ctx.textBaseline = \"top\";\r\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n this.ctx.font = (0, font_1.getFontString)(fontStyle, fontWeight, fontSizePx, fontFamily);\r\n var textureWidth = (0, exports.measureTextWidth)(this.ctx, text) + 4 * padding;\r\n var textureHeight = (0, exports.measureTextHeight)(fontSizePx) + 2 * padding;\r\n var _a = calcAxisMarkerTextureParams(textureHeight, textureWidth, text, axisAlignment), angle = _a.angle, alignmentLeft = _a.alignmentLeft, alignmentTop = _a.alignmentTop, finalTextureWidth = _a.finalTextureWidth, finalTextureHeight = _a.finalTextureHeight, halfHeight = _a.halfHeight;\r\n this.ctx.save();\r\n this.ctx.translate((textureWidth + halfHeight) / 2, textureHeight / 2);\r\n this.ctx.rotate(angle);\r\n this.ctx.translate(alignmentLeft, alignmentTop);\r\n if (backgroundColor) {\r\n var region = new Path2D();\r\n var height = textureHeight;\r\n var width = textureWidth;\r\n region.moveTo(0, 0);\r\n region.lineTo(width, 0);\r\n region.lineTo(halfHeight + width, halfHeight);\r\n region.lineTo(width, height);\r\n region.lineTo(0, height);\r\n region.closePath();\r\n this.ctx.fillStyle = backgroundColor;\r\n this.ctx.fill(region);\r\n }\r\n // const fontSizePt = Math.ceil(fontSizePx * PX_TO_PT);\r\n if (axisAlignment !== AxisAlignment_1.EAxisAlignment.Right) {\r\n this.ctx.fillStyle = color;\r\n this.ctx.fillText(text, 2 * padding, padding);\r\n }\r\n this.ctx.restore();\r\n // display label in default orientation if marker is placed on the right side\r\n if (axisAlignment === AxisAlignment_1.EAxisAlignment.Right) {\r\n this.ctx.fillStyle = color;\r\n this.ctx.fillText(text, 2 * padding + halfHeight, padding);\r\n }\r\n // uncomment this line to get texture width and height to use in unit tests\r\n // console.log(\"createAxisMarkerTexture width, height\", finalTextureWidth, finalTextureHeight);\r\n return this.createTextureFromCtxBuffer(finalTextureWidth, finalTextureHeight);\r\n };\r\n /**\r\n * Creates {@link TSRTexture} from image\r\n * @param image The image\r\n * @param imageWidth The image width, not premultiplied value\r\n * @param imageHeight The image height, not premultiplied value\r\n */\r\n TextureManager.prototype.createTextureFromImage = function (image, imageWidth, imageHeight) {\r\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n var width = (imageWidth !== null && imageWidth !== void 0 ? imageWidth : image.width) * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var height = (imageHeight !== null && imageHeight !== void 0 ? imageHeight : image.height) * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n this.ctx.drawImage(image, 0, 0, width, height);\r\n return this.createTextureFromCtxBuffer(width, height);\r\n };\r\n TextureManager.prototype.getTextureContext = function (width, height) {\r\n if (app_1.IS_TEST_ENV)\r\n return undefined;\r\n if (width > this.canvas.width) {\r\n this.canvas.width = width;\r\n }\r\n if (height > this.canvas.height) {\r\n this.canvas.height = height;\r\n }\r\n // TODO it's not clear if this is actually required, and it's slow.\r\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n return this.ctx;\r\n };\r\n TextureManager.prototype.createTextureFromCtxBuffer = function (textureWidth, textureHeight) {\r\n var imageData = this.ctx.getImageData(0, 0, textureWidth, textureHeight);\r\n return this.createTextureFromImageData(imageData, textureWidth, textureHeight);\r\n };\r\n TextureManager.prototype.createTextureFromImageData = function (imageData, textureWidth, textureHeight) {\r\n var textureFormat = this.webAssemblyContext.eTSRTextureFormat.TSR_TEXTUREFORMAT_A8B8G8R8;\r\n var bitmapTexture = this.webAssemblyContext.SCRTCreateBitmapTexture(textureWidth, textureHeight, textureFormat);\r\n var buffer;\r\n try {\r\n // const imageData = this.ctx.getImageData(0, 0, textureWidth, textureHeight);\r\n var clampedCharArray = imageData.data;\r\n /// because plain c functions were receiving the object pointer as null, this is the way around that...\r\n this.webAssemblyContext.SCRTSetActiveTexture(bitmapTexture);\r\n // Allocate some space in the heap for the data (making sure to use the appropriate memory size)\r\n // @ts-ignore\r\n buffer = this.webAssemblyContext._malloc(clampedCharArray.length);\r\n // Assign the data to the heap - Keep in mind bytes per element\r\n // @ts-ignore\r\n this.webAssemblyContext.HEAP8.set(clampedCharArray, buffer);\r\n // Call the function with \"number\" parameter type for the array (the pointer), and an extra length parameter\r\n // @ts-ignore\r\n var result = this.webAssemblyContext.ccall(\"SCRTFillActiveTextureCharArray\", null, [\"number\", \"number\", \"number\"], [textureWidth, textureHeight, buffer]);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n // This needs to happen in finally block, otherwise thrown errors will stop code execution before\r\n // @ts-ignore\r\n this.webAssemblyContext._free(buffer);\r\n // @shady : Textures with text should use point sampling, not linear, to prevent black edges issue\r\n this.webAssemblyContext.SCRTSetTextureLinearSamplerEnabled(bitmapTexture, false);\r\n }\r\n return {\r\n bitmapTexture: bitmapTexture,\r\n textureWidth: textureWidth,\r\n textureHeight: textureHeight\r\n };\r\n };\r\n TextureManager.prototype.delete = function () {\r\n this.canvas = undefined;\r\n this.ctx = undefined;\r\n this.webAssemblyContext = undefined;\r\n };\r\n TextureManager.prototype.createTextureFromCtx = function (textureWidth, textureHeight) {\r\n // TODO: Michael cache the canvas, UIntVector, bitmapTexture unless size changed\r\n // Logger.log(`New Texture: Size is ${textureWidth}, ${textureHeight}`);\r\n var imageData = this.ctx.getImageData(0, 0, textureWidth, textureHeight);\r\n // Array of Uint8\r\n var imageArr = imageData.data;\r\n // Array of Uint32\r\n var size = textureWidth * textureHeight;\r\n var aPixels = new this.webAssemblyContext.UIntVector();\r\n // Set initial capacity and fill with zeros\r\n aPixels.resize(size, 0);\r\n for (var i = 0; i < size; i++) {\r\n var el = i * 4;\r\n var a = imageArr[el + 3];\r\n // Only set pixels that are not alpha=0\r\n if (a !== 0) {\r\n var r = imageArr[el];\r\n var g = imageArr[el + 1];\r\n var b = imageArr[el + 2];\r\n // tslint:disable-next-line:no-bitwise\r\n var pixel = (a << 24) | (b << 16) | (g << 8) | r;\r\n // tslint:disable-next-line:no-bitwise\r\n aPixels.set(i, pixel >>> 0);\r\n }\r\n }\r\n // TODO: Consider faster ways of transferring memory to WebAssembly\r\n // e.g. can we do this? https://github.com/WebAssembly/design/issues/1231\r\n var textureFormat = this.webAssemblyContext.eTSRTextureFormat.TSR_TEXTUREFORMAT_A8B8G8R8;\r\n var bitmapTexture = this.webAssemblyContext.SCRTCreateBitmapTexture(textureWidth, textureHeight, textureFormat);\r\n this.webAssemblyContext.SCRTFillTextureAbgr(bitmapTexture, textureWidth, textureHeight, aPixels);\r\n aPixels.delete();\r\n return {\r\n bitmapTexture: bitmapTexture,\r\n textureWidth: textureWidth,\r\n textureHeight: textureHeight\r\n };\r\n };\r\n return TextureManager;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.TextureManager = TextureManager;\r\nvar measureTextHeight = function (fontSizePx) { return fontSizePx; };\r\nexports.measureTextHeight = measureTextHeight;\r\nvar measureTextWidth = function (ctx, text) {\r\n if (app_1.IS_TEST_ENV)\r\n return 1;\r\n var textMeasure = ctx.measureText(text);\r\n return Math.ceil(textMeasure.width);\r\n};\r\nexports.measureTextWidth = measureTextWidth;\r\n/** @ignore */\r\nvar calcAxisMarkerTextureParams = function (textureHeight, textureWidth, text, axisAlignment) {\r\n var halfHeight = Math.ceil(textureHeight / 2);\r\n var angle = 0;\r\n var alignmentLeft = 0;\r\n var alignmentTop = 0;\r\n var finalTextureWidth = textureWidth + halfHeight;\r\n var finalTextureHeight = textureHeight;\r\n switch (axisAlignment) {\r\n case AxisAlignment_1.EAxisAlignment.Left:\r\n angle = 0;\r\n alignmentLeft = -(textureWidth + halfHeight) / 2;\r\n alignmentTop = -textureHeight / 2;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Top:\r\n angle = Math.PI * 0.5;\r\n alignmentLeft = -textureHeight / 2;\r\n alignmentTop = (textureWidth + halfHeight) / 2 - textureHeight;\r\n finalTextureWidth = textureHeight;\r\n finalTextureHeight = textureWidth + halfHeight;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Right:\r\n angle = Math.PI;\r\n alignmentLeft = -(textureWidth + halfHeight) / 2;\r\n alignmentTop = -textureHeight / 2;\r\n break;\r\n case AxisAlignment_1.EAxisAlignment.Bottom:\r\n angle = Math.PI * 1.5;\r\n alignmentLeft = -textureWidth;\r\n alignmentTop = -(textureWidth + halfHeight) / 2;\r\n finalTextureWidth = textureHeight;\r\n finalTextureHeight = textureWidth + halfHeight;\r\n break;\r\n }\r\n return { angle: angle, alignmentLeft: alignmentLeft, alignmentTop: alignmentTop, finalTextureWidth: finalTextureWidth, finalTextureHeight: finalTextureHeight, halfHeight: halfHeight };\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UpdateSuspender = void 0;\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Dictionary_1 = require(\"../../Core/Dictionary\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\n/**\r\n * A class which allows nested suspend/resume operations on an {@link ISuspendable} target\r\n */\r\nvar UpdateSuspender = /** @class */ (function (_super) {\r\n __extends(UpdateSuspender, _super);\r\n /**\r\n * Creates an instance of an {@link UpdateSuspender}\r\n * @param target The target that we want to suspend. Multiple nested suspend/resumes are permitted\r\n * @param shouldResumeTarget This flag is passed through to the target on resume\r\n */\r\n function UpdateSuspender(target, shouldResumeTarget) {\r\n if (shouldResumeTarget === void 0) { shouldResumeTarget = true; }\r\n var _this = _super.call(this) || this;\r\n _this.resumeTargetProperty = shouldResumeTarget;\r\n _this.targetProperty = target;\r\n if (!UpdateSuspender.suspendedInstances.containsKey(_this.targetProperty.suspendableId)) {\r\n UpdateSuspender.suspendedInstances.add(target.suspendableId, {\r\n id: target.suspendableId,\r\n suspendable: target,\r\n suspendCount: 1\r\n });\r\n }\r\n else {\r\n _this.increment(target);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Get whether the provided {@link ISuspendable} instance is suspended or not\r\n * @param target The target {@link ISuspendable}\r\n */\r\n UpdateSuspender.getIsSuspended = function (target) {\r\n return UpdateSuspender.suspendedInstances.containsKey(target.suspendableId);\r\n };\r\n /**\r\n * A helper function to perform multiple operations in a single batch with a single redraw at the end\r\n * @remarks Implements the .suspendUpdates() and .resume() pattern around a function.\r\n * Equivalent to calling target.suspendUpdates(), batchOperation() then .resume()\r\n * @param target The target that we want to suspend and resume around a batch operation\r\n * @param batchOperation\r\n */\r\n UpdateSuspender.using = function (target, batchOperation) {\r\n Guard_1.Guard.notNull(target, \"target\");\r\n var s = target.suspendUpdates();\r\n try {\r\n batchOperation();\r\n }\r\n finally {\r\n s.resume();\r\n }\r\n };\r\n Object.defineProperty(UpdateSuspender.prototype, \"isSuspended\", {\r\n /**\r\n * Gets whether the current instance is suspended\r\n */\r\n get: function () {\r\n return UpdateSuspender.getIsSuspended(this.targetProperty);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UpdateSuspender.prototype, \"shouldResumeTarget\", {\r\n /**\r\n * Gets whether the target should resume once updates are resumed\r\n */\r\n get: function () {\r\n return this.resumeTargetProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Call this to resume drawing on the target {@link ISuspendable}\r\n */\r\n UpdateSuspender.prototype.resume = function () {\r\n this.targetProperty.decrementSuspend();\r\n if (this.decrement(this.targetProperty) === 0) {\r\n this.remove();\r\n this.targetProperty.resumeUpdates(this);\r\n }\r\n };\r\n UpdateSuspender.prototype.delete = function () {\r\n this.remove();\r\n this.targetProperty = undefined;\r\n };\r\n UpdateSuspender.prototype.remove = function () {\r\n UpdateSuspender.suspendedInstances.remove(this.targetProperty.suspendableId);\r\n };\r\n UpdateSuspender.prototype.increment = function (target) {\r\n UpdateSuspender.suspendedInstances.item(target.suspendableId).suspendCount++;\r\n };\r\n UpdateSuspender.prototype.decrement = function (target) {\r\n var current = UpdateSuspender.suspendedInstances.item(target.suspendableId).suspendCount;\r\n current--;\r\n UpdateSuspender.suspendedInstances.item(target.suspendableId).suspendCount = current;\r\n return current;\r\n };\r\n /**\r\n * USED INTERNALLY: A map of string Id to Suspended instances\r\n */\r\n UpdateSuspender.suspendedInstances = new Dictionary_1.Dictionary();\r\n return UpdateSuspender;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.UpdateSuspender = UpdateSuspender;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.copyToCanvas = void 0;\r\nvar logger_1 = require(\"../../utils/logger\");\r\n/** @ignore */\r\nvar copyToCanvas = function (sourceCanvas, getDestinationById) { return function (destinationId) {\r\n logger_1.Logger.debug(\"copyToCanvas\");\r\n var destination = getDestinationById(destinationId);\r\n var sciChartSurface = destination === null || destination === void 0 ? void 0 : destination.sciChartSurface;\r\n var destinationCanvas = destination === null || destination === void 0 ? void 0 : destination.sciChartSurface.domCanvas2D;\r\n if (destinationCanvas) {\r\n var destinationCanvasContext = destinationCanvas.getContext(\"2d\");\r\n destinationCanvasContext.clearRect(0, 0, destinationCanvasContext.canvas.width, destinationCanvasContext.canvas.height);\r\n destinationCanvasContext.drawImage(sourceCanvas, 0, 0);\r\n // destinationCanvasContext.drawImage(sourceCanvas,\r\n // 0, 0,\r\n // sourceCanvas.width,\r\n // sourceCanvas.height,\r\n // 0, 0,\r\n // destinationCanvas.clientWidth, destinationCanvas.clientHeight);\r\n sciChartSurface.rendered.raiseEvent(sciChartSurface.isInvalidated);\r\n }\r\n}; };\r\nexports.copyToCanvas = copyToCanvas;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.monitorWebGL = exports.disposeMultiChart = exports.initializeChartEngine2D = exports.getSharedWasmContext = exports.createMultichart = void 0;\r\n// @ts-ignore\r\nvar WasmModule2D = require(\"../../_wasm/scichart2d\");\r\nvar BuildStamp_1 = require(\"../../Core/BuildStamp\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar WebGlRenderContext2D_1 = require(\"../Drawing/WebGlRenderContext2D\");\r\nvar licenseManager2D_1 = require(\"./licenseManager2D\");\r\nvar loader_1 = require(\"./loader\");\r\nvar SciChartDefaults_1 = require(\"./SciChartDefaults\");\r\nvar sciChartInitCommon_1 = require(\"./sciChartInitCommon\");\r\nvar SciChartSurface_1 = require(\"./SciChartSurface\");\r\nvar SciChartSurfaceBase_1 = require(\"./SciChartSurfaceBase\");\r\nvar Globals_1 = require(\"../../Core/Globals\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar NativeObject_1 = require(\"./Helpers/NativeObject\");\r\nvar LabelCache_1 = require(\"./Axis/LabelProvider/LabelCache\");\r\nvar MemoryUsageHelper_1 = require(\"../../utils/MemoryUsageHelper\");\r\nvar WebGlHelper_1 = require(\"../../Core/WebGlHelper\");\r\nvar logger_1 = require(\"../../utils/logger\");\r\nvar copyCanvasUtils_1 = require(\"./copyCanvasUtils\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\n// Global variables\r\n/** @ignore */\r\nvar sciChartMaster = {\r\n wasmContext: undefined,\r\n getChildSurfaces: undefined,\r\n createChildSurface: undefined\r\n};\r\n/** @ignore */\r\nvar sciChartMasterPromise;\r\n/** @ignore */\r\nvar createMultichart = function (divElement, options) { return __awaiter(void 0, void 0, void 0, function () {\r\n var canvases, loader, loaderDiv, createChildSurface, wasmContext_1, divElementId, sciChartSurface_1, err_1;\r\n var _a, _b, _c, _d, _e;\r\n return __generator(this, function (_f) {\r\n switch (_f.label) {\r\n case 0:\r\n sciChartInitCommon_1.default.checkChartDivExists(divElement);\r\n canvases = sciChartInitCommon_1.default.initCanvas(divElement, (_a = options === null || options === void 0 ? void 0 : options.widthAspect) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.heightAspect) !== null && _b !== void 0 ? _b : 0, sciChartInitCommon_1.default.ECanvasType.canvas2D, options === null || options === void 0 ? void 0 : options.disableAspect, options === null || options === void 0 ? void 0 : options.touchAction);\r\n loader = (_c = options === null || options === void 0 ? void 0 : options.loader) !== null && _c !== void 0 ? _c : new loader_1.DefaultSciChartLoader();\r\n loaderDiv = (_d = loader.addChartLoader) === null || _d === void 0 ? void 0 : _d.call(loader, canvases.domDivContainer, options === null || options === void 0 ? void 0 : options.theme);\r\n _f.label = 1;\r\n case 1:\r\n _f.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, (0, exports.initializeChartEngine2D)()];\r\n case 2:\r\n _f.sent();\r\n createChildSurface = sciChartMaster.createChildSurface, wasmContext_1 = sciChartMaster.wasmContext;\r\n divElementId = canvases.domChartRoot.id;\r\n sciChartSurface_1 = createChildSurface(divElementId, canvases, options === null || options === void 0 ? void 0 : options.theme);\r\n return [2 /*return*/, new Promise(function (resolve) {\r\n setTimeout(function () {\r\n var _a, _b;\r\n if ((_a = options === null || options === void 0 ? void 0 : options.createSuspended) !== null && _a !== void 0 ? _a : SciChartDefaults_1.SciChartDefaults.createSuspended) {\r\n // // @ts-ignore\r\n // sciChartSurface.createSuspended = true;\r\n sciChartSurface_1.suspendUpdates();\r\n }\r\n (_b = loader.removeChartLoader) === null || _b === void 0 ? void 0 : _b.call(loader, canvases.domDivContainer, loaderDiv);\r\n loaderDiv = undefined;\r\n sciChartSurface_1.setIsInitialized();\r\n resolve({ wasmContext: wasmContext_1, sciChartSurface: sciChartSurface_1 });\r\n }, 0);\r\n })];\r\n case 3:\r\n err_1 = _f.sent();\r\n console.error(err_1);\r\n // replace with div with error message\r\n (_e = loader.removeChartLoader) === null || _e === void 0 ? void 0 : _e.call(loader, canvases.domDivContainer, loaderDiv);\r\n loaderDiv = undefined;\r\n return [2 /*return*/, Promise.reject(err_1)];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nexports.createMultichart = createMultichart;\r\nvar getSharedWasmContext = function () { return __awaiter(void 0, void 0, void 0, function () {\r\n var wasmContext;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, (0, exports.initializeChartEngine2D)()];\r\n case 1:\r\n wasmContext = (_a.sent()).wasmContext;\r\n return [2 /*return*/, wasmContext];\r\n }\r\n });\r\n}); };\r\nexports.getSharedWasmContext = getSharedWasmContext;\r\nvar initializeChartEngine2D = function () { return __awaiter(void 0, void 0, void 0, function () {\r\n var mark, master;\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n mark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.EngineInitStart);\r\n WebGlHelper_1.WebGlHelper.initialize();\r\n if (!(!sciChartMaster.wasmContext || !sciChartMaster.createChildSurface || !sciChartMaster.getChildSurfaces)) return [3 /*break*/, 2];\r\n if (!sciChartMasterPromise) {\r\n (0, licenseManager2D_1.forceReapplyLicense2D)();\r\n sciChartMasterPromise = createMaster();\r\n }\r\n return [4 /*yield*/, sciChartMasterPromise];\r\n case 1:\r\n master = _b.sent();\r\n sciChartMaster.wasmContext = master.wasmContext;\r\n (0, BuildStamp_1.checkBuildStamp)(master.wasmContext);\r\n sciChartMaster.createChildSurface = master.createChildSurface;\r\n sciChartMaster.getChildSurfaces = master.getChildSurfaces;\r\n (0, exports.monitorWebGL)(master.wasmContext);\r\n _b.label = 2;\r\n case 2:\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.EngineInitEnd, { relatedId: (_a = mark === null || mark === void 0 ? void 0 : mark.detail) === null || _a === void 0 ? void 0 : _a.relatedId });\r\n return [2 /*return*/, sciChartMasterPromise];\r\n }\r\n });\r\n}); };\r\nexports.initializeChartEngine2D = initializeChartEngine2D;\r\nvar cleanupWasmContext;\r\n/** @ignore */\r\nvar disposeMultiChart = function () {\r\n if (cleanupWasmContext) {\r\n cleanupWasmContext();\r\n }\r\n sciChartMaster.createChildSurface = undefined;\r\n sciChartMaster.getChildSurfaces = undefined;\r\n sciChartMaster.wasmContext = undefined;\r\n sciChartMasterPromise = undefined;\r\n // TODO make sure it works properly in combination with createSingle & 3D\r\n licenseManager2D_1.licenseManager.clear();\r\n};\r\nexports.disposeMultiChart = disposeMultiChart;\r\n/** @ignore */\r\nvar monitorWebGL = function (wasmContext) {\r\n var restoreContext = function () {\r\n // restart the engine\r\n wasmContext.SCRTInitEngine2D();\r\n wasmContext.TSRSetDrawRequestsEnabled(true);\r\n };\r\n var webGLLostContextEventHandler = function (event) {\r\n console.warn(\"WebGL context lost: \", event.statusMessage);\r\n event.preventDefault();\r\n // invalidate WebGl Resources\r\n WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.forEach(function (penCache) {\r\n penCache.invalidateCache();\r\n });\r\n // invalidate Labels Cache\r\n LabelCache_1.labelCache.resetCache();\r\n // invalidate native object cache\r\n (0, NativeObject_1.deleteCache)(wasmContext);\r\n // stop the engine\r\n wasmContext.SCRTShutdownEngine2D();\r\n };\r\n var webGLRestoredContextHandler = function (event) {\r\n console.warn(\"WebGL context restored: \", event.statusMessage);\r\n restoreContext();\r\n };\r\n wasmContext.canvas.addEventListener(\"webglcontextlost\", webGLLostContextEventHandler, false);\r\n wasmContext.canvas.addEventListener(\"webglcontextrestored\", webGLRestoredContextHandler, false);\r\n};\r\nexports.monitorWebGL = monitorWebGL;\r\n/** @ignore */\r\nvar createMaster = function () {\r\n var createChildSurfaceInner = function (wasmContext, divElementId, canvases, theme) {\r\n Guard_1.Guard.notNull(theme, \"theme\");\r\n var sciChartSurface = new SciChartSurface_1.SciChartSurface(wasmContext, { canvases: canvases });\r\n sciChartSurface.applyTheme(theme);\r\n var unsub = sciChartInitCommon_1.default.subscribeToResize(canvases.domChartRoot, canvases.aspect, sciChartSurface, canvases.disableAspect);\r\n sciChartSurface.addDeletable(unsub);\r\n sciChartSurface.setDestinations(Globals_1.sciChartDestinations);\r\n return sciChartSurface;\r\n };\r\n var addDestination = function (wasmContext, canvasElementId, sciChartSurface, width, height, chartInitObj) {\r\n var newDestination = (0, SciChartSurfaceBase_1.createChartDestination)(sciChartSurface.domCanvas2D);\r\n if (!newDestination) {\r\n sciChartSurface.delete();\r\n return;\r\n }\r\n var dest = wasmContext.SCRTSurfaceDestination.implement(newDestination);\r\n chartInitObj.AddDestination(dest);\r\n chartInitObj.SetFPSCounterEnabled(false);\r\n Globals_1.sciChartDestinations.push({ canvasElementId: canvasElementId, sciChartSurface: sciChartSurface, width: width, height: height });\r\n };\r\n return new Promise(function (resolve, reject) {\r\n // make sure canvas has event listener for context creation error\r\n var canvas = (0, SciChartSurfaceBase_1.getMasterCanvas)();\r\n var locateFile = (0, SciChartSurfaceBase_1.getLocateFile)(SciChartSurface_1.sciChartConfig);\r\n // @ts-ignore\r\n new WasmModule2D({ locateFile: locateFile, noInitialRun: true })\r\n .then(function (originalWasmContext, anythingElse) {\r\n var revocable = (0, DeletableEntity_1.createWasmContextRevocableProxy)(originalWasmContext);\r\n var wasmContext = revocable.proxy;\r\n cleanupWasmContext = function () {\r\n LabelCache_1.labelCache.resetCache();\r\n // Halt the engine\r\n wasmContext.TSRRequestExit();\r\n frameRenderer2D.delete();\r\n // wasmContext.SCRTGetGlobalSampleChartInterface().GetFrameRenderer().delete();\r\n wasmContext.SCRTGetGlobalSampleChartInterface().SetFrameRenderer(null);\r\n wasmContext.SCRTGetGlobalSampleChartInterface().delete();\r\n wasmContext.SCRTSetGlobalSampleChartInterface(null);\r\n (0, NativeObject_1.deleteCache)(wasmContext);\r\n canvasCopyObj.delete();\r\n wasmContext.SCRTSetGlobalCopyToDestinationInterface(null);\r\n revocable.revoke();\r\n revocable = undefined;\r\n cleanupWasmContext = undefined;\r\n };\r\n var frameRenderer2D = new wasmContext.SCRTFrameRenderer2D();\r\n /// create an object that native side can trigger the copy to from...\r\n var canvasCopyObj = wasmContext.SCRTCopyToDestinationInterface.implement({\r\n CopyToDestination: (0, copyCanvasUtils_1.copyToCanvas)(SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas, getDestinationById)\r\n });\r\n var getChildSurfaces = function () { return Globals_1.sciChartDestinations.map(function (el) { return el.sciChartSurface; }); };\r\n // Create of replace child surface\r\n var createChildSurface = function (divElementId, canvases, theme) {\r\n Guard_1.Guard.notNull(theme, \"theme\");\r\n var canvas2dId = sciChartInitCommon_1.default.getCanvas2dId(divElementId);\r\n // TODO check other destinations\r\n var sameIdDestinations = Globals_1.sciChartDestinations.filter(function (el) { return el.canvasElementId === canvas2dId; });\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled && sameIdDestinations.length > 0) {\r\n console.warn(\"Trying to create a SciChartSurface on a root element (\".concat(divElementId, \") of another surface before it was deleted ! This will automatically delete the previous surface.\"));\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n var otherDestinations = Globals_1.sciChartDestinations.filter(function (el) { return el.canvasElementId !== canvas2dId; });\r\n chartInitObj.ClearDestinations();\r\n while (Globals_1.sciChartDestinations.length > 0) {\r\n Globals_1.sciChartDestinations.pop();\r\n }\r\n otherDestinations.forEach(function (el) {\r\n return addDestination(wasmContext, el.canvasElementId, el.sciChartSurface, el.width, el.height, chartInitObj);\r\n });\r\n var sciChartSurface = createChildSurfaceInner(wasmContext, divElementId, canvases, theme);\r\n sciChartSurface.addDeletable({\r\n delete: function () {\r\n if (SciChartSurface_1.SciChartSurface.autoDisposeWasmContext && sciChartSurface.otherSurfaces.length === 0) {\r\n if (SciChartSurface_1.SciChartSurface.wasmContextDisposeTimeout) {\r\n setTimeout(function () {\r\n if (Globals_1.sciChartDestinations.length === 0) {\r\n SciChartSurface_1.SciChartSurface.disposeSharedWasmContext();\r\n }\r\n }, SciChartSurface_1.SciChartSurface.wasmContextDisposeTimeout);\r\n }\r\n else {\r\n SciChartSurface_1.SciChartSurface.disposeSharedWasmContext();\r\n }\r\n }\r\n else {\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled &&\r\n sciChartSurface.otherSurfaces.length === 0) {\r\n console.warn(\"SciChartSurface.autoDisposeWasmContext is disabled, thus wasmContext should be disposed explicitly using \\\"SciChartSurface.disposeSharedWasmContext()\\\".\");\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n }\r\n }\r\n });\r\n addDestination(wasmContext, canvas2dId, sciChartSurface, canvases.domCanvas2D.width, canvases.domCanvas2D.height, chartInitObj);\r\n sameIdDestinations.forEach(function (el) { return el.sciChartSurface.delete(false); });\r\n licenseManager2D_1.licenseManager.applyLicense2D(wasmContext, sciChartSurface, false);\r\n return sciChartSurface;\r\n };\r\n wasmContext.canvas = canvas;\r\n var chartInitializer = {\r\n InitializeChart: function () {\r\n logger_1.Logger.debug(\"InitializeChart\");\r\n resolve({ getChildSurfaces: getChildSurfaces, createChildSurface: createChildSurface, wasmContext: wasmContext });\r\n },\r\n Draw: function (canvasId) {\r\n logger_1.Logger.debug(\"Draw\", canvasId);\r\n var dest = Globals_1.sciChartDestinations.find(function (d) { return d.canvasElementId === canvasId; });\r\n if (dest) {\r\n dest.sciChartSurface.renderSurface.onRenderTimeElapsed();\r\n }\r\n },\r\n Update: function (deltaTime) {\r\n logger_1.Logger.debug(\"sciChartInitCommon.ts Update\", deltaTime);\r\n },\r\n ShutDownChart: function () {\r\n logger_1.Logger.debug(\"sciChartInitCommon.ts ShutDownChart\");\r\n }\r\n };\r\n var chartInitObj = wasmContext.SCRTSampleChartInterface.implement(chartInitializer);\r\n chartInitObj.SetFrameRenderer(frameRenderer2D);\r\n // Note: in case of createMaster this property must be set before the first chart created.\r\n // It will be shared buffer size across all charts\r\n chartInitObj.SetWasmBufferSizesKb(SciChartDefaults_1.SciChartDefaults.wasmBufferSizesKb);\r\n wasmContext.SCRTSetGlobalSampleChartInterface(chartInitObj);\r\n wasmContext.SCRTSetGlobalCopyToDestinationInterface(canvasCopyObj);\r\n wasmContext.TSRSetDrawRequestsEnabled(true);\r\n // SCJS-1321 fixes cutting 3d chart issue. 3D wasm and vice versa doesn't know about domMasterCanvas width/height\r\n // when creating one 3d chart and one 2d chart on the same screen. So we tell the other wasm about existing master canvas size\r\n if (SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas) {\r\n wasmContext.SCRTSetMainWindowSize(SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width, SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height);\r\n }\r\n // @ts-ignore\r\n wasmContext.callMain();\r\n })\r\n .catch(function (err) {\r\n console.error(err);\r\n reject(\"Could not load SciChart WebAssembly module.\\n Check your build process and ensure that your scichart2d.wasm, scichart2d.data and scichart2d.js files are from the same version\");\r\n });\r\n });\r\n};\r\n/** @ignore */\r\nvar getDestinationById = function (destinationId) {\r\n return Globals_1.sciChartDestinations.find(function (dest) { return dest.canvasElementId === destinationId; });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDrawEngineSingleChart = exports.createSingleInternal = void 0;\r\n// @ts-ignore\r\nvar WasmModule2D = require(\"../../_wasm/scichart2d\");\r\nvar BuildStamp_1 = require(\"../../Core/BuildStamp\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar WebGlHelper_1 = require(\"../../Core/WebGlHelper\");\r\nvar logger_1 = require(\"../../utils/logger\");\r\nvar licenseManager2D_1 = require(\"./licenseManager2D\");\r\nvar loader_1 = require(\"./loader\");\r\nvar SciChartDefaults_1 = require(\"./SciChartDefaults\");\r\nvar sciChartInitCommon_1 = require(\"./sciChartInitCommon\");\r\nvar SciChartSurface_1 = require(\"./SciChartSurface\");\r\nvar SciChartSurfaceBase_1 = require(\"./SciChartSurfaceBase\");\r\nvar NativeObject_1 = require(\"./Helpers/NativeObject\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Globals_1 = require(\"../../Core/Globals\");\r\nvar LabelCache_1 = require(\"./Axis/LabelProvider/LabelCache\");\r\nvar createMaster_1 = require(\"./createMaster\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\n// Global variables\r\n/** @ignore */\r\nvar createSingleInternal = function (divElement, options) {\r\n return new Promise(function (resolve, reject) {\r\n var _a, _b;\r\n var canvases = sciChartInitCommon_1.default.initCanvas(divElement, options === null || options === void 0 ? void 0 : options.widthAspect, options === null || options === void 0 ? void 0 : options.heightAspect, undefined, options === null || options === void 0 ? void 0 : options.disableAspect, options === null || options === void 0 ? void 0 : options.touchAction);\r\n var loader = (_a = options === null || options === void 0 ? void 0 : options.loader) !== null && _a !== void 0 ? _a : new loader_1.DefaultSciChartLoader();\r\n var loaderDiv = (_b = loader.addChartLoader) === null || _b === void 0 ? void 0 : _b.call(loader, canvases.domDivContainer, options === null || options === void 0 ? void 0 : options.theme);\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.EngineInitStart);\r\n var webGLSupport = WebGlHelper_1.WebGlHelper.getWebGlSupport();\r\n // console.log(\"webGLSupport\", webGLSupport);\r\n if (webGLSupport === WebGlHelper_1.EWebGLSupport.WebGL2 || webGLSupport === WebGlHelper_1.EWebGLSupport.WebGL1) {\r\n var locateFile = (0, SciChartSurfaceBase_1.getLocateFile)(SciChartSurface_1.sciChartConfig);\r\n // @ts-ignore\r\n new WasmModule2D({ locateFile: locateFile, noInitialRun: true })\r\n .then(function (wasmContext) {\r\n var _a;\r\n (_a = loader.removeChartLoader) === null || _a === void 0 ? void 0 : _a.call(loader, canvases.domDivContainer, loaderDiv);\r\n // @ts-ignore\r\n wasmContext.doNotCaptureKeyboard = true;\r\n // TODO replace workaround with proper wasmContext references cleanup\r\n // TODO use revocable only for memory debug\r\n // if (process.env.NODE_ENV !== \"production\") {\r\n var revocable = (0, DeletableEntity_1.createWasmContextRevocableProxy)(wasmContext);\r\n var customResolve = function (res) {\r\n var _a;\r\n if ((_a = options === null || options === void 0 ? void 0 : options.createSuspended) !== null && _a !== void 0 ? _a : SciChartDefaults_1.SciChartDefaults.createSuspended) {\r\n // // @ts-ignore\r\n // sciChartSurface.createSuspended = true;\r\n res.sciChartSurface.suspendUpdates();\r\n }\r\n res.sciChartSurface.addDeletable({\r\n delete: function () {\r\n revocable.revoke();\r\n revocable = undefined;\r\n }\r\n });\r\n resolve(res);\r\n };\r\n (0, exports.initDrawEngineSingleChart)(revocable.proxy, canvases, customResolve, options === null || options === void 0 ? void 0 : options.theme);\r\n // return;\r\n // }\r\n // initDrawEngineSingleChart(wasmContext, canvases, resolve, options?.theme as IThemeProvider);\r\n (0, BuildStamp_1.checkBuildStamp)(wasmContext);\r\n (0, createMaster_1.monitorWebGL)(wasmContext);\r\n })\r\n .catch(function (err) {\r\n var _a;\r\n logger_1.Logger.debug(err);\r\n (_a = loader.removeChartLoader) === null || _a === void 0 ? void 0 : _a.call(loader, canvases.domDivContainer, loaderDiv);\r\n reject(\"Could not load SciChart WebAssembly module.\\n Check your build process and ensure that your scichart2d.wasm, scichart2d.data and scichart2d.js files are from the same version\");\r\n });\r\n }\r\n else {\r\n throw Error(\"Sorry Your browser does not support WebGL.\");\r\n }\r\n });\r\n};\r\nexports.createSingleInternal = createSingleInternal;\r\n/** @ignore */\r\nvar initDrawEngineSingleChart = function (wasmContext, canvases, resolve, theme) {\r\n Guard_1.Guard.notNull(theme, \"theme\");\r\n var width = canvases.domCanvas2D.width;\r\n var height = canvases.domCanvas2D.height;\r\n // @ts-ignore\r\n wasmContext.preRun.push(function () { return (ENV.SDL_EMSCRIPTEN_KEYBOARD_ELEMENT = \"#chart_WebGL\"); });\r\n var scs;\r\n wasmContext.canvas = canvases.domCanvasWebGL;\r\n var frameRenderer2D = new wasmContext.SCRTFrameRenderer2D();\r\n var webGlCanvasId = canvases.domCanvasWebGL.id;\r\n var chartInitializer = {\r\n InitializeChart: function () {\r\n scs = new SciChartSurface_1.SciChartSurface(wasmContext, { canvases: canvases });\r\n scs.applyTheme(theme);\r\n Globals_1.sciChartSingleDestinations.push({\r\n canvasElementId: webGlCanvasId,\r\n sciChartSurface: scs,\r\n width: width,\r\n height: height\r\n });\r\n scs.setDestinations(Globals_1.sciChartSingleDestinations);\r\n scs.addDeletable({\r\n delete: function () {\r\n // Halt the engine\r\n wasmContext.TSRRequestExit();\r\n frameRenderer2D.delete();\r\n wasmContext.SCRTGetGlobalSampleChartInterface().SetFrameRenderer(null);\r\n wasmContext.SCRTGetGlobalSampleChartInterface().delete();\r\n wasmContext.SCRTSetGlobalSampleChartInterface(null);\r\n LabelCache_1.labelCache.resetCache();\r\n }\r\n });\r\n setTimeout(function () {\r\n scs.invalidateElement();\r\n licenseManager2D_1.licenseManager.applyLicense2D(wasmContext, scs, true);\r\n var unsub = sciChartInitCommon_1.default.subscribeToResize(canvases.domChartRoot, canvases.aspect, scs, canvases.disableAspect);\r\n scs.addDeletable(unsub);\r\n scs.addDeletable((0, NativeObject_1.freeCache)(wasmContext));\r\n scs.setIsInitialized();\r\n resolve({ wasmContext: wasmContext, sciChartSurface: scs });\r\n }, 0);\r\n },\r\n Draw: function (canvasId) {\r\n scs.renderSurface.onRenderTimeElapsed();\r\n },\r\n Update: function (deltaTime) {\r\n // Logger.debug(\"sciChartInitCommon.ts Update\");\r\n },\r\n ShutDownChart: function () {\r\n // Logger.debug(\"sciChartInitCommon.ts ShutDownChart\");\r\n }\r\n };\r\n var chartInitObj = wasmContext.SCRTSampleChartInterface.implement(chartInitializer);\r\n chartInitObj.SetFrameRenderer(frameRenderer2D);\r\n chartInitObj.SetFPSCounterEnabled(false);\r\n chartInitObj.SetWasmBufferSizesKb(SciChartDefaults_1.SciChartDefaults.wasmBufferSizesKb);\r\n wasmContext.SCRTSetGlobalSampleChartInterface(chartInitObj);\r\n // @ts-ignore\r\n wasmContext.callMain();\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.EngineInitEnd, { contextId: scs === null || scs === void 0 ? void 0 : scs.id });\r\n};\r\nexports.initDrawEngineSingleChart = initDrawEngineSingleChart;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.licenseManager = exports.updateLicenseDisplay = exports.getLicenseInfo = exports.applyLicense = exports.forceReapplyLicense2D = exports.getLicenseCookie = exports.setCallbacks3D = exports.setUseLicenseWizard = exports.setRuntimeLicenseKey = exports.setLicenseCallback = exports.setIsDebugLicensing = exports.setDependencies = void 0;\r\nvar app_1 = require(\"../../constants/app\");\r\nvar BuildStamp_1 = require(\"../../Core/BuildStamp\");\r\nvar Dictionary_1 = require(\"../../Core/Dictionary\");\r\nvar Globals_1 = require(\"../../Core/Globals\");\r\nvar localStorageApi_1 = require(\"../../Core/storage/localStorageApi\");\r\nvar Telemetry_1 = require(\"../../Core/Telemetry\");\r\nvar Color_1 = require(\"../../types/Color\");\r\nvar licensingClasses_1 = require(\"../../types/licensingClasses\");\r\nvar cookie_1 = require(\"../../utils/cookie\");\r\nvar licenseManager2dState_1 = require(\"./licenseManager2dState\");\r\nvar licenseWizardPort = 24278;\r\nvar licenseWizardAlternatePort = 24279;\r\nvar portOverride = localStorageApi_1.localStorageApi.getLicenseWizardPort();\r\nif (portOverride) {\r\n licenseWizardPort = portOverride;\r\n licenseWizardAlternatePort = licenseWizardPort + 1;\r\n}\r\nvar fetchFromWizard = function (path) { return __awaiter(void 0, void 0, void 0, function () {\r\n var wizardUrl, response, err_1, maxport, wizardUrl, response, err_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 9]);\r\n wizardUrl = \"http://localhost:\" + licenseWizardPort.toString() + path;\r\n return [4 /*yield*/, fetch(wizardUrl)];\r\n case 1:\r\n response = _a.sent();\r\n return [2 /*return*/, response];\r\n case 2:\r\n err_1 = _a.sent();\r\n debug(\"Could not connect to license wizard on port \" + licenseWizardPort.toString());\r\n if (!(typeof localStorage !== \"undefined\")) return [3 /*break*/, 8];\r\n maxport = localStorageApi_1.localStorageApi.getLicenseWizardMaxPort();\r\n if (!maxport) return [3 /*break*/, 8];\r\n _a.label = 3;\r\n case 3:\r\n if (!(licenseWizardAlternatePort <= maxport)) return [3 /*break*/, 8];\r\n _a.label = 4;\r\n case 4:\r\n _a.trys.push([4, 6, , 7]);\r\n wizardUrl = \"http://localhost:\" + licenseWizardAlternatePort.toString() + path;\r\n return [4 /*yield*/, fetch(wizardUrl)];\r\n case 5:\r\n response = _a.sent();\r\n licenseWizardPort = licenseWizardAlternatePort;\r\n return [2 /*return*/, response];\r\n case 6:\r\n err_2 = _a.sent();\r\n debug(\"Could not connect to license wizard on port \" + licenseWizardAlternatePort.toString());\r\n licenseWizardAlternatePort = licenseWizardAlternatePort + 1;\r\n return [3 /*break*/, 7];\r\n case 7: return [3 /*break*/, 3];\r\n case 8: throw err_1;\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar licenseDependencies = {\r\n fetchFromWizard: function (url) { return fetchFromWizard(url); },\r\n setCookie: function (name, val, validDays) { return (0, cookie_1.setCookie)(name, val, validDays); },\r\n getCookie: function (name) { return (0, cookie_1.getCookie)(name); },\r\n fetchForChallenge: function (url) { return fetch(url); },\r\n updateLicenseDisplay: function (licenseInfo, sciChartSurface, is2D, applyToOther) { return updateLicenseDisplayInternal(licenseInfo, sciChartSurface, is2D, applyToOther); },\r\n debug: function (message) { return console.log(message); }\r\n};\r\nvar setDependencies = function (dependencies) { return (licenseDependencies = dependencies); };\r\nexports.setDependencies = setDependencies;\r\nvar isDebug = null;\r\nvar setIsDebugLicensing = function (value, persist) {\r\n if (persist === void 0) { persist = false; }\r\n isDebug = value;\r\n if (persist || !value) {\r\n localStorageApi_1.localStorageApi.setIsLicenseDebug(value);\r\n }\r\n};\r\nexports.setIsDebugLicensing = setIsDebugLicensing;\r\nvar debug = function (message) {\r\n if (isDebug === null) {\r\n isDebug = localStorageApi_1.localStorageApi.getIsLicenseDebug();\r\n }\r\n if (app_1.IS_TEST_ENV || isDebug) {\r\n licenseDependencies.debug(message);\r\n }\r\n};\r\ndebug(\"SciChart version \" + BuildStamp_1.libraryVersion);\r\n// tslint:disable: no-console\r\nvar licenseCallback;\r\nvar setLicenseCallback = function (callback) {\r\n licenseCallback = callback;\r\n};\r\nexports.setLicenseCallback = setLicenseCallback;\r\nvar runtimeLicenseKey = \"\";\r\nvar getRuntimeLicenseKey = function () { return runtimeLicenseKey; };\r\nvar setRuntimeLicenseKey = function (value) {\r\n var prev = runtimeLicenseKey;\r\n runtimeLicenseKey = value;\r\n if (runtimeLicenseKey !== prev && runtimeLicenseKey !== \"\") {\r\n if (Globals_1.sciChartDestinations.length > 0) {\r\n var sciChartSurface = Globals_1.sciChartDestinations[0].sciChartSurface;\r\n // @ts-ignore\r\n (0, exports.applyLicense)(sciChartSurface.sharedWasmContext, sciChartSurface);\r\n }\r\n }\r\n};\r\nexports.setRuntimeLicenseKey = setRuntimeLicenseKey;\r\nvar useLicenseWizard = true;\r\nvar setUseLicenseWizard = function (value) {\r\n useLicenseWizard = value;\r\n};\r\nexports.setUseLicenseWizard = setUseLicenseWizard;\r\nvar retryTime = app_1.IS_TEST_ENV ? 0.1 : 5;\r\nvar maxretries = app_1.IS_TEST_ENV ? 12 : 10;\r\nvar serverLicenseEndpoint = \"api/license\";\r\nvar getServerLicenseEndpoint = function () { return serverLicenseEndpoint; };\r\nvar setServerLicenseEndpoint = function (value) {\r\n serverLicenseEndpoint = value;\r\n};\r\nvar getLicenseFailCounts = 0;\r\n// TODO cleanup on surface delete\r\nvar wizardTimer;\r\nvar licenseChallengeTimeout;\r\nvar callbacks3DInitialValue = {\r\n getLicenseChallenge3D: function () { return undefined; },\r\n setChallengeResponse3D: function (token) { return undefined; },\r\n setNewLicense3D: function (keyCode) { return undefined; },\r\n updateLicenseDisplay3D: function () { return undefined; }\r\n};\r\nvar callbacks3D = callbacks3DInitialValue;\r\nvar setCallbacks3D = function (callbacks) { return (callbacks3D = callbacks); };\r\nexports.setCallbacks3D = setCallbacks3D;\r\nvar getlicenseFromWizard = function (licenseContext, sciChartSurface) { return __awaiter(void 0, void 0, void 0, function () {\r\n var response, keyCode, _a, requiresValidation, trialExpired, err_3;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (sciChartSurface.isDeleted) {\r\n return [2 /*return*/];\r\n }\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 6, , 7]);\r\n if (checkStatus !== licensingClasses_1.LicenseCheckStatus.StartLookingForLicenseWizard &&\r\n checkStatus !== licensingClasses_1.LicenseCheckStatus.LookingForLicenseWizard &&\r\n checkStatus !== licensingClasses_1.LicenseCheckStatus.NoLicenseInWizard)\r\n return [2 /*return*/];\r\n debug(\"Trying to get license from local license wizard\");\r\n response = void 0;\r\n return [4 /*yield*/, licenseDependencies.fetchFromWizard(\"/license\")];\r\n case 2:\r\n response = _b.sent();\r\n if (!response.ok) return [3 /*break*/, 4];\r\n return [4 /*yield*/, response.text()];\r\n case 3:\r\n keyCode = _b.sent();\r\n _a = setNewLicense(keyCode, licenseContext, sciChartSurface), requiresValidation = _a.requiresValidation, trialExpired = _a.trialExpired;\r\n if (requiresValidation) {\r\n debug(\"Got a developer license from local license wizard. Validating...\");\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.ValidatingDeveloperLicense;\r\n dolicenseChallenge(licenseContext, sciChartSurface);\r\n }\r\n else if (trialExpired) {\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.NoLicenseInWizard;\r\n debug(\"No valid license available in licensing wizard. Trying again in \".concat(retryTime, \" seconds\"));\r\n wizardTimer = setTimeout(function () { return getlicenseFromWizard(licenseContext, sciChartSurface); }, retryTime * 1000);\r\n }\r\n else {\r\n debug(\"Got a valid license from local license wizard.\");\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.LicenseOK;\r\n }\r\n return [3 /*break*/, 5];\r\n case 4:\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.NoLicenseInWizard;\r\n debug(\"No license available in licensing wizard. Trying again in \".concat(retryTime, \" seconds\"));\r\n wizardTimer = setTimeout(function () { return getlicenseFromWizard(licenseContext, sciChartSurface); }, retryTime * 1000);\r\n _b.label = 5;\r\n case 5: return [3 /*break*/, 7];\r\n case 6:\r\n err_3 = _b.sent();\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.LookingForLicenseWizard;\r\n // Failed to connect. Retry\r\n getLicenseFailCounts += 1;\r\n if (getLicenseFailCounts < maxretries) {\r\n debug(\"Could not find licensing wizard. Trying again in \".concat(retryTime, \" seconds\"));\r\n wizardTimer = setTimeout(function () { return getlicenseFromWizard(licenseContext, sciChartSurface); }, retryTime * 1000);\r\n }\r\n else {\r\n // give up.\r\n console.log(\"Failed to connect to licensing wizard. Refresh page to retry.\");\r\n getLicenseFailCounts = 0;\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.FailedToFindLicenseWizard;\r\n }\r\n return [3 /*break*/, 7];\r\n case 7:\r\n if (licenseContext !== undefined && !sciChartSurface.isDeleted) {\r\n (0, exports.updateLicenseDisplay)((0, exports.getLicenseInfo)(licenseContext), sciChartSurface, true, true);\r\n callbacks3D.updateLicenseDisplay3D();\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar setLicenseCookie = function (key, token, expirySeconds, lastValidated) {\r\n var cookieVal = \"\".concat(key, \",\").concat(token, \",\").concat(expirySeconds, \",\").concat(lastValidated);\r\n return licenseDependencies.setCookie(\"scLicense\", cookieVal, 365);\r\n};\r\nvar getLicenseCookie = function () {\r\n var cookie;\r\n cookie = licenseDependencies.getCookie(\"scLicense\");\r\n var parts = cookie.split(\",\");\r\n if (parts.length === 4)\r\n /// TODO worry about UTC here\r\n return {\r\n key: parts[0],\r\n token: parts[1],\r\n expiry: new Date(Number.parseInt(parts[2], 10) * 1000),\r\n lastValidated: new Date(Number.parseInt(parts[3], 10) * 1000)\r\n };\r\n else\r\n return { key: parts[0], token: null, expiry: null, lastValidated: null };\r\n};\r\nexports.getLicenseCookie = getLicenseCookie;\r\nvar setChallengeResponse = function (token, licenseContext) {\r\n var expirySeconds = -1;\r\n if (licenseContext !== undefined) {\r\n expirySeconds = licenseContext.SCRTCredentials.ApplyLicenseResponse(token);\r\n }\r\n var expirySeconds3D = callbacks3D.setChallengeResponse3D(token);\r\n if (expirySeconds3D !== undefined)\r\n return expirySeconds3D;\r\n return expirySeconds;\r\n};\r\nvar challengeFailCounts = 0;\r\nvar dolicenseChallenge = function (licenseContext, sciChartSurface) { return __awaiter(void 0, void 0, void 0, function () {\r\n var server, challenge, orderId, response, queryString, url, url, token, expirySeconds, key, timeNow, timeToExpiry, err_4, sciChartSurface2D, expiry, msg;\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (sciChartSurface.isDeleted) {\r\n return [2 /*return*/];\r\n }\r\n server = licenseManager2dState_1.licenseManager2dState.getIsDev() ? \"license wizard\" : \"server\";\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 11, , 12]);\r\n if (checkStatus !== licensingClasses_1.LicenseCheckStatus.ValidatingDeveloperLicense)\r\n return [2 /*return*/];\r\n debug(\"Attempting to validate license with \".concat(server));\r\n challenge = void 0;\r\n orderId = void 0;\r\n if (licenseContext !== undefined) {\r\n challenge = licenseContext.SCRTCredentials.GetLicenseChallenge();\r\n orderId = licenseContext.SCRTCredentials.GetOrderId();\r\n }\r\n else {\r\n (_a = callbacks3D.getLicenseChallenge3D(), challenge = _a.challenge, orderId = _a.orderId);\r\n }\r\n response = void 0;\r\n queryString = \"orderid=\".concat(orderId, \"&challenge=\").concat(challenge);\r\n if (!licenseManager2dState_1.licenseManager2dState.getIsDev()) return [3 /*break*/, 3];\r\n url = \"/validate?\".concat(queryString);\r\n return [4 /*yield*/, licenseDependencies.fetchFromWizard(url)];\r\n case 2:\r\n response = _b.sent();\r\n return [3 /*break*/, 7];\r\n case 3:\r\n if (!(typeof licenseCallback !== \"undefined\")) return [3 /*break*/, 5];\r\n return [4 /*yield*/, licenseCallback(queryString)];\r\n case 4:\r\n response = _b.sent();\r\n return [3 /*break*/, 7];\r\n case 5:\r\n url = \"/\" + serverLicenseEndpoint + (serverLicenseEndpoint.indexOf(\"?\") > 0 ? \"&\" : \"?\") + queryString;\r\n return [4 /*yield*/, licenseDependencies.fetchForChallenge(url)];\r\n case 6:\r\n response = _b.sent();\r\n _b.label = 7;\r\n case 7:\r\n if (!response.ok) return [3 /*break*/, 9];\r\n return [4 /*yield*/, response.text()];\r\n case 8:\r\n token = _b.sent();\r\n if (!token.startsWith(\"Error\")) {\r\n expirySeconds = setChallengeResponse(token, licenseContext);\r\n if (expirySeconds > 0) {\r\n key = (0, exports.getLicenseCookie)().key;\r\n if (!key)\r\n key = getRuntimeLicenseKey();\r\n timeNow = Math.floor(new Date().getTime() / 1000);\r\n setLicenseCookie(key, token, expirySeconds, timeNow);\r\n debug(\"License validated\");\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.LicenseOK;\r\n timeToExpiry = expirySeconds - timeNow;\r\n challengeFailCounts = 0;\r\n licenseChallengeTimeout = setTimeout(function () { return dolicenseChallenge(licenseContext, sciChartSurface); }, Math.floor(timeToExpiry * 0.95 * 1000)); // Allow 5%\r\n }\r\n else {\r\n // Something went wrong with the apply\r\n debug(\"license challenge response was invalid: \" + token);\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.FailedToValidateDeveloperLicense;\r\n }\r\n }\r\n else {\r\n // Challenge rejected by server\r\n debug(\"Server rejected the license challenge: \" + token);\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.FailedToValidateDeveloperLicense;\r\n }\r\n return [3 /*break*/, 10];\r\n case 9:\r\n // Server error or network failure\r\n if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {\r\n console.warn(\"Error during license validation: \" + response.statusText);\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.FailedToValidateDeveloperLicense;\r\n }\r\n else {\r\n // switch to license wizard\r\n throw new Error(response.statusText);\r\n }\r\n _b.label = 10;\r\n case 10: return [3 /*break*/, 12];\r\n case 11:\r\n err_4 = _b.sent();\r\n // switch to license wizard\r\n if (!licenseManager2dState_1.licenseManager2dState.getIsDev()) {\r\n console.warn(\"Server license validation failed. Looking for local developer license\");\r\n runtimeLicenseKey = \"\";\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.NoLicense;\r\n licenseContext.SCRTCredentials.ResetRuntimeLicense();\r\n isRuntimeKey = false;\r\n licenseManager2dState_1.licenseManager2dState.setIsDev(true);\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.StartLookingForLicenseWizard;\r\n getlicenseFromWizard(licenseContext, sciChartSurface);\r\n if (Globals_1.sciChartDestinations.length > 0 && !sciChartSurface.isDeleted) {\r\n sciChartSurface2D = Globals_1.sciChartDestinations[0].sciChartSurface;\r\n (0, exports.updateLicenseDisplay)(\r\n //@ts-ignore\r\n (0, exports.getLicenseInfo)(sciChartSurface2D.sharedWasmContext), sciChartSurface2D, true, false);\r\n callbacks3D.updateLicenseDisplay3D();\r\n }\r\n return [2 /*return*/];\r\n }\r\n // Failed to connect. Retry\r\n challengeFailCounts += 1;\r\n if (challengeFailCounts < maxretries) {\r\n debug(\"Could not find \".concat(server, \"/\").concat(serverLicenseEndpoint, \". Trying again in \").concat(retryTime, \" seconds\"));\r\n licenseChallengeTimeout = setTimeout(function () { return dolicenseChallenge(licenseContext, sciChartSurface); }, retryTime * 1000);\r\n }\r\n else {\r\n expiry = (0, exports.getLicenseCookie)().expiry;\r\n msg = licenseManager2dState_1.licenseManager2dState.getIsDev()\r\n ? \"Please run the license wizard, ensure your license is activated, then refresh page to retry.\"\r\n : \"Please check that the endpoint is configured correctly.\";\r\n console.error(\"Failed to connect to \".concat(server, \"/\").concat(serverLicenseEndpoint, \". License must be revalidated before \").concat(expiry.toLocaleString(), \". \").concat(msg));\r\n challengeFailCounts = 0;\r\n // Only actually show failure message if token has expired\r\n if (new Date() > expiry)\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.FailedToFindLicenseWizard;\r\n }\r\n return [3 /*break*/, 12];\r\n case 12:\r\n if (licenseContext !== undefined && !sciChartSurface.isDeleted) {\r\n (0, exports.updateLicenseDisplay)((0, exports.getLicenseInfo)(licenseContext), sciChartSurface, true, true);\r\n callbacks3D.updateLicenseDisplay3D();\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar shouldApplyLicense2D = true;\r\nvar forceReapplyLicense2D = function () {\r\n shouldApplyLicense2D = true;\r\n};\r\nexports.forceReapplyLicense2D = forceReapplyLicense2D;\r\nvar checkStatus = licensingClasses_1.LicenseCheckStatus.NoLicense;\r\n// let licenseContext2D: TLicenseContext;\r\n// let sciChartSurface2D: SciChartSurfaceBase;\r\nvar isRuntimeKey = false;\r\nvar communityNotice = false;\r\nvar applyLicense2D = function (licenseContext, sciChartSurface, isSingle) {\r\n debug(\"applyLicense 2D\");\r\n // if (shouldApplyLicense2D) {\r\n // sciChartSurface2D = sciChartSurface;\r\n // licenseContext2D = licenseContext;\r\n // }\r\n if (isSingle || shouldApplyLicense2D) {\r\n (0, exports.applyLicense)(licenseContext, sciChartSurface);\r\n }\r\n else {\r\n if (checkStatus !== licensingClasses_1.LicenseCheckStatus.LicenseOK) {\r\n (0, exports.updateLicenseDisplay)((0, exports.getLicenseInfo)(licenseContext), sciChartSurface, true, false);\r\n }\r\n }\r\n if (!isSingle)\r\n shouldApplyLicense2D = false;\r\n};\r\nvar applyLicense = function (licenseContext, sciChartSurface) {\r\n var _a, _b, _c, _d;\r\n debug(\"applyLicense running\");\r\n var licenseKey = \"\";\r\n var lt = licenseContext.SCRTCredentials.GetLicenseType();\r\n debug(\"Initial license status is \" + licensingClasses_1.LicenseType[convertLicenseType(lt, licenseContext)]);\r\n // Get from global store\r\n var runtimelicense = getRuntimeLicenseKey();\r\n if ((checkStatus === licensingClasses_1.LicenseCheckStatus.NoLicense ||\r\n checkStatus === licensingClasses_1.LicenseCheckStatus.LicenseOK ||\r\n checkStatus === licensingClasses_1.LicenseCheckStatus.StartLookingForLicenseWizard ||\r\n checkStatus === licensingClasses_1.LicenseCheckStatus.LookingForLicenseWizard) &&\r\n //lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_COMMUNITY &&\r\n runtimelicense) {\r\n debug(\"Runtime license found\");\r\n var sep = runtimelicense.indexOf(\";\");\r\n if (sep > 0) {\r\n var timeNow = Math.floor(new Date().getTime() / 1000);\r\n var token = runtimelicense.substring(sep + 1);\r\n setLicenseCookie(runtimelicense.substr(0, sep), token, timeNow + 60, timeNow);\r\n }\r\n else {\r\n licenseContext.SCRTCredentials.SetRuntimeLicenseKeyW(runtimelicense);\r\n lt = licenseContext.SCRTCredentials.GetLicenseType();\r\n var licenseType = convertLicenseType(lt, licenseContext);\r\n debug(\"Runtime license status is \" + licensingClasses_1.LicenseType[licenseType]);\r\n if (lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_FULL ||\r\n lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_TRIAL ||\r\n lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_COMMUNITY ||\r\n lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_REQUIRES_VALIDATION) {\r\n isRuntimeKey = true;\r\n licenseKey = runtimelicense;\r\n }\r\n else {\r\n var errorMsg = licenseContext.SCRTCredentials.GetLicenseErrors();\r\n if ((window && ((_a = window.location) === null || _a === void 0 ? void 0 : _a.hostname) && !((_c = (_b = window.location) === null || _b === void 0 ? void 0 : _b.hostname) === null || _c === void 0 ? void 0 : _c.includes(\"localhost\"))) ||\r\n !errorMsg.startsWith(\"License is not valid for this domain\")) {\r\n if (isDebug) {\r\n debug(\"Runtime license is invalid: \" + errorMsg);\r\n }\r\n else {\r\n console.warn(\"Runtime license is invalid. Call setIsDebugLicensing(true) for details.\");\r\n }\r\n }\r\n else {\r\n debug(\"Runtime license is invalid: \" + errorMsg);\r\n }\r\n licenseKey = \"\";\r\n }\r\n }\r\n }\r\n // Get from cookie store\r\n var licenseCookie = (0, exports.getLicenseCookie)();\r\n if (licenseKey === \"\" && licenseCookie && licenseCookie.key !== \"\") {\r\n debug(\"Found license in cookie.\");\r\n licenseKey = licenseCookie.key;\r\n licenseContext.SCRTCredentials.SetRuntimeLicenseKeyW(licenseKey);\r\n lt = licenseContext.SCRTCredentials.GetLicenseType();\r\n // if the license in cookie is bad, remove it\r\n if (!(lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_FULL ||\r\n lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_TRIAL ||\r\n lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_REQUIRES_VALIDATION)) {\r\n debug(\"License cookie is invalid. \" + licenseContext.SCRTCredentials.GetLicenseErrors());\r\n (0, cookie_1.deleteCookie)(\"scLicense\");\r\n licenseKey = \"\";\r\n lt = licenseContext.SCRTLicenseType.LICENSE_TYPE_COMMUNITY;\r\n }\r\n }\r\n else if (checkStatus === licensingClasses_1.LicenseCheckStatus.FetchingFromServer) {\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.NoLicense;\r\n }\r\n if (licenseKey !== \"\") {\r\n if (lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_COMMUNITY) {\r\n // Set the license if we haven't already\r\n licenseContext.SCRTCredentials.SetRuntimeLicenseKeyW(licenseKey);\r\n lt = licenseContext.SCRTCredentials.GetLicenseType();\r\n }\r\n licenseManager2dState_1.licenseManager2dState.setIsDev(licenseContext.SCRTCredentials.GetAllowDebugging());\r\n if (lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_FULL ||\r\n lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_TRIAL ||\r\n lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_COMMUNITY) {\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.LicenseOK;\r\n debug(\"license ok\");\r\n if (lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_COMMUNITY && isRuntimeKey && !communityNotice) {\r\n console.log(\"Using SciChart Community Edition. To use a license from the License Wizard, remove the call to UseCommunityLicense\");\r\n var daysRemaining = licenseContext.SCRTCredentials.GetLicenseDaysRemaining();\r\n console.log(\"The community license is valid for 6 months from the date the version in use was released. This version \".concat(BuildStamp_1.libraryVersion, \" has \").concat(daysRemaining, \" day\").concat(daysRemaining === 1 ? \"\" : \"s\", \" remaining\"));\r\n communityNotice = true;\r\n }\r\n }\r\n else if (licenseContext.SCRTCredentials.RequiresValidation()) {\r\n debug(\"license requires validation\");\r\n if (isRuntimeKey && licenseManager2dState_1.licenseManager2dState.getIsDev()) {\r\n // clear key\r\n licenseContext.SCRTCredentials.ResetRuntimeLicense();\r\n (0, cookie_1.deleteCookie)(\"scLicense\");\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.DevKeyInRuntimeKey;\r\n }\r\n else if (licenseCookie.expiry > new Date() && licenseCookie.key === licenseKey) {\r\n debug(\"current token in cookie\");\r\n var expirySeconds = setChallengeResponse(licenseCookie.token, licenseContext);\r\n lt = licenseContext.SCRTCredentials.GetLicenseType();\r\n if (lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_FULL ||\r\n lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_TRIAL) {\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.LicenseOK;\r\n }\r\n var timeNow = Math.floor(new Date().getTime() / 1000);\r\n if (expirySeconds * 1000 > licenseCookie.expiry.getTime()) {\r\n setLicenseCookie(licenseKey, licenseCookie.token, expirySeconds, timeNow);\r\n }\r\n var validationInterval = 60 * 60 * 24; // Once a day\r\n var secondsSinceValidated = (new Date().getTime() - licenseCookie.lastValidated.getTime()) / 1000;\r\n debug(\"License expires in \".concat(expirySeconds - timeNow, \" seconds. Last validated \").concat(secondsSinceValidated, \" seconds ago\"));\r\n if (secondsSinceValidated > validationInterval &&\r\n checkStatus !== licensingClasses_1.LicenseCheckStatus.ValidatingDeveloperLicense) {\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.ValidatingDeveloperLicense;\r\n dolicenseChallenge(licenseContext, sciChartSurface);\r\n }\r\n }\r\n else if (checkStatus === licensingClasses_1.LicenseCheckStatus.NoLicense) {\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.ValidatingDeveloperLicense;\r\n dolicenseChallenge(licenseContext, sciChartSurface);\r\n }\r\n }\r\n else {\r\n debug(\"license is invalid: \" + licenseContext.SCRTCredentials.GetLicenseErrors());\r\n }\r\n }\r\n debug(\"checkstatus: \" + licensingClasses_1.LicenseCheckStatus[checkStatus]);\r\n if (checkStatus === licensingClasses_1.LicenseCheckStatus.NoLicense) {\r\n if (lt === licenseContext.SCRTLicenseType.LICENSE_TYPE_COMMUNITY && !communityNotice) {\r\n console.log(\"Defaulting to SciChart Community Edition. Usage constitutes acceptance of our EULA and terms at https://www.scichart.com/community-licensing. See https://store.scichart.com for commercial licensing options.\");\r\n var daysRemaining = licenseContext.SCRTCredentials.GetLicenseDaysRemaining();\r\n console.log(\"The community license is valid for 6 months from the date the version in use was released. This version \".concat(BuildStamp_1.libraryVersion, \" has \").concat(daysRemaining, \" day\").concat(daysRemaining === 1 ? \"\" : \"s\", \" remaining\"));\r\n if (!app_1.IS_TEST_ENV && ((_d = document === null || document === void 0 ? void 0 : document.location) === null || _d === void 0 ? void 0 : _d.hostname.startsWith(\"localhost\")) && useLicenseWizard) {\r\n console.log(\"SciChart is looking for a paid developer activation from the scichart licensing wizard... To disable this call SciChartSurface.UseCommunityLicense()\");\r\n }\r\n communityNotice = true;\r\n }\r\n if (wizardTimer === undefined && useLicenseWizard) {\r\n checkStatus = licensingClasses_1.LicenseCheckStatus.StartLookingForLicenseWizard;\r\n licenseManager2dState_1.licenseManager2dState.setIsDev(true);\r\n getlicenseFromWizard(licenseContext, sciChartSurface);\r\n }\r\n }\r\n if (licenseContext !== undefined) {\r\n (0, exports.updateLicenseDisplay)((0, exports.getLicenseInfo)(licenseContext), sciChartSurface, true, false);\r\n callbacks3D.updateLicenseDisplay3D();\r\n }\r\n};\r\nexports.applyLicense = applyLicense;\r\nvar licenseModal;\r\nvar openLicenseModal = function () {\r\n console.error(\"Modal not initialized\");\r\n};\r\nvar setNewLicense = function (keyCode, licenseContext, sciChartSurface) {\r\n var requiresValidation = false;\r\n var trialExpired;\r\n if (licenseModal) {\r\n licenseModal.style.display = \"none\";\r\n }\r\n isRuntimeKey = false;\r\n setLicenseCookie(keyCode, null, null, null);\r\n if (licenseContext !== undefined) {\r\n licenseContext.SCRTCredentials.SetRuntimeLicenseKeyW(keyCode);\r\n requiresValidation = licenseContext.SCRTCredentials.RequiresValidation();\r\n trialExpired =\r\n licenseContext.SCRTCredentials.GetLicenseType() ===\r\n licenseContext.SCRTLicenseType.LICENSE_TYPE_TRIAL_EXPIRED;\r\n (0, exports.updateLicenseDisplay)((0, exports.getLicenseInfo)(licenseContext), sciChartSurface, true, true);\r\n }\r\n var result3D = callbacks3D.setNewLicense3D(keyCode);\r\n if (result3D !== undefined) {\r\n requiresValidation = result3D.requiresValidation;\r\n trialExpired = result3D.trialExpired;\r\n }\r\n return { requiresValidation: requiresValidation, trialExpired: trialExpired };\r\n};\r\nvar insertedRules = new Dictionary_1.Dictionary();\r\nvar insertStyleSheetRule = function (ruleName, ruleText) {\r\n if (insertedRules.containsKey(ruleName))\r\n return;\r\n var sheets = document.styleSheets;\r\n if (sheets.length === 0) {\r\n var style = document.createElement(\"style\");\r\n style.appendChild(document.createTextNode(\"\"));\r\n document.head.appendChild(style);\r\n }\r\n var sheet = sheets[sheets.length - 1];\r\n // @ts-ignore\r\n var index = sheet.insertRule(ruleText, sheet.cssRules.length);\r\n insertedRules.add(ruleName, index);\r\n};\r\nvar createCloseDivStyles = function () {\r\n insertStyleSheetRule(\"licenseModalClose\", \".licenseModalClose {\\n color: #aaa;\\n float: right;\\n font-size: 28px;\\n font-weight: bold;\\n }\");\r\n insertStyleSheetRule(\"licenseModalClose:hover\", \".licenseModalClose:hover {\\n color: black;\\n text-decoration: none;\\n cursor: pointer;\\n }\");\r\n insertStyleSheetRule(\"licenseModalClose:focus\", \".licenseModalClose:focus {\\n color: black;\\n text-decoration: none;\\n cursor: pointer;\\n }\");\r\n};\r\nvar createLicenseModal = function (message, postFormMessage) {\r\n licenseModal = document.createElement(\"div\");\r\n licenseModal.id = \"scichartLicenseModal\";\r\n licenseModal.style.display = \"none\"; /* Hidden by default */\r\n licenseModal.style.position = \"fixed\"; /* Stay in place */\r\n licenseModal.style.zIndex = \"100\"; /* Sit on top */\r\n licenseModal.style.left = \"0\";\r\n licenseModal.style.top = \"0\";\r\n licenseModal.style.width = \"100%\"; /* Full width */\r\n licenseModal.style.height = \"100%\"; /* Full height */\r\n licenseModal.style.overflow = \"auto\"; /* Enable scroll if needed */\r\n licenseModal.style.backgroundColor = \"rgb(0,0,0)\"; /* Fallback color */\r\n licenseModal.style.backgroundColor = \"rgba(0,0,0,0.4)\"; /* Black w/ opacity */\r\n var modalContent = document.createElement(\"div\");\r\n modalContent.style.backgroundColor = \"#fefefe\";\r\n modalContent.style.position = \"absolute\";\r\n modalContent.style.left = \"50%\";\r\n modalContent.style.top = \"50%\";\r\n modalContent.style.transform = \"translate(-50%, -50%)\";\r\n modalContent.style.borderRadius = \"4px\";\r\n modalContent.style.padding = \"20px\";\r\n modalContent.style.maxWidth = \"460px\";\r\n licenseModal.appendChild(modalContent);\r\n var modalContentForm = document.createElement(\"div\");\r\n modalContentForm.style.display = \"block\";\r\n modalContent.appendChild(modalContentForm);\r\n var modalContentMessage = document.createElement(\"div\");\r\n modalContentMessage.style.display = \"none\";\r\n modalContent.appendChild(modalContentMessage);\r\n openLicenseModal = function () {\r\n licenseModal.style.display = \"block\";\r\n modalContentForm.style.display = \"block\";\r\n modalContentMessage.style.display = \"none\";\r\n };\r\n var modalHeader = document.createElement(\"div\");\r\n modalHeader.style.display = \"flex\";\r\n modalHeader.style.padding = \"8px 16px\";\r\n modalHeader.style.backgroundColor = \"#5cb85c\";\r\n modalHeader.style.color = \"white\";\r\n modalContentForm.appendChild(modalHeader);\r\n var modalHeaderTitle = document.createElement(\"div\");\r\n modalHeaderTitle.style.flexGrow = \"1\";\r\n modalHeaderTitle.innerHTML = message;\r\n modalHeader.appendChild(modalHeaderTitle);\r\n createCloseDivStyles();\r\n var closeDiv = document.createElement(\"span\");\r\n closeDiv.innerHTML = \"×\";\r\n closeDiv.className = \"licenseModalClose\";\r\n modalHeader.appendChild(closeDiv);\r\n var buttonLabel = document.createElement(\"div\");\r\n buttonLabel.innerHTML = \"If you contact support with a licensing issue, we will ask you to send us the license debug log.\\n To toggle License debug mode use the button below and refresh the page, then check the console output. \\n When copying the log, make sure to start from the beginning, indicated by the reported version number\";\r\n var toggleDebugModeButton = document.createElement(\"button\");\r\n toggleDebugModeButton.style.margin = \"10px\";\r\n var setDebugModeSwitchLabel = function () {\r\n toggleDebugModeButton.textContent = isDebug ? \"Disable licensing debug mode\" : \"Enable licensing debug mode\";\r\n };\r\n setDebugModeSwitchLabel();\r\n toggleDebugModeButton.onclick = function () {\r\n (0, exports.setIsDebugLicensing)(!isDebug, true);\r\n setDebugModeSwitchLabel();\r\n };\r\n modalContentForm.appendChild(buttonLabel);\r\n modalContentForm.appendChild(toggleDebugModeButton);\r\n var modalFooter = document.createElement(\"div\");\r\n modalFooter.innerHTML = postFormMessage;\r\n modalFooter.style.padding = \"8px 16px\";\r\n modalFooter.style.backgroundColor = \"#5cb85c\";\r\n modalFooter.style.color = \"white\";\r\n modalContentForm.appendChild(modalFooter);\r\n // When the user clicks anywhere outside of the modal, close it\r\n window.onclick = function (event) {\r\n if (event.target === licenseModal) {\r\n licenseModal.style.display = \"none\";\r\n }\r\n };\r\n var oldModal = document.querySelector(\"[id='\".concat(licenseModal.id, \"']\"));\r\n if (oldModal == null)\r\n document.body.appendChild(licenseModal);\r\n else\r\n document.body.replaceChild(licenseModal, oldModal);\r\n // When the user clicks on
(x), close the modal\r\n closeDiv.onclick = function () {\r\n licenseModal.style.display = \"none\";\r\n };\r\n return licenseModal;\r\n};\r\nvar LICENSE_MSG_CLASS = \"licenseMessage\";\r\nvar LICENSE_MSG_CLASS_CHILD = \"licenseMessageChild\";\r\nvar licenseMessageDiv = null;\r\nvar licenseMessageDivChild = null;\r\nvar updateLicenseMessageDOM = function (divContainer, licenseMsgDiv) {\r\n if (!divContainer) {\r\n return;\r\n }\r\n var msgCloneOther = licenseMsgDiv.cloneNode(true);\r\n var lms = divContainer.getElementsByClassName(LICENSE_MSG_CLASS);\r\n if (lms.length > 0) {\r\n var lm = lms[0];\r\n divContainer.replaceChild(msgCloneOther, lm);\r\n }\r\n else {\r\n divContainer.appendChild(msgCloneOther);\r\n }\r\n if (useLicenseWizard)\r\n msgCloneOther.onclick = openLicenseModal;\r\n};\r\nvar convertLicenseType = function (sclt, licenseContext) {\r\n var licenseType = licensingClasses_1.LicenseType.NoLicense;\r\n switch (sclt) {\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_NO_LICENSE: {\r\n licenseType = licensingClasses_1.LicenseType.NoLicense;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_TRIAL: {\r\n licenseType = licensingClasses_1.LicenseType.Trial;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_COMMUNITY: {\r\n licenseType = licensingClasses_1.LicenseType.Community;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_FULL: {\r\n licenseType = licensingClasses_1.LicenseType.Full;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_FULL_EXPIRED: {\r\n licenseType = licensingClasses_1.LicenseType.Full_Expired;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_TRIAL_EXPIRED: {\r\n licenseType = licensingClasses_1.LicenseType.Trial_Expired;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_SUBSCRIPTION_EXPIRED: {\r\n licenseType = licensingClasses_1.LicenseType.Subscription_Expired;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_INVALID_DEVELOPER_LICENSE: {\r\n licenseType = licensingClasses_1.LicenseType.Invalid_Developer;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_REQUIRES_VALIDATION: {\r\n licenseType = licensingClasses_1.LicenseType.Requres_Validation;\r\n break;\r\n }\r\n case licenseContext.SCRTLicenseType.LICENSE_TYPE_INVALID_LICENSE: {\r\n licenseType = licensingClasses_1.LicenseType.Invalid;\r\n break;\r\n }\r\n }\r\n return licenseType;\r\n};\r\nvar getLicenseInfo = function (licenseContext) {\r\n var sclt = licenseContext.SCRTCredentials.GetLicenseType();\r\n var licenseType = convertLicenseType(sclt, licenseContext);\r\n var daysRemaining = licenseContext.SCRTCredentials.GetLicenseDaysRemaining();\r\n if ((checkStatus === licensingClasses_1.LicenseCheckStatus.LicenseOK || licenseType === licensingClasses_1.LicenseType.Community) &&\r\n licenseManager2dState_1.licenseManager2dState.getLicenseType() !== licenseType) {\r\n if (licenseType === licensingClasses_1.LicenseType.Community) {\r\n licenseManager2dState_1.licenseManager2dState.setOrderId(\"Community\");\r\n }\r\n else {\r\n licenseManager2dState_1.licenseManager2dState.setOrderId(licenseContext.SCRTCredentials.GetEncryptedOrderId());\r\n }\r\n licenseManager2dState_1.licenseManager2dState.setProductCode(licenseContext.SCRTCredentials.GetProductCode());\r\n licenseManager2dState_1.licenseManager2dState.setLicenseType(licenseType);\r\n licenseManager2dState_1.licenseManager2dState.setDevCount(licenseContext.SCRTCredentials.GetDeveloperCount());\r\n // Telemetry is enabled based on a license feature\r\n var teFeature = licenseContext.SCRTCredentials.HasFeature(\"TE\");\r\n licenseManager2dState_1.licenseManager2dState.setTelemetry(teFeature === licenseContext.SCRTLicenseType.LICENSE_TYPE_FULL ||\r\n teFeature === licenseContext.SCRTLicenseType.LICENSE_TYPE_TRIAL);\r\n }\r\n if (isDebug) {\r\n debug(licenseContext.SCRTCredentials.Dump());\r\n }\r\n var error = licenseContext.SCRTCredentials.GetLicenseErrors();\r\n return { licenseType: licenseType, daysRemaining: daysRemaining, error: error };\r\n};\r\nexports.getLicenseInfo = getLicenseInfo;\r\nvar licenseType2D;\r\nvar licenseType3D;\r\nvar previousCheckStatus;\r\nvar updateLicenseDisplayInternal = function (licenseInfo, sciChartSurface, is2D, applyToOther) {\r\n if (licenseMessageDiv == null) {\r\n licenseMessageDiv = document.createElement(\"div\");\r\n licenseMessageDiv.className = LICENSE_MSG_CLASS;\r\n licenseMessageDivChild = document.createElement(\"div\");\r\n licenseMessageDivChild.className = LICENSE_MSG_CLASS_CHILD;\r\n licenseMessageDivChild.innerHTML = \"\";\r\n licenseMessageDiv.appendChild(licenseMessageDivChild);\r\n }\r\n var premsg = \"\";\r\n var chartmsg = \"\";\r\n var postMsg = \"\";\r\n var licenseType = licenseInfo.licenseType, daysRemaining = licenseInfo.daysRemaining, error = licenseInfo.error;\r\n if ((is2D && licenseType !== licenseType2D) ||\r\n (!is2D && licenseType !== licenseType3D) ||\r\n checkStatus !== previousCheckStatus) {\r\n previousCheckStatus = checkStatus;\r\n if (is2D)\r\n licenseType2D = licenseType;\r\n else\r\n licenseType3D = licenseType;\r\n // if (licenseType === LicenseType.Trial || licenseType === LicenseType.Full)\r\n // checkStatus = LicenseCheckStatus.LicenseOK;\r\n debug(\"\".concat(is2D ? \"2D\" : \"3D\", \" license status changed\"));\r\n sciChartSurface.invalidateElement();\r\n sciChartSurface.otherSurfaces.map(function (s) { return s.invalidateElement(); });\r\n if (checkStatus === licensingClasses_1.LicenseCheckStatus.StartLookingForLicenseWizard) {\r\n return;\r\n }\r\n // Update license message text\r\n var licensingLink = \"www.scichart.com/licensing-scichart-js\";\r\n var contactSupportLink = \"contact support\";\r\n if (licenseType === licensingClasses_1.LicenseType.NoLicense) {\r\n premsg = \"You need to have a license to use SciChart. \";\r\n postMsg = \"Instructions can be seen at \".concat(licensingLink);\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Invalid) {\r\n if (error.startsWith(\"License is not valid for this domain\"))\r\n premsg = \"Sorry! The runtime license key is not valid for this domain
\\n Please \".concat(contactSupportLink, \" with your OrderID if you believe this to be incorrect. Click for more information
\\n For local development, make sure the Licensing Wizard is running and activated.
\\n To use Community Edition, remove the call to setRuntimeLicenseKey\");\r\n else if (error.startsWith(\"This version of SciChart can no longer be trialed\"))\r\n premsg = \"Sorry! This version of SciChart is too old to be trialed. Please update to the latest version\";\r\n else if (error.startsWith(\"This version of SciChart can no longer be used for the community edition\"))\r\n premsg = \"Sorry! This version of SciChart is too old to be used for the community edition. Please update to the latest version\";\r\n else\r\n premsg = \"Sorry! Your license key appears to be invalid
Please \".concat(contactSupportLink, \" with your OrderID if you believe this to be incorrect.\");\r\n postMsg = \"Instructions can be seen at \".concat(licensingLink);\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Invalid_Developer) {\r\n premsg = \"Sorry! You need a developer license to use SciChart on a domain not included in your runtime key.\";\r\n postMsg = \"Instructions can be seen at \".concat(licensingLink, \"
\\n Please \").concat(contactSupportLink, \" with your OrderID if you are experiencing issues.\");\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Requres_Validation) {\r\n if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {\r\n premsg = \"Your developer license must be validated by the SciChart Licensing Wizard running locally\";\r\n }\r\n else {\r\n premsg = \"This runtime key must be validated by a server side key.\";\r\n }\r\n postMsg = \"Instructions can be seen at \".concat(licensingLink, \"
\\n Please \").concat(contactSupportLink, \" with your OrderID if you are experiencing issues.\");\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Subscription_Expired) {\r\n premsg = \"Sorry! Your support subscription has expired.
\";\r\n postMsg = \"Please \".concat(contactSupportLink, \" us if you would like to renew your subscription.\");\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Trial_Expired && daysRemaining < 1) {\r\n premsg = \"Sorry! Your trial has expired.\";\r\n postMsg = \"Please \".concat(contactSupportLink, \" if you require an extension.\");\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Trial_Expired && daysRemaining > 1) {\r\n premsg = \"This version is too old to trial.\";\r\n postMsg = \"Please \".concat(contactSupportLink, \" if you require an extension.\");\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Trial && daysRemaining <= 7) {\r\n premsg = \"You have \".concat(daysRemaining, \" day\").concat(daysRemaining === 1 ? \"\" : \"s\", \" remaining of the trial.\");\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Community && daysRemaining <= 7) {\r\n premsg = \"You have \".concat(daysRemaining, \" day\").concat(daysRemaining === 1 ? \"\" : \"s\", \" remaining on the community license for this version. Please update to the latest version of SciChart\");\r\n }\r\n else if (licenseType === licensingClasses_1.LicenseType.Full ||\r\n ((licenseType === licensingClasses_1.LicenseType.Trial || licenseType === licensingClasses_1.LicenseType.Community) && daysRemaining > 7)) {\r\n licenseMessageDiv.style.display = \"none\";\r\n licenseMessageDivChild.innerHTML = \"\";\r\n }\r\n if (checkStatus !== licensingClasses_1.LicenseCheckStatus.LicenseOK) {\r\n if (checkStatus === licensingClasses_1.LicenseCheckStatus.FetchingFromServer)\r\n chartmsg = \"
Fetching license from server...\";\r\n if (checkStatus === licensingClasses_1.LicenseCheckStatus.LookingForLicenseWizard) {\r\n if (licenseType === licensingClasses_1.LicenseType.Community) {\r\n (0, Telemetry_1.sendTelemetry)();\r\n }\r\n chartmsg = \"
Looking for Licensing Wizard...\";\r\n }\r\n else if (checkStatus === licensingClasses_1.LicenseCheckStatus.FailedToFindLicenseWizard)\r\n if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {\r\n chartmsg = \"
Could not connect to the Licensing Wizard. Please run it, then reload this page.\";\r\n }\r\n else {\r\n chartmsg = \"
Could not connect to the server licensing endpoint\";\r\n }\r\n else if (checkStatus === licensingClasses_1.LicenseCheckStatus.ValidatingDeveloperLicense)\r\n if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {\r\n chartmsg = \"
Trying to validate your license...\";\r\n }\r\n else {\r\n chartmsg = \"
Trying to validate your license with the server....\";\r\n }\r\n else if (checkStatus === licensingClasses_1.LicenseCheckStatus.FailedToValidateDeveloperLicense)\r\n if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {\r\n chartmsg = \"
Failed to validate your developer license with the Licensing Wizard. If you have changed your activated license, try clearing your cookies for this site..\";\r\n }\r\n else {\r\n chartmsg = \"
Failed to validate the runtime license with the server.\";\r\n }\r\n else if (checkStatus === licensingClasses_1.LicenseCheckStatus.NoLicenseInWizard && licenseType === licensingClasses_1.LicenseType.NoLicense)\r\n chartmsg = \"
Please use the Licensing wizard to start a trial or activate a serial key. Click for more information.\";\r\n else if (checkStatus === licensingClasses_1.LicenseCheckStatus.DevKeyInRuntimeKey)\r\n chartmsg = \"
You have set a developer key as a runtime key, which will not work on any other machine. Click for more information\";\r\n // tslint:disable-next-line: max-line-length\r\n else if (licenseType === licensingClasses_1.LicenseType.Trial_Expired && daysRemaining > 1)\r\n chartmsg = \"
Please update to the latest version of SciChart. Click for more information.\";\r\n else if (checkStatus === licensingClasses_1.LicenseCheckStatus.NoLicenseInWizard &&\r\n licenseType === licensingClasses_1.LicenseType.Trial_Expired) {\r\n chartmsg = \"
Please activate a serial key in the Licensing Wizard, or contact sales for an extension. Click for more information.\";\r\n }\r\n if (premsg) {\r\n licenseMessageDiv.style.width = \"100%\";\r\n licenseMessageDiv.style.height = \"100%\";\r\n licenseMessageDiv.style.top = \"0\";\r\n licenseMessageDiv.style.left = \"0\";\r\n licenseMessageDiv.style.position = \"absolute\";\r\n licenseMessageDiv.style.pointerEvents = \"auto\";\r\n licenseMessageDiv.style.cursor = \"pointer\";\r\n licenseMessageDiv.style.background = Color_1.EColor.BackgroundColor;\r\n licenseMessageDiv.style.zIndex = \"10\";\r\n licenseMessageDivChild.style.display = \"block\";\r\n licenseMessageDivChild.style.color = \"orange\";\r\n licenseMessageDivChild.style.width = \"80%\";\r\n licenseMessageDivChild.style.position = \"absolute\";\r\n licenseMessageDivChild.style.left = \"50%\";\r\n licenseMessageDivChild.style.top = \"50%\";\r\n licenseMessageDivChild.style.transform = \"translate(-50%, -50%)\";\r\n licenseMessageDivChild.style.textAlign = \"center\";\r\n licenseMessageDivChild.style.pointerEvents = \"auto\";\r\n if (useLicenseWizard) {\r\n licenseMessageDivChild.innerHTML = premsg + chartmsg;\r\n createLicenseModal(premsg, postMsg);\r\n }\r\n else {\r\n licenseMessageDivChild.innerHTML =\r\n premsg +\r\n \"
Click here for licensing information\";\r\n }\r\n }\r\n }\r\n else {\r\n (0, Telemetry_1.sendTelemetry)();\r\n }\r\n }\r\n updateLicenseMessageDOM(sciChartSurface.domDivContainer, licenseMessageDiv);\r\n if (applyToOther) {\r\n sciChartSurface.otherSurfaces.forEach(function (element) {\r\n updateLicenseMessageDOM(element.domDivContainer, licenseMessageDiv);\r\n });\r\n }\r\n};\r\nvar clear = function () {\r\n if (!Globals_1.sciChartDestinations.length && !Globals_1.sciChartSingleDestinations.length && !Globals_1.sciChart3DDestinations.length) {\r\n clearTimeout(wizardTimer);\r\n clearTimeout(licenseChallengeTimeout);\r\n (0, exports.setCallbacks3D)(callbacks3DInitialValue);\r\n licenseMessageDivChild = null;\r\n licenseMessageDiv = null;\r\n }\r\n};\r\nvar updateLicenseDisplay = function (licenseInfo, sciChartSurface, is2D, applyToOther) { return licenseDependencies.updateLicenseDisplay(licenseInfo, sciChartSurface, is2D, applyToOther); };\r\nexports.updateLicenseDisplay = updateLicenseDisplay;\r\nexports.licenseManager = {\r\n clear: clear,\r\n setRuntimeLicenseKey: function (value) { return (0, exports.setRuntimeLicenseKey)(value); },\r\n setIsDebugLicensing: function (value) { return (0, exports.setIsDebugLicensing)(value); },\r\n setLicenseCallback: function (callback) { return (0, exports.setLicenseCallback)(callback); },\r\n setServerLicenseEndpoint: function (value) { return setServerLicenseEndpoint(value); },\r\n applyLicense2D: function (licenseContext, sciChartSurface, isSingle) {\r\n return applyLicense2D(licenseContext, sciChartSurface, isSingle);\r\n }\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.licenseManager2dState = void 0;\r\nvar licensingClasses_1 = require(\"../../types/licensingClasses\");\r\nvar isDev = false;\r\nvar getIsDev = function () { return isDev; };\r\nvar setIsDev = function (value) {\r\n isDev = value;\r\n};\r\nvar orderId = \"\";\r\nvar getOrderId = function () { return orderId; };\r\nvar setOrderId = function (value) {\r\n orderId = value;\r\n};\r\nvar productCode = \"\";\r\nvar getProductCode = function () { return productCode; };\r\nvar setProductCode = function (value) {\r\n productCode = value;\r\n};\r\nvar devCount = 1;\r\nvar getDevCount = function () { return devCount; };\r\nvar setDevCount = function (value) {\r\n devCount = value;\r\n};\r\nvar licenseType = licensingClasses_1.LicenseType.NoLicense;\r\nvar getLicenseType = function () { return licenseType; };\r\nvar setLicenseType = function (value) {\r\n licenseType = value;\r\n};\r\nvar telemetryEnabled = false;\r\nvar getTelemetry = function () { return telemetryEnabled; };\r\nvar setTelemetry = function (value) {\r\n telemetryEnabled = value;\r\n};\r\nexports.licenseManager2dState = {\r\n getIsDev: getIsDev,\r\n setIsDev: setIsDev,\r\n getOrderId: getOrderId,\r\n setOrderId: setOrderId,\r\n getProductCode: getProductCode,\r\n setProductCode: setProductCode,\r\n getLicenseType: getLicenseType,\r\n setLicenseType: setLicenseType,\r\n getDevCount: getDevCount,\r\n setDevCount: setDevCount,\r\n getTelemetry: getTelemetry,\r\n setTelemetry: setTelemetry\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultSciChartLoader = void 0;\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\n/**\r\n * The default {@link ISciChartLoader} implementation. Displays a loading animation when the chart starts up\r\n * @example\r\n * // If not set in SciChartSurface.create then the default loader is used\r\n * SciChartSurface.create(\"elementId\", { loader: new DefaultSciChartLoader(); });\r\n */\r\nvar DefaultSciChartLoader = /** @class */ (function () {\r\n function DefaultSciChartLoader() {\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultSciChartLoader.prototype.addChartLoader = function (domChartRoot, theme) {\r\n this.addLoaderStyles();\r\n Guard_1.Guard.notNull(domChartRoot, \"domDivContainer\");\r\n Guard_1.Guard.notNull(theme, \"theme\");\r\n // How this loader works. 8 divs are added to a parent
\r\n // the div:after in CSS has content=\" \" and a background color and border radius\r\n // This gives the appearance of round circles. Lastly the animation is done\r\n // entirely in CSS\r\n var loaderContainerDiv = document.createElement(\"div\");\r\n loaderContainerDiv.style.background = theme.loadingAnimationBackground;\r\n loaderContainerDiv.style.height = \"100%\";\r\n loaderContainerDiv.style.width = \"100%\";\r\n loaderContainerDiv.style.position = \"relative\";\r\n loaderContainerDiv.style.zIndex = \"11\";\r\n var loaderDiv = document.createElement(\"div\");\r\n var spinnerChunk = \"
\");\r\n loaderDiv.innerHTML = spinnerChunk.repeat(8);\r\n loaderDiv.classList.add(\"scichart_loader\");\r\n loaderContainerDiv.appendChild(loaderDiv);\r\n domChartRoot.appendChild(loaderContainerDiv);\r\n return loaderContainerDiv;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n DefaultSciChartLoader.prototype.removeChartLoader = function (domChartRoot, loaderElement) {\r\n try {\r\n domChartRoot.removeChild(loaderElement);\r\n }\r\n catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n DefaultSciChartLoader.prototype.toJSON = function () {\r\n return { type: this.type };\r\n };\r\n DefaultSciChartLoader.prototype.addLoaderStyles = function () {\r\n if (DefaultSciChartLoader.hasStyles) {\r\n return;\r\n }\r\n var head = document.head;\r\n var style = document.createElement(\"style\");\r\n style.id = DefaultSciChartLoader.sciChartLoaderStylesId;\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(loaderCss));\r\n DefaultSciChartLoader.hasStyles = true;\r\n };\r\n DefaultSciChartLoader.hasStyles = false;\r\n DefaultSciChartLoader.sciChartLoaderStylesId = \"scichart_default_loader_styles_id\";\r\n return DefaultSciChartLoader;\r\n}());\r\nexports.DefaultSciChartLoader = DefaultSciChartLoader;\r\nvar loaderCss = \"\\n .scichart_loader {\\n display: inline-block;\\n position: relative;\\n width: 80px;\\n height: 80px;\\n top: 50%;\\n transform: translateY(-50%);\\n }\\n .scichart_loader div {\\n animation: scichart_loader 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\\n transform-origin: 40px 40px;\\n }\\n .scichart_loader div span {\\n display: block;\\n position: absolute;\\n width: 7px;\\n height: 7px;\\n border-radius: 50%;\\n margin: -4px 0 0 -4px;\\n }\\n .scichart_loader div:nth-child(1) {\\n animation-delay: -0.036s;\\n }\\n .scichart_loader div:nth-child(1) span {\\n top: 63px;\\n left: 63px;\\n }\\n .scichart_loader div:nth-child(2) {\\n animation-delay: -0.072s;\\n }\\n .scichart_loader div:nth-child(2) span {\\n top: 68px;\\n left: 56px;\\n }\\n .scichart_loader div:nth-child(3) {\\n animation-delay: -0.108s;\\n }\\n .scichart_loader div:nth-child(3) span {\\n top: 71px;\\n left: 48px;\\n }\\n .scichart_loader div:nth-child(4) {\\n animation-delay: -0.144s;\\n }\\n .scichart_loader div:nth-child(4) span {\\n top: 72px;\\n left: 40px;\\n }\\n .scichart_loader div:nth-child(5) {\\n animation-delay: -0.18s;\\n }\\n .scichart_loader div:nth-child(5) span {\\n top: 71px;\\n left: 32px;\\n }\\n .scichart_loader div:nth-child(6) {\\n animation-delay: -0.216s;\\n }\\n .scichart_loader div:nth-child(6) span {\\n top: 68px;\\n left: 24px;\\n }\\n .scichart_loader div:nth-child(7) {\\n animation-delay: -0.252s;\\n }\\n .scichart_loader div:nth-child(7) span {\\n top: 63px;\\n left: 17px;\\n }\\n .scichart_loader div:nth-child(8) {\\n animation-delay: -0.288s;\\n }\\n .scichart_loader div:nth-child(8) span {\\n top: 56px;\\n left: 12px;\\n }\\n @keyframes scichart_loader {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n }\\n\";\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createSvgLayer = exports.ELayerClass = void 0;\r\nvar WebGlHelper_1 = require(\"../../Core/WebGlHelper\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\nvar SciChartSurfaceBase_1 = require(\"./SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"./TextureManager/DpiHelper\");\r\nvar ECanvasType;\r\n(function (ECanvasType) {\r\n ECanvasType[ECanvasType[\"canvasWebGL\"] = 0] = \"canvasWebGL\";\r\n ECanvasType[ECanvasType[\"canvas2D\"] = 1] = \"canvas2D\";\r\n ECanvasType[ECanvasType[\"svg\"] = 2] = \"svg\";\r\n})(ECanvasType || (ECanvasType = {}));\r\nvar ELayerClass;\r\n(function (ELayerClass) {\r\n ELayerClass[\"DIV_ROOT\"] = \"div-root\";\r\n ELayerClass[\"SVG_ROOT\"] = \"svg-root\";\r\n ELayerClass[\"BACK_DIV_ROOT\"] = \"back-div-root\";\r\n ELayerClass[\"FRONT_DIV_ROOT\"] = \"front-div-root\";\r\n ELayerClass[\"BACK_SVG_ROOT\"] = \"back-svg-root\";\r\n ELayerClass[\"FRONT_SVG_ROOT\"] = \"front-svg-root\";\r\n ELayerClass[\"ADORNER_SVG_ROOT\"] = \"adorner-svg-root\";\r\n ELayerClass[\"CANVAS_ROOT\"] = \"canvas-root\";\r\n})(ELayerClass = exports.ELayerClass || (exports.ELayerClass = {}));\r\nvar DEFAULT_ASPECT_RATIO = 1.5;\r\nvar getCanvas2dId = function (divElementId) { return \"\".concat(divElementId, \"_2D\"); };\r\nvar getCanvasSizes = function (divWidth, divHeight, maxHeight, aspectWidth, aspectHeight) {\r\n if (aspectWidth === void 0) { aspectWidth = 0; }\r\n if (aspectHeight === void 0) { aspectHeight = 0; }\r\n var aspectRatio;\r\n if (aspectWidth && aspectHeight) {\r\n aspectRatio = aspectWidth / aspectHeight;\r\n }\r\n else if (divWidth && divHeight) {\r\n // We do not use aspect ratio if width and height is defined\r\n aspectRatio = undefined;\r\n }\r\n else {\r\n aspectRatio = DEFAULT_ASPECT_RATIO;\r\n }\r\n var width = Math.round(divWidth || 600);\r\n if (aspectRatio) {\r\n var height = Math.round(width / aspectRatio);\r\n if (height > maxHeight) {\r\n height = maxHeight;\r\n }\r\n return { width: width, height: height, aspectRatio: aspectRatio };\r\n }\r\n else {\r\n var height = Math.round(divHeight);\r\n return { width: width, height: height, aspectRatio: aspectRatio };\r\n }\r\n};\r\nvar getChartRootDomElement = function (divElement) {\r\n var chartRoot = typeof divElement === \"string\" ? document.querySelector(\"#\".concat(divElement)) : divElement;\r\n if (!chartRoot) {\r\n throw new Error(\"Check div element with id \\\"\".concat(chartRoot.id, \"\\\" exists\"));\r\n }\r\n if (chartRoot.nodeName.toLowerCase() !== \"div\") {\r\n throw new Error(\"Element with id \\\"\".concat(chartRoot.id, \"\\\" should be of type div\"));\r\n }\r\n return chartRoot;\r\n};\r\nvar getMaxHeight = function (divElement) {\r\n var styleMaxHeight = divElement.style.maxHeight;\r\n if (styleMaxHeight) {\r\n var isPx = styleMaxHeight.includes(\"px\");\r\n if (isPx) {\r\n var maxHeight = parseInt(styleMaxHeight.replace(\"px\", \"\"), 10);\r\n if (!isNaN(maxHeight)) {\r\n return maxHeight;\r\n }\r\n }\r\n }\r\n return undefined;\r\n};\r\n/**\r\n * Initialize SciChart canvases.\r\n * @param divElementId\r\n * @param aspectWidth - aspect ratio width, if set to 0 is auto-calculated\r\n * @param aspectHeight - aspect ratio height, if set to 0 is auto-calculated\r\n * @param activeCanvas - ECanvasType.canvasWebGL for sciChartSurface.createSingle, ECanvasType.canvas2D for copy canvas,\r\n * ECanvasType.svg for SciChartPieSurface\r\n */\r\nvar initCanvas = function (divElement, aspectWidth, aspectHeight, activeCanvas, disableAspect, touchAction) {\r\n if (activeCanvas === void 0) { activeCanvas = ECanvasType.canvasWebGL; }\r\n WebGlHelper_1.WebGlHelper.initialize();\r\n DpiHelper_1.DpiHelper.initialize();\r\n var chartRoot = getChartRootDomElement(divElement);\r\n chartRoot.innerHTML = \"\";\r\n // prevent unexpected behavior with no positioned element\r\n if (chartRoot.style.position === \"\") {\r\n chartRoot.style.position = \"relative\";\r\n }\r\n var divElementId = chartRoot.id;\r\n var divWidth = chartRoot.offsetWidth, divHeight = chartRoot.offsetHeight;\r\n var maxHeight = getMaxHeight(chartRoot);\r\n var _a = getCanvasSizes(divWidth, divHeight, maxHeight, aspectWidth, aspectHeight), width = _a.width, height = _a.height, aspectRatio = _a.aspectRatio;\r\n // if aspect ration is defined we use is to calc height\r\n if (!disableAspect && aspectRatio) {\r\n // @ts-ignore\r\n chartRoot.style.aspectRatio = \"\".concat(aspectRatio);\r\n }\r\n // Background Div Root Element\r\n var backgroundDomRoot = document.createElement(\"div\");\r\n backgroundDomRoot.id = \"\".concat(divElementId, \"_background_div\");\r\n backgroundDomRoot.classList.add(ELayerClass.DIV_ROOT, ELayerClass.BACK_DIV_ROOT);\r\n backgroundDomRoot.style.width = \"100%\";\r\n backgroundDomRoot.style.height = \"100%\";\r\n backgroundDomRoot.style.position = \"absolute\";\r\n backgroundDomRoot.style.pointerEvents = \"none\";\r\n chartRoot.appendChild(backgroundDomRoot);\r\n // Background SVG Root Element\r\n var backgroundSvgRootElement = (0, exports.createSvgLayer)(\"\".concat(divElementId, \"_BACKGROUND_SVG\"), width, height);\r\n backgroundSvgRootElement.style.width = \"100%\";\r\n backgroundSvgRootElement.style.height = \"100%\";\r\n backgroundSvgRootElement.style.pointerEvents = \"none\";\r\n backgroundSvgRootElement.classList.add(ELayerClass.BACK_SVG_ROOT);\r\n chartRoot.appendChild(backgroundSvgRootElement);\r\n // set canvasSize for parent div because of all children in absolute\r\n var canvasWebGL;\r\n if (activeCanvas === ECanvasType.canvasWebGL) {\r\n // WebGL Canvas\r\n canvasWebGL = document.createElement(\"canvas\");\r\n canvasWebGL.id = \"\".concat(divElementId, \"_WebGL\");\r\n canvasWebGL.classList.add(ELayerClass.CANVAS_ROOT);\r\n canvasWebGL.style.position = \"absolute\";\r\n canvasWebGL.style.display = \"block\";\r\n canvasWebGL.style.width = \"100%\";\r\n canvasWebGL.style.height = \"100%\";\r\n var gl = WebGlHelper_1.WebGlHelper.getContext(canvasWebGL, {\r\n premultipliedAlpha: true,\r\n antialias: SciChartSurfaceBase_1.SciChartSurfaceBase.AntiAliasWebGlBackbuffer\r\n });\r\n chartRoot.appendChild(canvasWebGL);\r\n }\r\n // 2D Canvas\r\n var canvas2D = document.createElement(\"canvas\");\r\n canvas2D.id = getCanvas2dId(divElementId);\r\n canvas2D.classList.add(ELayerClass.CANVAS_ROOT);\r\n canvas2D.style.width = \"100%\";\r\n canvas2D.style.height = \"100%\";\r\n DpiHelper_1.DpiHelper.setSize(canvas2D, width, height);\r\n canvas2D.style.position = \"absolute\";\r\n if (activeCanvas !== ECanvasType.canvas2D) {\r\n canvas2D.style.pointerEvents = \"none\";\r\n }\r\n if (activeCanvas === ECanvasType.canvasWebGL) {\r\n canvas2D.style.display = \"none\";\r\n }\r\n else {\r\n canvas2D.style.display = \"block\";\r\n }\r\n chartRoot.appendChild(canvas2D);\r\n // used to prevent default browser behavior on touchscreen\r\n canvas2D.style.touchAction = touchAction !== null && touchAction !== void 0 ? touchAction : \"none\";\r\n canvas2D.onselectstart = function () { return false; };\r\n // prevents default browser behavior of dragging the selected elements\r\n // canvas2D.ondragstart = () => false;\r\n // SVG Root Element\r\n var svgRootElement = (0, exports.createSvgLayer)(\"\".concat(divElementId, \"_SVG\"), width, height);\r\n svgRootElement.style.width = \"100%\";\r\n svgRootElement.style.height = \"100%\";\r\n if (activeCanvas !== ECanvasType.svg) {\r\n svgRootElement.style.pointerEvents = \"none\";\r\n }\r\n svgRootElement.classList.add(ELayerClass.FRONT_SVG_ROOT);\r\n chartRoot.appendChild(svgRootElement);\r\n // SVG Adorner Layer\r\n var svgAdornerLayer = (0, exports.createSvgLayer)(\"\".concat(divElementId, \"_Adorner\"), width, height);\r\n svgAdornerLayer.style.pointerEvents = \"none\";\r\n svgAdornerLayer.style.width = \"100%\";\r\n svgAdornerLayer.style.height = \"100%\";\r\n svgAdornerLayer.style.zIndex = \"1\";\r\n svgAdornerLayer.classList.add(ELayerClass.ADORNER_SVG_ROOT);\r\n chartRoot.appendChild(svgAdornerLayer);\r\n // Root Div Element\r\n var divRootElement = document.createElement(\"div\");\r\n divRootElement.id = \"\".concat(divElementId, \"_div\");\r\n divRootElement.classList.add(ELayerClass.DIV_ROOT, ELayerClass.FRONT_DIV_ROOT);\r\n divRootElement.style.width = \"100%\";\r\n divRootElement.style.height = \"100%\";\r\n divRootElement.style.position = \"relative\";\r\n divRootElement.style.pointerEvents = \"none\";\r\n divRootElement.style.textAlign = \"center\";\r\n chartRoot.appendChild(divRootElement);\r\n if (activeCanvas === ECanvasType.canvasWebGL) {\r\n canvasWebGL.addEventListener(\"webglcontextlost\", function (event) {\r\n console.warn(\"WebGL context lost. Reloading the page.\");\r\n event.preventDefault();\r\n location.reload();\r\n }, !1);\r\n }\r\n return {\r\n domChartRoot: chartRoot,\r\n domCanvasWebGL: canvasWebGL,\r\n domCanvas2D: canvas2D,\r\n domSvgContainer: svgRootElement,\r\n domSvgAdornerLayer: svgAdornerLayer,\r\n domDivContainer: divRootElement,\r\n domSeriesBackground: backgroundDomRoot,\r\n domBackgroundSvgContainer: backgroundSvgRootElement,\r\n aspect: aspectRatio,\r\n disableAspect: disableAspect\r\n };\r\n};\r\nvar subscribeToResize = function (chartRoot, aspect, sciChartSurface, disableAspect) {\r\n // @ts-ignore\r\n var resizeObserver = new ResizeObserver(function (entries) {\r\n var _loop_1 = function (entry) {\r\n var newWidth, newHeight;\r\n if (entry.contentRect) {\r\n newWidth = entry.contentRect.width;\r\n newHeight = entry.contentRect.height;\r\n }\r\n else if (entry.contentBoxSize) {\r\n // @ts-ignore\r\n if (entry.contentBoxSize.inlineSize) {\r\n // @ts-ignore\r\n newWidth = entry.contentBoxSize.inlineSize;\r\n }\r\n else if (entry.contentBoxSize[0]) {\r\n newWidth = entry.contentBoxSize[0].inlineSize;\r\n }\r\n }\r\n else {\r\n console.error(\"ResizeObserver is not supported\");\r\n newWidth = 900;\r\n }\r\n // check max-height\r\n var maxHeight = getMaxHeight(chartRoot);\r\n if (maxHeight && newHeight > maxHeight) {\r\n newHeight = maxHeight;\r\n }\r\n var isNotZero = newWidth !== 0 && newHeight !== 0;\r\n var isChanged = sciChartSurface.domCanvas2D.width !== newWidth * DpiHelper_1.DpiHelper.PIXEL_RATIO ||\r\n sciChartSurface.domCanvas2D.height !== newHeight * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n if (isNotZero && isChanged) {\r\n // We use setTimeout to fix \"ResizeObserver loop limit exceeded\" issue which occurs in Electron app\r\n setTimeout(function () {\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.Resize, { contextId: sciChartSurface.id });\r\n sciChartSurface.changeViewportSize(newWidth, newHeight);\r\n }, 0);\r\n }\r\n };\r\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\r\n var entry = entries_1[_i];\r\n _loop_1(entry);\r\n }\r\n });\r\n resizeObserver.observe(chartRoot, { box: \"border-box\" });\r\n // Return an IDeletable which will unsubscribe\r\n var unsub = { delete: function () { return resizeObserver.disconnect(); } };\r\n return unsub;\r\n};\r\n/**\r\n * Check DOM element with specified ID exists and unique\r\n * @param divElementId\r\n */\r\nvar checkChartDivExists = function (divElement) {\r\n if (typeof divElement === \"string\") {\r\n var numberOfElements = document.querySelectorAll(\"[id=\".concat(divElement, \"]\")).length;\r\n if (numberOfElements > 1) {\r\n console.error(\"Please provide a unique ID for each chart div element, \\\"\".concat(divElement, \"\\\" it is not a unique identifier\"));\r\n }\r\n else if (numberOfElements === 0) {\r\n console.error(\"Chart div element with the ID \\\"\".concat(divElement, \"\\\" is not present in the DOM\"));\r\n }\r\n }\r\n else if (!divElement) {\r\n throw new Error(\"Provided div element doesn't exist!\");\r\n }\r\n};\r\nvar createSvgLayer = function (id, width, height) {\r\n var svgRootElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\r\n svgRootElement.id = id;\r\n svgRootElement.setAttribute(\"width\", width.toString());\r\n svgRootElement.setAttribute(\"height\", height.toString());\r\n svgRootElement.setAttribute(\"role\", \"img\");\r\n svgRootElement.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\r\n svgRootElement.style.position = \"absolute\";\r\n svgRootElement.style.display = \"block\";\r\n svgRootElement.classList.add(ELayerClass.SVG_ROOT);\r\n return svgRootElement;\r\n};\r\nexports.createSvgLayer = createSvgLayer;\r\nvar sciChartInitCommon = {\r\n checkChartDivExists: checkChartDivExists,\r\n ECanvasType: ECanvasType,\r\n getCanvas2dId: getCanvas2dId,\r\n initCanvas: initCanvas,\r\n subscribeToResize: subscribeToResize\r\n};\r\nexports.default = sciChartInitCommon;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CameraController = exports.ECameraProjectionMode = void 0;\r\nvar EventHandler_1 = require(\"../Core/EventHandler\");\r\nvar Guard_1 = require(\"../Core/Guard\");\r\nvar PropertyChangedEventArgs_1 = require(\"../Core/PropertyChangedEventArgs\");\r\nvar Vector3_1 = require(\"./Vector3\");\r\nvar Constants_1 = require(\"./Visuals/Constants\");\r\n/**\r\n * Defines the Project Mode the {@link CameraController} set on SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | Javascript 3D Chart}\r\n */\r\nvar ECameraProjectionMode;\r\n(function (ECameraProjectionMode) {\r\n /**\r\n * The {@link CameraController.projectionMode} is Perspective\r\n */\r\n ECameraProjectionMode[\"Perspective\"] = \"Perspective\";\r\n /**\r\n * The {@link CameraController.projectionMode} is Orthogonal\r\n */\r\n ECameraProjectionMode[\"Orthogonal\"] = \"Orthogonal\";\r\n})(ECameraProjectionMode = exports.ECameraProjectionMode || (exports.ECameraProjectionMode = {}));\r\nvar CameraController = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the {@link CameraController}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options optional parameters of type {@link ICameraOptions} passed to the constructor\r\n */\r\n function CameraController(webAssemblyContext, options) {\r\n var _a;\r\n this.aspectRatioProperty = 1.5;\r\n this.idProperty = \"Default\";\r\n this.farClipProperty = 4000;\r\n this.fieldOfViewProperty = 60;\r\n this.nearClipProperty = 1;\r\n this.orbitalPitchProperty = 0;\r\n this.orbitalYawProperty = 0;\r\n this.orthoHeightProperty = 400;\r\n this.orthoWidthProperty = 600;\r\n this.positionProperty = Vector3_1.Vector3.zero;\r\n this.projectionModeProperty = ECameraProjectionMode.Perspective;\r\n this.targetProperty = Vector3_1.Vector3.zero;\r\n this.webAssemblyContext = webAssemblyContext;\r\n this.propertyChanged = new EventHandler_1.EventHandler();\r\n this.resetToDefaults();\r\n this.position = (options === null || options === void 0 ? void 0 : options.position) || this.position;\r\n this.target = (options === null || options === void 0 ? void 0 : options.target) || this.target;\r\n this.id = (options === null || options === void 0 ? void 0 : options.id) || this.id;\r\n this.debugPositionsProperty = (_a = options === null || options === void 0 ? void 0 : options.debugPositions) !== null && _a !== void 0 ? _a : false;\r\n }\r\n Object.defineProperty(CameraController.prototype, \"id\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.idProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n this.idProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_ID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"orthoHeight\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.orthoHeightProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (this.orthoHeightProperty === value) {\r\n return;\r\n }\r\n this.orthoHeightProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_ORTHOHEIGHT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"orthoWidth\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.orthoWidthProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (this.orthoWidthProperty === value) {\r\n return;\r\n }\r\n this.orthoWidthProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_ORTHOWIDTH);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"projectionMode\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.projectionModeProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (this.projectionModeProperty === value) {\r\n return;\r\n }\r\n this.projectionModeProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_PROJECTIONMODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"aspectRatio\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.aspectRatioProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (this.aspectRatioProperty === value) {\r\n return;\r\n }\r\n this.aspectRatioProperty = value;\r\n this.orthoWidth = this.orthoHeight * this.aspectRatioProperty;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_ASPECTRATIO);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"isAttached\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.isAttachedProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n this.isAttachedProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_ISATTACHED);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"radius\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n var distanceToTarget = this.target.subtract(this.position).length;\r\n return distanceToTarget;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (value <= 1.0) {\r\n value = 1.0;\r\n }\r\n if (this.radius === value) {\r\n return;\r\n }\r\n this.position = this.target.subtract(this.forward.scalarMultiply(value));\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_RADIUS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"orbitalPitch\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.orbitalPitchProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (this.orbitalPitchProperty === value) {\r\n return;\r\n }\r\n this.orbitalPitchProperty = value > 90.0 ? 89.9 : value < -90 ? -89.9 : value;\r\n var forwardTsr = this.webAssemblyContext.Math3D.PitchAndYawToDirection(this.orbitalPitchProperty, this.orbitalYawProperty);\r\n try {\r\n var forward = new Vector3_1.Vector3(forwardTsr.x, forwardTsr.y, forwardTsr.z);\r\n forward = forward.scalarMultiply(this.radius);\r\n this.position = this.target.subtract(forward);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_ORBITALPITCH);\r\n }\r\n finally {\r\n forwardTsr === null || forwardTsr === void 0 ? void 0 : forwardTsr.delete();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"orbitalYaw\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.orbitalYawProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (this.orbitalYawProperty === value) {\r\n return;\r\n }\r\n this.orbitalYawProperty = value;\r\n var forwardTsr = this.webAssemblyContext.Math3D.PitchAndYawToDirection(this.orbitalPitchProperty, this.orbitalYawProperty);\r\n try {\r\n var forward = new Vector3_1.Vector3(forwardTsr.x, forwardTsr.y, forwardTsr.z);\r\n forward = forward.scalarMultiply(this.radius);\r\n this.position = this.target.subtract(forward);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_ORBITALYAW);\r\n }\r\n finally {\r\n forwardTsr === null || forwardTsr === void 0 ? void 0 : forwardTsr.delete();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"farClip\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.farClipProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n this.farClipProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_FARCLIP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"nearClip\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.nearClipProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n this.nearClipProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_NEARCLIP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"fieldOfView\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.fieldOfViewProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n this.fieldOfViewProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_FIELDOFVIEW);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"upGlobal\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return new Vector3_1.Vector3(0, 1, 0);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"side\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n var forward = this.forward;\r\n var up = forward.crossProduct(this.upGlobal).crossProduct(forward);\r\n var side = up.crossProduct(forward);\r\n side.normalize();\r\n return side;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"forward\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n var forward = this.target.subtract(this.position);\r\n forward.normalize();\r\n return forward;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"up\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n var forward = this.forward;\r\n var up = forward.crossProduct(this.upGlobal).crossProduct(forward);\r\n up.normalize();\r\n return up;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"target\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.targetProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (this.targetProperty === value) {\r\n return;\r\n }\r\n this.targetProperty = value;\r\n var forwardTsr;\r\n var py;\r\n try {\r\n forwardTsr = this.forward.toTsrVector3(this.webAssemblyContext);\r\n py = this.webAssemblyContext.Math3D.DirectionToPitchAndYaw(forwardTsr);\r\n this.orbitalPitchProperty = py.pitch;\r\n this.orbitalYawProperty = py.yaw;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_TARGET);\r\n }\r\n finally {\r\n forwardTsr === null || forwardTsr === void 0 ? void 0 : forwardTsr.delete();\r\n py === null || py === void 0 ? void 0 : py.delete();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CameraController.prototype, \"position\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.positionProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (value) {\r\n if (this.positionProperty === value) {\r\n return;\r\n }\r\n this.positionProperty = value;\r\n var forwardTsr;\r\n var py;\r\n try {\r\n forwardTsr = this.forward.toTsrVector3(this.webAssemblyContext);\r\n py = this.webAssemblyContext.Math3D.DirectionToPitchAndYaw(forwardTsr);\r\n this.orbitalPitchProperty = py.pitch;\r\n this.orbitalYawProperty = py.yaw;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_POSITION);\r\n }\r\n finally {\r\n forwardTsr === null || forwardTsr === void 0 ? void 0 : forwardTsr.delete();\r\n py === null || py === void 0 ? void 0 : py.delete();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n CameraController.prototype.toOrthogonal = function () {\r\n if (this.projectionModeProperty === ECameraProjectionMode.Orthogonal) {\r\n return;\r\n }\r\n this.projectionModeProperty = ECameraProjectionMode.Orthogonal;\r\n this.orthoWidthProperty = this.radius;\r\n this.orthoHeightProperty = this.orthoWidth / this.aspectRatio;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_PROJECTIONMODE);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CameraController.prototype.toPerspective = function () {\r\n if (this.projectionModeProperty === ECameraProjectionMode.Perspective) {\r\n return;\r\n }\r\n this.projectionModeProperty = ECameraProjectionMode.Perspective;\r\n this.radius = this.orthoWidth;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CAMERA_PROJECTIONMODE);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CameraController.prototype.resetToDefaults = function () {\r\n this.positionProperty = new Vector3_1.Vector3(-1000, 1000, -1000);\r\n this.targetProperty = new Vector3_1.Vector3(0, 0, 0);\r\n this.fieldOfViewProperty = 60;\r\n this.nearClipProperty = 1;\r\n this.farClipProperty = 4000;\r\n this.projectionModeProperty = ECameraProjectionMode.Perspective;\r\n this.aspectRatioProperty = 1.5;\r\n this.orthoWidthProperty = 600;\r\n this.orthoHeightProperty = 400;\r\n var forwardTsr;\r\n var orbitalPitchYaw;\r\n try {\r\n forwardTsr = this.forward.toTsrVector3(this.webAssemblyContext);\r\n orbitalPitchYaw = this.webAssemblyContext.Math3D.DirectionToPitchAndYaw(forwardTsr);\r\n this.orbitalPitch = orbitalPitchYaw.pitch;\r\n this.orbitalYaw = orbitalPitchYaw.yaw;\r\n }\r\n finally {\r\n orbitalPitchYaw === null || orbitalPitchYaw === void 0 ? void 0 : orbitalPitchYaw.delete();\r\n forwardTsr === null || forwardTsr === void 0 ? void 0 : forwardTsr.delete();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CameraController.prototype.updateEngineCamera = function (tsrCamera) {\r\n Guard_1.Guard.notNull(tsrCamera, \"tsrCamera\");\r\n var locTsr;\r\n var atTsr;\r\n var upTsr;\r\n try {\r\n locTsr = this.position.toTsrVector3(this.webAssemblyContext);\r\n atTsr = this.target.toTsrVector3(this.webAssemblyContext);\r\n upTsr = this.up.toTsrVector3(this.webAssemblyContext);\r\n tsrCamera.SetLoc(locTsr);\r\n tsrCamera.SetAt(atTsr);\r\n tsrCamera.SetFarClip(this.farClip);\r\n tsrCamera.SetNearClip(this.nearClip);\r\n tsrCamera.SetFovAngle(this.webAssemblyContext.Math3D.DegToRad(this.fieldOfView));\r\n tsrCamera.SetProjectionMode(this.projectionMode === ECameraProjectionMode.Perspective\r\n ? this.webAssemblyContext.eTSRCameraProjectionMode.CAMERA_PROJECTIONMODE_PERSPECTIVE\r\n : this.webAssemblyContext.eTSRCameraProjectionMode.CAMERA_PROJECTIONMODE_ORTHOGONAL);\r\n tsrCamera.SetOrthoWidth(this.orthoWidth);\r\n tsrCamera.SetOrthoHeight(this.orthoHeight);\r\n tsrCamera.SetAspectRatio(this.aspectRatio);\r\n tsrCamera.SetYaw(this.webAssemblyContext.Math3D.DegToRad(this.orbitalYaw));\r\n tsrCamera.SetPitch(this.webAssemblyContext.Math3D.DegToRad(this.orbitalPitch));\r\n tsrCamera.SetUp(upTsr);\r\n }\r\n finally {\r\n locTsr === null || locTsr === void 0 ? void 0 : locTsr.delete();\r\n atTsr === null || atTsr === void 0 ? void 0 : atTsr.delete();\r\n upTsr === null || upTsr === void 0 ? void 0 : upTsr.delete();\r\n }\r\n };\r\n /**\r\n * Notifies subscribers of {@link propertyChanged} that a property has changed and the scene needs updating\r\n * @param propertyName\r\n */\r\n CameraController.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n if (this.debugPositionsProperty &&\r\n (propertyName === Constants_1.PROPERTY.CAMERA_POSITION || propertyName === Constants_1.PROPERTY.CAMERA_TARGET)) {\r\n console.log(\"SciChart.js Camera P=\".concat(this.position.toString(), \", T=\").concat(this.target.toString()));\r\n }\r\n (_a = this.propertyChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new PropertyChangedEventArgs_1.PropertyChangedEventArgs(propertyName));\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n CameraController.prototype.debugOutput = function () {\r\n var debugOutput = [\r\n \"Camera id='\".concat(this.id, \"': \"),\r\n \" position: \".concat(this.position.toString()),\r\n \" target: \".concat(this.target.toString()),\r\n \" pitch: \".concat(this.orbitalPitch.toFixed(2), \" degrees\"),\r\n \" yaw: \".concat(this.orbitalYaw.toFixed(2), \" degrees\"),\r\n \" up Vector: \".concat(this.up.toString()),\r\n \" forward Vector: \".concat(this.forward.toString()),\r\n \" projectionMode: \".concat(this.projectionMode)\r\n ];\r\n if (this.projectionMode === ECameraProjectionMode.Orthogonal) {\r\n debugOutput.push(\" orthoWidth: \".concat(this.orthoWidth.toFixed(2)));\r\n debugOutput.push(\" orthoHeight: \".concat(this.orthoHeight.toFixed(2)));\r\n }\r\n else {\r\n debugOutput.push(\" radius: \".concat(this.radius.toFixed(2)));\r\n debugOutput.push(\" fieldOfView: \".concat(this.fieldOfView.toFixed(2), \" degrees\"));\r\n }\r\n debugOutput.forEach(function (line) { return console.log(line); });\r\n return debugOutput;\r\n };\r\n return CameraController;\r\n}());\r\nexports.CameraController = CameraController;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChartModifierBase3D = void 0;\r\nvar ChartModifierBase_1 = require(\"../../Charting/ChartModifiers/ChartModifierBase\");\r\n/**\r\n * Defines a base class to a ChartModifier3D - a class which provides Zoom, Pan, Tooltip or interaction behavior\r\n * to SciChart - High Performance Realtime {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n */\r\nvar ChartModifierBase3D = /** @class */ (function (_super) {\r\n __extends(ChartModifierBase3D, _super);\r\n /**\r\n * Creates an instance of a {@link ChartModifierBase3D}\r\n * @param options Optional parameters of type {@link IChartModifierBase3DOptions} used to configure the modifier\r\n */\r\n function ChartModifierBase3D(options) {\r\n var _this = _super.call(this, options) || this;\r\n // used to track if registered types were used for function properties, so they can be serialized\r\n _this.typeMap = new Map();\r\n return _this;\r\n }\r\n Object.defineProperty(ChartModifierBase3D.prototype, \"modifierType\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return ChartModifierBase_1.EModifierType.Chart3DModifier;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChartModifierBase3D.prototype.toJSON = function () {\r\n var options = {\r\n id: this.id,\r\n executeOn: this.executeOn\r\n };\r\n return { type: this.type, options: options };\r\n };\r\n return ChartModifierBase3D;\r\n}(ChartModifierBase_1.ChartModifierBase));\r\nexports.ChartModifierBase3D = ChartModifierBase3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CustomChartModifier3D = void 0;\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar ChartModifierBase3D_1 = require(\"./ChartModifierBase3D\");\r\n/**\r\n * Base class for custom Chart Modifiers (allows custom zooming, panning, interaction behaviour) on 2D Charts\r\n */\r\nvar CustomChartModifier3D = /** @class */ (function (_super) {\r\n __extends(CustomChartModifier3D, _super);\r\n /**\r\n * @inheritDoc\r\n * @param options\r\n */\r\n function CustomChartModifier3D(options) {\r\n var _this = _super.call(this, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = ChartModifierType_1.EChart3DModifierType.Custom;\r\n return _this;\r\n }\r\n return CustomChartModifier3D;\r\n}(ChartModifierBase3D_1.ChartModifierBase3D));\r\nexports.CustomChartModifier3D = CustomChartModifier3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseWheelZoomModifier3D = void 0;\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar CameraController_1 = require(\"../CameraController\");\r\nvar ChartModifierBase3D_1 = require(\"./ChartModifierBase3D\");\r\n/**\r\n * @summary The {@link MouseWheelZoomModifier3D} provides Mouse wheel zooming behavior on a 3D {@link SciChart3DSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @description\r\n *\r\n * To apply the {@link MouseWheelZoomModifier3D} to a {@link SciChart3DSurface} and add Mouse-wheel zoom behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartS3Durface: SciChart3DSurface;\r\n * sciChart3DSurface.chartModifiers.add(new MouseWheelZoomModifier3D());\r\n * ```\r\n *\r\n * @remarks The speed of mouse-wheel zoom can be modified via the {@link MouseWheelZoomModifier3D.mouseWheelSensitivity} property.\r\n */\r\nvar MouseWheelZoomModifier3D = /** @class */ (function (_super) {\r\n __extends(MouseWheelZoomModifier3D, _super);\r\n /**\r\n * Creates an instance of the {@link MouseWheelZoomModifier3D}\r\n * @param options optional parameters of type {@link IMouseWheelZoomModifier3DOptions} used to configure the modifier\r\n */\r\n function MouseWheelZoomModifier3D(options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.type = ChartModifierType_1.EChart3DModifierType.MouseWheelZoom;\r\n _this.mouseWheelSensitivity = (options === null || options === void 0 ? void 0 : options.mouseWheelSensitivity) || 0.1;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n MouseWheelZoomModifier3D.prototype.modifierMouseWheel = function (args) {\r\n _super.prototype.modifierMouseWheel.call(this, args);\r\n var scs = this.parentSurface;\r\n if (!scs) {\r\n return;\r\n }\r\n var camera = scs.camera;\r\n if (!camera) {\r\n return;\r\n }\r\n var delta = args.mouseWheelDelta;\r\n var radius = camera.radius;\r\n var zoomFactor = (radius + delta * this.mouseWheelSensitivity) / radius;\r\n if (camera.projectionMode === CameraController_1.ECameraProjectionMode.Perspective) {\r\n camera.radius *= zoomFactor;\r\n }\r\n else {\r\n camera.orthoWidth *= zoomFactor;\r\n camera.orthoHeight *= zoomFactor;\r\n }\r\n args.handled = true;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MouseWheelZoomModifier3D.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n mouseWheelSensitivity: this.mouseWheelSensitivity\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return MouseWheelZoomModifier3D;\r\n}(ChartModifierBase3D_1.ChartModifierBase3D));\r\nexports.MouseWheelZoomModifier3D = MouseWheelZoomModifier3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OrbitModifier3D = void 0;\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar PinchZoomModifier3D_1 = require(\"./PinchZoomModifier3D\");\r\n/**\r\n * @summary The {@link OrbitModifier3D} provides behavior to orbit around a target point on a 3D {@link SciChart3DSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @description\r\n *\r\n * To apply the {@link OrbitModifier3D} to a {@link SciChart3DSurface} and add orbit on mouse-drag behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartS3Durface: SciChart3DSurface;\r\n * sciChart3DSurface.chartModifiers.add(new OrbitModifier3D());\r\n * ```\r\n */\r\nvar OrbitModifier3D = /** @class */ (function (_super) {\r\n __extends(OrbitModifier3D, _super);\r\n function OrbitModifier3D(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = ChartModifierType_1.EChart3DModifierType.Orbit;\r\n /**\r\n * Sets whether to enable pinch zoom behavior of {@link SciChartSurface} on touchscreen devices\r\n */\r\n _this.enableZoom = false;\r\n _this.enableZoom = (_a = options === null || options === void 0 ? void 0 : options.enableZoom) !== null && _a !== void 0 ? _a : _this.enableZoom;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n OrbitModifier3D.prototype.modifierMouseDown = function (args) {\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call OrbitModifier3D.modifierMouseDown if not attached\");\r\n }\r\n if (this.executeOn !== args.button) {\r\n return;\r\n }\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n this.activePointerEvents.set(args.pointerId, args);\r\n // this.parentSurface.setZoomState(EZoomState.UserZooming);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OrbitModifier3D.prototype.modifierMouseMove = function (args) {\r\n this.updatePointerInfo(args);\r\n if (!this.previousPoint) {\r\n return;\r\n }\r\n // use pinch zoom if enabled and triggered\r\n if (this.enableZoom && _super.prototype.getIsActionAllowed.call(this, args)) {\r\n _super.prototype.performModifierAction.call(this, args);\r\n }\r\n // execute rotation if action was triggered\r\n var isActionAllowed = this.getIsActionAllowed(args);\r\n if (isActionAllowed) {\r\n this.performModifierAction(args);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n OrbitModifier3D.prototype.modifierMouseUp = function (args) {\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n // delegate drag and pan handling to the next active pointer in order of event occurrence\r\n if (this.activePointerEvents.size > 0) {\r\n var nextActivePointerEvent = this.activePointerEvents.values().next().value;\r\n args.target.setPointerCapture(nextActivePointerEvent.pointerId);\r\n }\r\n };\r\n OrbitModifier3D.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n enableZoom: this.enableZoom\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n OrbitModifier3D.prototype.performModifierAction = function (args) {\r\n var camera = this.parentSurface.camera;\r\n if (!camera) {\r\n return;\r\n }\r\n var degreesPerPixel = 0.2;\r\n var currentPoint = args.mousePoint;\r\n var xDelta = this.previousPoint.x - currentPoint.x;\r\n var yDelta = this.previousPoint.y - currentPoint.y;\r\n var deltaYaw = xDelta * degreesPerPixel;\r\n var deltaPitch = yDelta * degreesPerPixel;\r\n camera.orbitalYaw += deltaYaw;\r\n camera.orbitalPitch -= deltaPitch;\r\n };\r\n OrbitModifier3D.prototype.getIsActionAllowed = function (args) {\r\n // allow drag and pan only for the first active pointer in order of event occurrence\r\n var capturedPointerEvent = this.activePointerEvents.values().next().value;\r\n if (capturedPointerEvent.pointerId !== args.pointerId || this.activePointerEvents.size > 1) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n return OrbitModifier3D;\r\n}(PinchZoomModifier3D_1.PinchZoomModifier3D));\r\nexports.OrbitModifier3D = OrbitModifier3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PinchZoomModifier3D = void 0;\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar CameraController_1 = require(\"../CameraController\");\r\nvar ChartModifierBase3D_1 = require(\"./ChartModifierBase3D\");\r\n/**\r\n * @summary The {@link PinchZoomModifier3D} provides pinch zooming behavior on a 3D {@link SciChart3DSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @description\r\n *\r\n * To apply the {@link PinchZoomModifier3D} to a {@link SciChart3DSurface} and add pinch zoom behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartS3Durface: SciChart3DSurface;\r\n * sciChart3DSurface.chartModifiers.add(new PinchZoomModifier3D());\r\n * ```\r\n *\r\n * @remarks The speed of zoom can be modified via the {@link PinchZoomModifier3D.mouseWheelSensitivity} property.\r\n */\r\nvar PinchZoomModifier3D = /** @class */ (function (_super) {\r\n __extends(PinchZoomModifier3D, _super);\r\n /**\r\n * Creates an instance of the {@link MouseWheelZoomModifier3D}\r\n * @param options optional parameters of type {@link IMouseWheelZoomModifier3DOptions} used to configure the modifier\r\n */\r\n function PinchZoomModifier3D(options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, options) || this;\r\n /**\r\n * Defines the sensitivity of zooming\r\n */\r\n _this.growFactor = 0.5;\r\n _this.type = ChartModifierType_1.EChart3DModifierType.PinchZoom;\r\n _this.growFactor = (_a = options === null || options === void 0 ? void 0 : options.growFactor) !== null && _a !== void 0 ? _a : _this.growFactor;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n PinchZoomModifier3D.prototype.modifierMouseDown = function (args) {\r\n _super.prototype.modifierMouseDown.call(this, args);\r\n if (!this.isAttached) {\r\n throw new Error(\"Should not call PinchZoomModifier3D.modifierMouseDown if not attached\");\r\n }\r\n var isTouchEvent = args.pointerType === \"touch\" || args.pointerType === \"pen\";\r\n if (isTouchEvent) {\r\n this.activePointerEvents.set(args.pointerId, args);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PinchZoomModifier3D.prototype.modifierMouseMove = function (args) {\r\n var _a;\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n var lastPoint = (_a = this.activePointerEvents.get(args.pointerId)) === null || _a === void 0 ? void 0 : _a.mousePoint;\r\n // update saved pointer coordinates\r\n if (this.activePointerEvents.has(args.pointerId)) {\r\n this.activePointerEvents.set(args.pointerId, args);\r\n }\r\n var isActionAllowed = this.getIsActionAllowed(args);\r\n if (isActionAllowed) {\r\n // this.parentSurface.setZoomState(EZoomState.UserZooming);\r\n this.performModifierAction(args);\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PinchZoomModifier3D.prototype.modifierMouseUp = function (args) {\r\n _super.prototype.modifierMouseUp.call(this, args);\r\n this.removeFromActiveTouchEvents(args);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PinchZoomModifier3D.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n growFactor: this.growFactor\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n /**\r\n * Performs the zoom operation around the mouse point\r\n * @param mousePoint The X,Y location of the mouse at the time of the zoom\r\n * @param horizontalDistance horizontal distance between points\r\n * @param verticalDistance vertical distance between points\r\n */\r\n PinchZoomModifier3D.prototype.performZoom = function (mousePoint, horizontalDistance, verticalDistance) {\r\n var scs = this.parentSurface;\r\n if (!scs) {\r\n return;\r\n }\r\n var camera = scs.camera;\r\n if (!camera) {\r\n return;\r\n }\r\n var currentTotalDistance = Math.sqrt(Math.pow(horizontalDistance, 2) + Math.pow(verticalDistance, 2));\r\n var prevTotalDistance = Math.sqrt(Math.pow(this.previousHorizontalTouchPointsDistance, 2) + Math.pow(this.previousVerticalTouchPointsDistance, 2));\r\n var radius = camera.radius;\r\n var delta = (prevTotalDistance - currentTotalDistance) * this.growFactor;\r\n var zoomFactor = (radius + delta) / radius;\r\n if (camera.projectionMode === CameraController_1.ECameraProjectionMode.Perspective) {\r\n camera.radius *= zoomFactor;\r\n }\r\n else {\r\n camera.orthoWidth *= zoomFactor;\r\n camera.orthoHeight *= zoomFactor;\r\n }\r\n };\r\n /**\r\n * Handles pointer event becoming inactive\r\n * @param args pointer event properties\r\n */\r\n PinchZoomModifier3D.prototype.removeFromActiveTouchEvents = function (args) {\r\n // Remove this event from the target's cache\r\n this.activePointerEvents.delete(args.pointerId);\r\n // reset distance values\r\n if (this.activePointerEvents.size < 2) {\r\n this.previousHorizontalTouchPointsDistance = undefined;\r\n this.previousVerticalTouchPointsDistance = undefined;\r\n }\r\n };\r\n PinchZoomModifier3D.prototype.performModifierAction = function (args) {\r\n var _a = Array.from(this.activePointerEvents.values()), firstTouchPoint = _a[0].mousePoint, secondTouchPoint = _a[1].mousePoint;\r\n // Calculate projections of distance between the touch points\r\n var currentHorizontalTouchPointsDistance = Math.abs(firstTouchPoint.x - secondTouchPoint.x);\r\n var currentVerticalTouchPointsDistance = Math.abs(firstTouchPoint.y - secondTouchPoint.y);\r\n if (this.previousHorizontalTouchPointsDistance !== undefined &&\r\n this.previousVerticalTouchPointsDistance !== undefined) {\r\n this.performZoom(args.mousePoint, currentHorizontalTouchPointsDistance, currentVerticalTouchPointsDistance);\r\n }\r\n // Cache the distance for the next move event\r\n this.previousHorizontalTouchPointsDistance = currentHorizontalTouchPointsDistance;\r\n this.previousVerticalTouchPointsDistance = currentVerticalTouchPointsDistance;\r\n };\r\n PinchZoomModifier3D.prototype.getIsActionAllowed = function (args) {\r\n var isTouchEvent = args.pointerType === \"touch\" || args.pointerType === \"pen\";\r\n // check for pinch gestures if there are multiple active touches\r\n return isTouchEvent && this.activePointerEvents.size >= 2;\r\n };\r\n return PinchZoomModifier3D;\r\n}(ChartModifierBase3D_1.ChartModifierBase3D));\r\nexports.PinchZoomModifier3D = PinchZoomModifier3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResetCamera3DModifier = void 0;\r\nvar DoubleAnimator_1 = require(\"../../Core/Animations/DoubleAnimator\");\r\nvar EasingFunctions_1 = require(\"../../Core/Animations/EasingFunctions\");\r\nvar GenericAnimation_1 = require(\"../../Core/Animations/GenericAnimation\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar CameraController_1 = require(\"../CameraController\");\r\nvar ChartModifierBase3D_1 = require(\"./ChartModifierBase3D\");\r\n/**\r\n * @summary The {@link ResetCamera3DModifier} provides double click to zoom to extents behavior on a 3D {@link SciChart3DSurface}\r\n * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @description\r\n *\r\n * To apply the {@link ResetCamera3DModifier} to a {@link SciChart3DSurface} and add Mouse-wheel zoom behavior,\r\n * use the following code:\r\n *\r\n * ```ts\r\n * const sciChartS3Durface: SciChart3DSurface;\r\n * sciChart3DSurface.chartModifiers.add(new ResetCamera3DModifier());\r\n * ```\r\n *\r\n */\r\nvar ResetCamera3DModifier = /** @class */ (function (_super) {\r\n __extends(ResetCamera3DModifier, _super);\r\n /**\r\n * Creates an instance of the {@link ResetCamera3DModifier}\r\n * @param options optional parameters of type {@link IResetCamera3DOptions} used to configure the modifier\r\n */\r\n function ResetCamera3DModifier(options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = ChartModifierType_1.EChart3DModifierType.ZoomExtents;\r\n /**\r\n * When true, the Zoom operations are animated. See also {@link animationDuration} and {@link easingFunction}\r\n */\r\n _this.isAnimated = true;\r\n /**\r\n * Defines the duration of animations when zooming in milliseconds\r\n */\r\n _this.animationDuration = 400;\r\n /**\r\n * Defines the easing function for animation. See {@link TEasingFn} for a range of functions\r\n */\r\n _this.easingFunction = EasingFunctions_1.easing.outExpo;\r\n _this.isAnimated = (_a = options === null || options === void 0 ? void 0 : options.isAnimated) !== null && _a !== void 0 ? _a : true;\r\n _this.animationDuration = (_b = options === null || options === void 0 ? void 0 : options.animationDuration) !== null && _b !== void 0 ? _b : 400;\r\n if ((options === null || options === void 0 ? void 0 : options.easingFunction) && typeof options.easingFunction === \"string\") {\r\n options.easingFunction = EasingFunctions_1.easing[options.easingFunction];\r\n }\r\n _this.easingFunction = (_c = options === null || options === void 0 ? void 0 : options.easingFunction) !== null && _c !== void 0 ? _c : EasingFunctions_1.easing.outExpo;\r\n _this.destination = options === null || options === void 0 ? void 0 : options.destination;\r\n return _this;\r\n }\r\n ResetCamera3DModifier.prototype.onAttach = function () {\r\n if (!this.destination) {\r\n var scs = this.parentSurface;\r\n if (!scs) {\r\n return;\r\n }\r\n var camera = scs.camera;\r\n if (!camera) {\r\n return;\r\n }\r\n this.destination = {\r\n radius: camera.radius,\r\n pitch: camera.orbitalPitch,\r\n yaw: camera.orbitalYaw,\r\n width: camera.orthoWidth,\r\n height: camera.orthoHeight\r\n };\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ResetCamera3DModifier.prototype.modifierDoubleClick = function (args) {\r\n var _a, _b;\r\n var scs = this.parentSurface;\r\n if (!scs) {\r\n return;\r\n }\r\n var camera = scs.camera;\r\n if (!camera) {\r\n return;\r\n }\r\n if (camera.projectionMode === CameraController_1.ECameraProjectionMode.Perspective) {\r\n var animation = new GenericAnimation_1.GenericAnimation({\r\n from: { radius: camera.radius, pitch: camera.orbitalPitch, yaw: camera.orbitalYaw },\r\n to: (_a = this.destination) !== null && _a !== void 0 ? _a : { radius: 1, pitch: 0, yaw: 0 },\r\n onAnimate: function (from, to, progress) {\r\n camera.radius = DoubleAnimator_1.DoubleAnimator.interpolate(from.radius, to.radius, progress);\r\n camera.orbitalPitch = DoubleAnimator_1.DoubleAnimator.interpolate(from.pitch, to.pitch, progress);\r\n camera.orbitalYaw = DoubleAnimator_1.DoubleAnimator.interpolate(from.yaw, to.yaw, progress);\r\n },\r\n duration: this.isAnimated ? this.animationDuration : 0,\r\n ease: this.easingFunction\r\n });\r\n scs.addAnimation(animation);\r\n }\r\n else {\r\n var animation = new GenericAnimation_1.GenericAnimation({\r\n from: { width: camera.orthoWidth, height: camera.orthoHeight },\r\n to: (_b = this.destination) !== null && _b !== void 0 ? _b : { width: 1, height: 1 },\r\n onAnimate: function (from, to, progress) {\r\n camera.orthoWidth = DoubleAnimator_1.DoubleAnimator.interpolate(from.width, to.width, progress);\r\n camera.orthoHeight = DoubleAnimator_1.DoubleAnimator.interpolate(from.height, to.height, progress);\r\n },\r\n duration: this.isAnimated ? this.animationDuration : 0,\r\n ease: this.easingFunction\r\n });\r\n scs.addAnimation(animation);\r\n }\r\n args.handled = true;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ResetCamera3DModifier.prototype.toJSON = function () {\r\n var json = _super.prototype.toJSON.call(this);\r\n var options = {\r\n animationDuration: this.animationDuration,\r\n easingFunction: this.easingFunction.name,\r\n isAnimated: this.isAnimated,\r\n destination: this.destination\r\n };\r\n Object.assign(json.options, options);\r\n return json;\r\n };\r\n return ResetCamera3DModifier;\r\n}(ChartModifierBase3D_1.ChartModifierBase3D));\r\nexports.ResetCamera3DModifier = ResetCamera3DModifier;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.adjustTooltipPosition3D = exports.TooltipModifier3D = void 0;\r\nvar CursorModifier_1 = require(\"../../Charting/ChartModifiers/CursorModifier\");\r\nvar AnnotationBase_1 = require(\"../../Charting/Visuals/Annotations/AnnotationBase\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar ChartModifierType_1 = require(\"../../types/ChartModifierType\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar BaseDataSeries3D_1 = require(\"../Model/DataSeries/BaseDataSeries3D\");\r\nvar TooltipSvgAnnotation3D_1 = require(\"../Visuals/Annotations/TooltipSvgAnnotation3D\");\r\nvar CrosshairLinesSceneEntity_1 = require(\"../Visuals/Primitives/CrosshairLinesSceneEntity\");\r\nvar ChartModifierBase3D_1 = require(\"./ChartModifierBase3D\");\r\nvar TooltipModifier3D = /** @class */ (function (_super) {\r\n __extends(TooltipModifier3D, _super);\r\n function TooltipModifier3D(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n _this = _super.call(this, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = ChartModifierType_1.EChart3DModifierType.Tooltip;\r\n /**\r\n * Gets or sets whether we should display the tooltip. Default is true\r\n */\r\n _this.showTooltip = true;\r\n _this.includedSeriesMap = new Map();\r\n _this.tooltipSvgTemplateProperty = defaultTooltipTemplate3D;\r\n _this.tooltipContainerBackgroundProperty = \"#228B22\";\r\n _this.tooltipTextStrokeProperty = \"#fff\";\r\n _this.tooltipDataTemplateProperty = defaultTooltipDataTemplate3D;\r\n _this.crosshairStrokeProperty = (_a = options === null || options === void 0 ? void 0 : options.crosshairStroke) !== null && _a !== void 0 ? _a : \"#FF6600\";\r\n _this.crosshairStrokeThicknessProperty = (_b = options === null || options === void 0 ? void 0 : options.crosshairStrokeThickness) !== null && _b !== void 0 ? _b : 2;\r\n _this.isCrosshairVisibleProperty = (_c = options === null || options === void 0 ? void 0 : options.isCrosshairVisible) !== null && _c !== void 0 ? _c : true;\r\n if (options === null || options === void 0 ? void 0 : options.tooltipSvgTemplate) {\r\n if (typeof options.tooltipSvgTemplate === \"string\") {\r\n _this.typeMap.set(\"tooltipSvgTemplate\", options.tooltipSvgTemplate);\r\n // @ts-ignore\r\n options.tooltipSvgTemplate = getFunction(EBaseType.OptionFunction, options.tooltipSvgTemplate);\r\n }\r\n }\r\n _this.tooltipSvgTemplateProperty =\r\n (_d = options === null || options === void 0 ? void 0 : options.tooltipSvgTemplate) !== null && _d !== void 0 ? _d : _this.tooltipSvgTemplateProperty;\r\n _this.tooltipContainerBackgroundProperty =\r\n (_e = options === null || options === void 0 ? void 0 : options.tooltipContainerBackground) !== null && _e !== void 0 ? _e : _this.tooltipContainerBackgroundProperty;\r\n _this.tooltipTextStrokeProperty = (_f = options === null || options === void 0 ? void 0 : options.tooltipTextStroke) !== null && _f !== void 0 ? _f : _this.tooltipTextStrokeProperty;\r\n _this.showTooltip = (_g = options === null || options === void 0 ? void 0 : options.showTooltip) !== null && _g !== void 0 ? _g : _this.showTooltip;\r\n _this.placementDivIdProperty = (_h = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _h !== void 0 ? _h : _this.placementDivIdProperty;\r\n if (options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) {\r\n if (typeof options.tooltipLegendTemplate === \"string\") {\r\n _this.typeMap.set(\"tooltipLegendTemplate\", options.tooltipLegendTemplate);\r\n // @ts-ignore\r\n options.tooltipLegendTemplate = getFunction(EBaseType.OptionFunction, options.tooltipLegendTemplate);\r\n }\r\n }\r\n _this.tooltipLegendTemplateProperty =\r\n (_j = options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) !== null && _j !== void 0 ? _j : _this.tooltipLegendTemplateProperty;\r\n _this.tooltipLegendOffsetXProperty = (_k = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetX) !== null && _k !== void 0 ? _k : _this.tooltipLegendOffsetX;\r\n _this.tooltipLegendOffsetYProperty = (_l = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetY) !== null && _l !== void 0 ? _l : _this.tooltipLegendOffsetY;\r\n if (options === null || options === void 0 ? void 0 : options.tooltipDataTemplate) {\r\n if (typeof options.tooltipDataTemplate === \"string\") {\r\n _this.typeMap.set(\"tooltipDataTemplate\", options.tooltipDataTemplate);\r\n // @ts-ignore\r\n options.tooltipDataTemplate = getFunction(EBaseType.OptionFunction, options.tooltipDataTemplate);\r\n }\r\n }\r\n _this.tooltipDataTemplateProperty =\r\n (_m = options === null || options === void 0 ? void 0 : options.tooltipDataTemplate) !== null && _m !== void 0 ? _m : _this.tooltipDataTemplateProperty;\r\n return _this;\r\n }\r\n TooltipModifier3D.prototype.includeSeries = function (series, isIncluded) {\r\n this.includedSeriesMap.set(series, isIncluded);\r\n // this.tooltipAnnotation.seriesInfos = this.getSeriesInfos();\r\n };\r\n TooltipModifier3D.prototype.getIncludedSeries = function () {\r\n var _this = this;\r\n return this.parentSurface.renderableSeries\r\n .asArray()\r\n .filter(function (rs) { return rs.isVisible && _this.includedSeriesMap.get(rs) !== false; });\r\n };\r\n Object.defineProperty(TooltipModifier3D.prototype, \"isCrosshairVisible\", {\r\n /**\r\n * When true, a crosshair line will be displayed from the hovered point location to the far axis wall\r\n * @param isVisible\r\n */\r\n get: function () {\r\n return this.isCrosshairVisibleProperty;\r\n },\r\n /**\r\n * When true, a crosshair line will be displayed from the hovered point location to the far axis wall\r\n * @param isVisible\r\n */\r\n set: function (isVisible) {\r\n var _a;\r\n this.isCrosshairVisibleProperty = isVisible;\r\n (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"crosshairStroke\", {\r\n /**\r\n * Gets or sets the stroke color of the crosshair as an HTML Color code\r\n * @param stroke\r\n */\r\n get: function () {\r\n return this.crosshairStrokeProperty;\r\n },\r\n /**\r\n * Gets or sets the stroke color of the crosshair as an HTML Color code\r\n * @param stroke\r\n */\r\n set: function (stroke) {\r\n var _a;\r\n this.crosshairStrokeProperty = stroke;\r\n (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"crosshairStrokeThickness\", {\r\n /**\r\n * Gets or sets the strokethickness of the crosshair line\r\n */\r\n get: function () {\r\n return this.crosshairStrokeThicknessProperty;\r\n },\r\n /**\r\n * Gets or sets the strokethickness of the crosshair line\r\n */\r\n set: function (strokeThickness) {\r\n var _a;\r\n this.crosshairStrokeThicknessProperty = strokeThickness;\r\n (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"tooltipSvgTemplate\", {\r\n get: function () {\r\n return this.tooltipSvgTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipSvgTemplateProperty = value;\r\n if (this.tooltipAnnotation) {\r\n this.tooltipAnnotation.tooltipSvgTemplate = value;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"tooltipLegendTemplate\", {\r\n get: function () {\r\n return this.tooltipLegendTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipLegendTemplateProperty = value;\r\n if (this.tooltipAnnotation) {\r\n this.tooltipAnnotation.tooltipLegendTemplate = value;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"tooltipDataTemplate\", {\r\n get: function () {\r\n return this.tooltipDataTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipDataTemplateProperty = value;\r\n if (this.tooltipAnnotation) {\r\n this.tooltipAnnotation.tooltipDataTemplate = value;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"tooltipContainerBackground\", {\r\n get: function () {\r\n return this.tooltipContainerBackgroundProperty;\r\n },\r\n set: function (value) {\r\n if (this.tooltipContainerBackgroundProperty !== value) {\r\n this.tooltipContainerBackgroundProperty = value;\r\n if (this.tooltipAnnotation) {\r\n this.tooltipAnnotation.containerBackground = value;\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"tooltipLegendOffsetX\", {\r\n get: function () {\r\n return this.tooltipLegendOffsetXProperty;\r\n },\r\n set: function (value) {\r\n if (this.tooltipLegendOffsetXProperty !== value) {\r\n this.tooltipLegendOffsetXProperty = value;\r\n if (this.tooltipAnnotation) {\r\n this.tooltipAnnotation.tooltipLegendOffsetX = value;\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"tooltipLegendOffsetY\", {\r\n get: function () {\r\n return this.tooltipLegendOffsetYProperty;\r\n },\r\n set: function (value) {\r\n if (this.tooltipLegendOffsetYProperty !== value) {\r\n this.tooltipLegendOffsetYProperty = value;\r\n if (this.tooltipAnnotation) {\r\n this.tooltipAnnotation.tooltipLegendOffsetY = value;\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"tooltipTextStroke\", {\r\n get: function () {\r\n return this.tooltipTextStrokeProperty;\r\n },\r\n set: function (value) {\r\n if (this.tooltipTextStrokeProperty !== value) {\r\n this.tooltipTextStrokeProperty = value;\r\n if (this.tooltipAnnotation) {\r\n this.tooltipAnnotation.textStroke = value;\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipModifier3D.prototype, \"placementDivId\", {\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n get: function () {\r\n return this.placementDivIdProperty;\r\n },\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n set: function (value) {\r\n if (this.placementDivIdProperty !== value) {\r\n this.placementDivIdProperty = value;\r\n this.notifyPropertyChanged(\"PLACEMENT_DIV_ID\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n TooltipModifier3D.prototype.onAttach = function () {\r\n _super.prototype.onAttach.call(this);\r\n if (this.parentSurface) {\r\n // Globally enable hit-test and selection pass (comes with a minor performance hit)\r\n this.parentSurface.isHitTestEnabled = true;\r\n // Create Crosshair entity and add to the scene\r\n this.crosshairEntity = (0, Deleter_1.deleteSafe)(this.crosshairEntity);\r\n this.crosshairEntity = new CrosshairLinesSceneEntity_1.CrosshairLinesSceneEntity(this.parentSurface.webAssemblyContext3D);\r\n this.parentSurface.rootEntity.children.add(this.crosshairEntity);\r\n this.tooltipAnnotation = new TooltipSvgAnnotation3D_1.TooltipSvgAnnotation3D({\r\n xCoordinateMode: AnnotationBase_1.ECoordinateMode.Pixel,\r\n yCoordinateMode: AnnotationBase_1.ECoordinateMode.Pixel,\r\n tooltipSvgTemplate: this.tooltipSvgTemplate,\r\n containerBackground: this.tooltipContainerBackground,\r\n textStroke: this.tooltipTextStroke,\r\n tooltipLegendTemplate: this.tooltipLegendTemplate,\r\n tooltipLegendOffsetX: this.tooltipLegendOffsetX,\r\n tooltipLegendOffsetY: this.tooltipLegendOffsetY,\r\n placementDivId: this.placementDivId,\r\n tooltipDataTemplate: this.tooltipDataTemplate\r\n });\r\n this.parentSurface.modifierAnnotations.add(this.tooltipAnnotation);\r\n }\r\n };\r\n /** @inheritDoc */\r\n TooltipModifier3D.prototype.onDetach = function () {\r\n _super.prototype.onDetach.call(this);\r\n if (this.parentSurface) {\r\n this.parentSurface.rootEntity.children.remove(this.crosshairEntity);\r\n this.tooltipAnnotation.delete();\r\n this.parentSurface.modifierAnnotations.remove(this.tooltipAnnotation);\r\n }\r\n this.crosshairEntity = (0, Deleter_1.deleteSafe)(this.crosshairEntity);\r\n };\r\n /** @inheritDoc */\r\n TooltipModifier3D.prototype.modifierMouseMove = function (args) {\r\n this.activePointerEvents.set(args.pointerId, args);\r\n _super.prototype.modifierMouseMove.call(this, args);\r\n if (this.getIsActionAllowed(args)) {\r\n this.update();\r\n }\r\n };\r\n TooltipModifier3D.prototype.onParentSurfaceRendered = function () {\r\n this.update();\r\n };\r\n TooltipModifier3D.prototype.update = function () {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e;\r\n if (!this.mousePoint)\r\n return;\r\n var _f = this.mousePoint, x = _f.x, y = _f.y;\r\n var seriesInfo = this.getIncludedSeries()\r\n .map(function (rs) { return rs.hitTest(_this.mousePoint); })\r\n .find(function (result) { return result.isHit; });\r\n if (seriesInfo === null || seriesInfo === void 0 ? void 0 : seriesInfo.isHit) {\r\n // console.log(`TooltipModifier3D: HitTest at (${x}, ${y})`);\r\n var xyzSeriesInfo = seriesInfo;\r\n // if (xyzSeriesInfo.dataSeriesIndex) {\r\n // console.log(`... XYZ Series hit = ${seriesInfo.dataSeriesName ?? \"Unknown\"}`);\r\n // console.log(`... Index at ${xyzSeriesInfo.dataSeriesIndex}`);\r\n // console.log(`... World coords at ${seriesInfo.hitWorldCoords.toString()}`);\r\n // console.log(`... Data at ${seriesInfo.xValue}, ${seriesInfo.yValue}, ${seriesInfo.zValue}`);\r\n // }\r\n // const heightMapSeriesInfo = seriesInfo as SurfaceMeshSeriesInfo3D;\r\n // if (heightMapSeriesInfo.xIndex && heightMapSeriesInfo.zIndex) {\r\n // console.log(`... Mesh Series hit = ${seriesInfo.dataSeriesName ?? \"Unknown\"}`);\r\n // console.log(`... X,Z index at ${heightMapSeriesInfo.xIndex}, ${heightMapSeriesInfo.zIndex}`);\r\n // console.log(`... World coords at ${seriesInfo.hitWorldCoords.toString()}`);\r\n // console.log(`... Data at ${seriesInfo.yValue}, ${seriesInfo.yValue}, ${seriesInfo.zValue}`);\r\n // }\r\n if (this.crosshairEntity && this.isCrosshairVisible) {\r\n this.crosshairEntity.worldDimensions = (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.worldDimensions;\r\n this.crosshairEntity.cameraPosition = (_c = (_b = this.parentSurface) === null || _b === void 0 ? void 0 : _b.camera) === null || _c === void 0 ? void 0 : _c.position;\r\n this.crosshairEntity.stroke = this.crosshairStroke;\r\n this.crosshairEntity.strokeThickness = this.crosshairStrokeThickness;\r\n this.crosshairEntity.location = seriesInfo.hitWorldCoords;\r\n this.crosshairEntity.isVisible = this.isCrosshairVisible;\r\n (_d = this.parentSurface) === null || _d === void 0 ? void 0 : _d.invalidateElement();\r\n }\r\n this.tooltipAnnotation.isHidden = !this.showTooltip;\r\n if (this.showTooltip) {\r\n var xt = (0, translate_1.translateToNotScaled)(x);\r\n var yt = (0, translate_1.translateToNotScaled)(y);\r\n this.tooltipAnnotation.x1 = xt;\r\n this.tooltipAnnotation.y1 = yt;\r\n }\r\n if (this.showTooltip || this.tooltipLegendTemplate) {\r\n this.tooltipAnnotation.seriesInfo = seriesInfo;\r\n }\r\n }\r\n else {\r\n this.tooltipAnnotation.seriesInfo = undefined;\r\n this.crosshairEntity.isVisible = false;\r\n this.tooltipAnnotation.isHidden = true;\r\n (_e = this.parentSurface) === null || _e === void 0 ? void 0 : _e.invalidateElement();\r\n }\r\n };\r\n return TooltipModifier3D;\r\n}(ChartModifierBase3D_1.ChartModifierBase3D));\r\nexports.TooltipModifier3D = TooltipModifier3D;\r\n/** @ignore */\r\nvar defaultTooltipDataTemplate3D = function (seriesInfo, svgAnnotation) {\r\n var valuesWithLabels = [];\r\n if (svgAnnotation.title) {\r\n valuesWithLabels.push(svgAnnotation.title);\r\n }\r\n if (seriesInfo && seriesInfo.isHit) {\r\n if (seriesInfo.dataSeriesName) {\r\n valuesWithLabels.push(seriesInfo.dataSeriesName);\r\n }\r\n if (seriesInfo.dataSeriesType === BaseDataSeries3D_1.EDataSeriesType3D.Xyz3D) {\r\n valuesWithLabels.push(\"X: \".concat(seriesInfo.xValue));\r\n valuesWithLabels.push(\"Y: \".concat(seriesInfo.yValue));\r\n valuesWithLabels.push(\"Z: \".concat(seriesInfo.zValue));\r\n }\r\n else if (seriesInfo.dataSeriesType === BaseDataSeries3D_1.EDataSeriesType3D.UniformGrid3D) {\r\n valuesWithLabels.push(\"X: \".concat(seriesInfo.xValue));\r\n valuesWithLabels.push(\"Y: \".concat(seriesInfo.yValue));\r\n valuesWithLabels.push(\"Z: \".concat(seriesInfo.zValue));\r\n }\r\n }\r\n return valuesWithLabels;\r\n};\r\n/** @ignore */\r\nvar defaultTooltipTemplate3D = function (seriesInfos, svgAnnotation) {\r\n var _a;\r\n var id = \"id_\".concat(Date.now());\r\n var tooltipDataTemplate = (_a = svgAnnotation.tooltipDataTemplate) !== null && _a !== void 0 ? _a : defaultTooltipDataTemplate3D;\r\n var valuesWithLabels = tooltipDataTemplate(seriesInfos, svgAnnotation);\r\n if (valuesWithLabels.length === 0) {\r\n return \"\";\r\n }\r\n // tooltip size\r\n var _b = (0, CursorModifier_1.calcTooltipSize)(valuesWithLabels), width = _b.width, height = _b.height;\r\n // adjust position\r\n (0, exports.adjustTooltipPosition3D)(width, height, svgAnnotation);\r\n var valuesBlock = \"\";\r\n valuesWithLabels.forEach(function (val, index) {\r\n valuesBlock += \"\".concat(val, \"\");\r\n });\r\n var tooltipFill = svgAnnotation.containerBackground;\r\n var tooltipStroke = svgAnnotation.textStroke;\r\n return \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \").concat(valuesBlock, \"\\n \\n \");\r\n};\r\n/** Relocate the tooltip so that it is always within the seriesViewRect */\r\nvar adjustTooltipPosition3D = function (width, height, svgAnnotation) {\r\n var seriesViewRect = svgAnnotation.parentSurface.seriesViewRect;\r\n var xCoord = svgAnnotation.x1;\r\n var yCoord = svgAnnotation.y1;\r\n var xCoordShift = (0, translate_1.translateToNotScaled)(seriesViewRect.width) - xCoord < width ? -width : 5;\r\n var yCoordShift = (0, translate_1.translateToNotScaled)(seriesViewRect.height) - yCoord < height ? -height : 5;\r\n svgAnnotation.xCoordShift = xCoordShift;\r\n svgAnnotation.yCoordShift = yCoordShift;\r\n};\r\nexports.adjustTooltipPosition3D = adjustTooltipPosition3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseDataSeries3D = exports.EDataSeriesType3D = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\n/**\r\n * Defines {@link BaseDataSeries3D | DataSeries} types available within SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n */\r\nvar EDataSeriesType3D;\r\n(function (EDataSeriesType3D) {\r\n /**\r\n * Defines an {@link XyzDataSeries3D}\r\n */\r\n EDataSeriesType3D[\"Xyz3D\"] = \"Xyz\";\r\n /**\r\n * Defines an {@link UniformGridDataSeries3D}\r\n */\r\n EDataSeriesType3D[\"UniformGrid3D\"] = \"UniformGrid3D\";\r\n /**\r\n * Defines a NonUniformGridDataSeries3D\r\n */\r\n EDataSeriesType3D[\"NonUniformGrid3D\"] = \"NonUniformGrid3D\";\r\n})(EDataSeriesType3D = exports.EDataSeriesType3D || (exports.EDataSeriesType3D = {}));\r\n/**\r\n * The base class for DataSeries in SciChart's {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries3D | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseDataSeries3D} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries3D} to find out what 3D JavaScript Chart types are available.\r\n */\r\nvar BaseDataSeries3D = /** @class */ (function (_super) {\r\n __extends(BaseDataSeries3D, _super);\r\n /**\r\n * Creates an instance of the {@link BaseDataSeries3D}\r\n * @param webAssemblyContext the {@link TSciChart3D | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options optional parameters of type {@link IBaseDataSeries3DOptions} to configure the series\r\n */\r\n function BaseDataSeries3D(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this) || this;\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.dataSeriesNameProperty = (_a = options === null || options === void 0 ? void 0 : options.dataSeriesName) !== null && _a !== void 0 ? _a : _this.dataSeriesNameProperty;\r\n _this.dataChanged = new EventHandler_1.EventHandler();\r\n _this.isModifiedProperty = true;\r\n return _this;\r\n }\r\n Object.defineProperty(BaseDataSeries3D.prototype, \"dataSeriesName\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.dataSeriesNameProperty;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (dataSeriesName) {\r\n this.dataSeriesNameProperty = dataSeriesName;\r\n this.notifyDataChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseDataSeries3D.prototype, \"isModified\", {\r\n /**\r\n * Determines whether the Data Series has been modified since last resetModified() call.\r\n */\r\n get: function () {\r\n return this.isModifiedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns true if this DataSeries has been deleted and native memory destroyed\r\n */\r\n BaseDataSeries3D.prototype.getIsDeleted = function () {\r\n return this.isDeleted;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseDataSeries3D.prototype.delete = function () {\r\n this.isDeleted = true;\r\n this.webAssemblyContext = undefined;\r\n };\r\n /**\r\n * Call this method to notify subscribers of {@link dataChanged} that the data has changed\r\n * and {@link https://www.scichart.com/javascript-chart-features | 3D JavaScript Chart}\r\n * needs redrawing\r\n */\r\n BaseDataSeries3D.prototype.notifyDataChanged = function () {\r\n this.isModifiedProperty = true;\r\n this.dataChanged.raiseEvent();\r\n };\r\n /**\r\n * Resets the modified flag.\r\n */\r\n BaseDataSeries3D.prototype.resetModified = function () {\r\n this.isModifiedProperty = false;\r\n };\r\n return BaseDataSeries3D;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BaseDataSeries3D = BaseDataSeries3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseGridDataSeries3D = void 0;\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar BaseDataSeries3D_1 = require(\"./BaseDataSeries3D\");\r\n/**\r\n * @summary The base class for a Grid (two-dimensional array) DataSeries in SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @description\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries3D | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * The Grid DataSeries type is used for 3D Charts that have a uniform grid of values, for example {@link SurfaceMeshRenderableSeries3D},\r\n * which draws a 3D surface-plot or mesh chart with contours.\r\n * @remarks See derived type {@link UniformGridDataSeries3D} for a concrete implementation\r\n */\r\nvar BaseGridDataSeries3D = /** @class */ (function (_super) {\r\n __extends(BaseGridDataSeries3D, _super);\r\n /**\r\n * Creates an instance of the {@link BaseGridDataSeries3D}\r\n * @param webAssemblyContext the {@link TSciChart3D | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options optional parameters of type {@link IBaseGridDataSeries3DOptions} to configure the series\r\n */\r\n function BaseGridDataSeries3D(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n // Copy yValues\r\n _this.setYValues(options === null || options === void 0 ? void 0 : options.yValues);\r\n return _this;\r\n }\r\n Object.defineProperty(BaseGridDataSeries3D.prototype, \"yRange\", {\r\n /**\r\n * Gets the total extends of the GridDataSeries3D in the y-range\r\n */\r\n get: function () {\r\n if (!this.yRangeCached) {\r\n var max = -Number.MAX_VALUE;\r\n var min = Number.MAX_VALUE;\r\n for (var z = 0; z < this.zSizeProperty; z++) {\r\n for (var x = 0; x < this.xSizeProperty; x++) {\r\n var current = this.yValuesProperty[z][x];\r\n max = Math.max(current, max);\r\n min = Math.min(current, min);\r\n }\r\n }\r\n this.yRangeCached = new NumberRange_1.NumberRange(min, max);\r\n }\r\n return this.yRangeCached;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseGridDataSeries3D.prototype, \"zSize\", {\r\n /**\r\n * The zSize is the HEIGHT or number of rows of the 2-dimensional array,\r\n * e.g. [[1, 2][3, 4][5, 6]] has a height of 3\r\n */\r\n get: function () {\r\n return this.zSizeProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseGridDataSeries3D.prototype, \"xSize\", {\r\n /**\r\n * The xSize is the WIDTH or number of elements in each or of the 2-dimensional array,\r\n * e.g. [[1, 2][3, 4][5, 6]] has a xSize of 2\r\n */\r\n get: function () {\r\n return this.xSizeProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Sets a 2D array of YValues. Input is in the format YValues[z][x]\r\n * where z is 0 to zSize and X is 0 to xSize\r\n * Note that setting the YValues involves a clone. Once the array has been set you cannot manipulate\r\n * the input array and expect changes on the chart.\r\n * @param zValues\r\n */\r\n BaseGridDataSeries3D.prototype.setYValues = function (YValues) {\r\n if (!YValues || !YValues[0]) {\r\n this.yValuesProperty = undefined;\r\n this.xSizeProperty = 0;\r\n this.zSizeProperty = 0;\r\n return;\r\n }\r\n var firstRowLength = YValues[0].length;\r\n YValues.forEach(function (zRow) {\r\n if (!zRow) {\r\n throw new Error(\"Each row in YValues must be defined. See how to declare a 2D array in Javascript here https://stackoverflow.com/a/966234/303612\");\r\n }\r\n if (zRow.length !== firstRowLength) {\r\n throw new Error(\"Each row in YValues must be the same length, so that the overall 2D array is square\");\r\n }\r\n });\r\n var w = YValues[0].length;\r\n var h = YValues.length;\r\n this.xSizeProperty = w;\r\n this.zSizeProperty = h;\r\n this.yValuesProperty = YValues;\r\n this.notifyDataChanged();\r\n };\r\n /**\r\n * Gets the Y-Values array as a two dimensional array. Output is in the format YValues[z][x]\r\n * where z is 0 to zSize and X is 0 to xSize.\r\n */\r\n BaseGridDataSeries3D.prototype.getYValues = function () {\r\n return this.yValuesProperty;\r\n };\r\n /**\r\n * Gets the YValue at the specific Z,X index where Z must be within 0-zSize and X must be within 0-xSize\r\n * @param zIndex the z-index from 0 to zSize\r\n * @param xIndex the x-index from 0 to xSize\r\n */\r\n BaseGridDataSeries3D.prototype.getYValue = function (zIndex, xIndex) {\r\n try {\r\n return this.yValuesProperty[zIndex][xIndex];\r\n }\r\n catch (_a) {\r\n console.log(\"error at get z,x \".concat(zIndex, \", \").concat(xIndex));\r\n return 0;\r\n }\r\n };\r\n /**\r\n * Sets the YValue at the specific Z,X index where Z must be within 0-zSize and X must be within 0-xSize\r\n * @param zIndex the z-index from 0 to zSize\r\n * @param xIndex the x-index from 0 to xSize\r\n * @param YValue the new Height-value\r\n */\r\n BaseGridDataSeries3D.prototype.setYValue = function (zIndex, xIndex, yValue) {\r\n this.yValuesProperty[zIndex][xIndex] = yValue;\r\n this.notifyDataChanged();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n BaseGridDataSeries3D.prototype.notifyDataChanged = function () {\r\n _super.prototype.notifyDataChanged.call(this);\r\n // setting to undefined requires recreation of this on next call to .getYRange()\r\n this.yRangeCached = undefined;\r\n };\r\n return BaseGridDataSeries3D;\r\n}(BaseDataSeries3D_1.BaseDataSeries3D));\r\nexports.BaseGridDataSeries3D = BaseGridDataSeries3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniformGridDataSeries3D = void 0;\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar BaseDataSeries3D_1 = require(\"./BaseDataSeries3D\");\r\nvar BaseGridDataSeries3D_1 = require(\"./BaseGridDataSeries3D\");\r\n/**\r\n * @summary The {@link UniformGridDataSeries3D} wraps a 2D array of numbers which become the Y-values (heights) in various\r\n * {@link BaseRenderableSeries3D} in SciChart's High Performance\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}.\r\n * @description\r\n * The {@link SurfaceMeshRenderableSeries3D} requires a 2D array of numbers to map to Y-values (heights).\r\n *\r\n * The {@link xStart}, {@link xStep} properties define the extents of the data in the X-direction, and {@link yStart}, {@link yStep}\r\n * define the extents of the data in the Y-direction.\r\n *\r\n * Y-values may be updated via manipulating the array returned by {@link getYValues}, or by setting a new array to {@link setYValues}. When\r\n * manpulating data directly, be sure to call {@link notifyDataChanged} to inform SciChart to redraw.\r\n */\r\nvar UniformGridDataSeries3D = /** @class */ (function (_super) {\r\n __extends(UniformGridDataSeries3D, _super);\r\n /**\r\n * Creates an instance of a {@link UniformGridDataSeries3D}\r\n * @param webAssemblyContext the {@link TSciChart3D | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options optional parameters of type {@link IUniformGridDataSeries3DOptions} to configure the series\r\n */\r\n function UniformGridDataSeries3D(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = BaseDataSeries3D_1.EDataSeriesType3D.UniformGrid3D;\r\n _this.xStartProperty = (options === null || options === void 0 ? void 0 : options.xStart) || 0;\r\n _this.xStepProperty = (options === null || options === void 0 ? void 0 : options.xStep) || 1;\r\n _this.zStartProperty = (options === null || options === void 0 ? void 0 : options.zStart) || 0;\r\n _this.zStepProperty = (options === null || options === void 0 ? void 0 : options.zStep) || 1;\r\n return _this;\r\n }\r\n Object.defineProperty(UniformGridDataSeries3D.prototype, \"xStart\", {\r\n /**\r\n * xStart defines the Start point on the {@link AxisBase3D | XAxis} where this grid or mesh will be drawn\r\n */\r\n get: function () {\r\n return this.xStartProperty;\r\n },\r\n /**\r\n * xStart defines the Start point on the {@link AxisBase3D | XAxis} where this grid or mesh will be drawn\r\n */\r\n set: function (xStart) {\r\n this.xStartProperty = xStart;\r\n this.notifyDataChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformGridDataSeries3D.prototype, \"xStep\", {\r\n /**\r\n * xStep defines Step on the {@link AxisBase3D | XAxis} for each cell in the grid or mesh\r\n */\r\n get: function () {\r\n return this.xStepProperty;\r\n },\r\n /**\r\n * xStep defines Step on the {@link AxisBase3D | XAxis} for each cell in the grid or mesh\r\n */\r\n set: function (xStep) {\r\n this.xStepProperty = xStep;\r\n this.notifyDataChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformGridDataSeries3D.prototype, \"zStart\", {\r\n /**\r\n * zStart defines the Start point on the {@link AxisBase3D | ZAxis} where this grid or mesh will be drawn\r\n */\r\n get: function () {\r\n return this.zStartProperty;\r\n },\r\n /**\r\n * zStart defines the Start point on the {@link AxisBase3D | ZAxis} where this grid or mesh will be drawn\r\n */\r\n set: function (zStart) {\r\n this.zStartProperty = zStart;\r\n this.notifyDataChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformGridDataSeries3D.prototype, \"zStep\", {\r\n /**\r\n * zStep defines Step on the {@link AxisBase3D | ZAxis} for each cell in the grid or mesh\r\n */\r\n get: function () {\r\n return this.zStepProperty;\r\n },\r\n /**\r\n * zStep defines Step on the {@link AxisBase3D | ZAxis} for each cell in the grid or mesh\r\n */\r\n set: function (zStep) {\r\n this.zStepProperty = zStep;\r\n this.notifyDataChanged();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformGridDataSeries3D.prototype, \"xRange\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return new NumberRange_1.NumberRange(this.xStart, this.xStart + this.xStep * (this.xSize - 1));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(UniformGridDataSeries3D.prototype, \"zRange\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return new NumberRange_1.NumberRange(this.zStart, this.zStart + this.zStep * (this.zSize - 1));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformGridDataSeries3D.prototype.getX = function (xIndex) {\r\n return this.xStart + xIndex * this.xStep;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n UniformGridDataSeries3D.prototype.getZ = function (zIndex) {\r\n return this.zStart + zIndex * this.zStep;\r\n };\r\n return UniformGridDataSeries3D;\r\n}(BaseGridDataSeries3D_1.BaseGridDataSeries3D));\r\nexports.UniformGridDataSeries3D = UniformGridDataSeries3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyzDataSeries3D = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar BaseDataSeries3D_1 = require(\"./BaseDataSeries3D\");\r\n/**\r\n * {@link XyzDataSeries3D} is a DataSeries for holding X, Y, Z data in SciChart's\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks\r\n * The {@link XyzDataSeries3D} is primarily used with our {@link ScatterRenderableSeries3D | JavaScript Scatter & Bubble Chart},\r\n * which draws a variable-sized bubble or shape at each X,Y,Z value\r\n *\r\n * A DataSeries stores the data to render. This is independent from the {@link IRenderableSeries3D | RenderableSeries}\r\n * which defines how that data should be rendered.\r\n *\r\n * See derived types of {@link BaseDataSeries3D} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries3D} to find out what 3D JavaScript Chart types are available.\r\n */\r\nvar XyzDataSeries3D = /** @class */ (function (_super) {\r\n __extends(XyzDataSeries3D, _super);\r\n /**\r\n * Creates an instance of {@link XyzDataSeries3D}\r\n * @param webAssemblyContext the {@link TSciChart3D | SciChart WebAssembly Context} containing native methods\r\n * and access to our underlying WebGL2 rendering engine\r\n * @param options the {@link IXyzDataSeries3DOptions} which can be passed to configure the DataSeries at construct time\r\n */\r\n function XyzDataSeries3D(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.type = BaseDataSeries3D_1.EDataSeriesType3D.Xyz3D;\r\n _this.xValues = new webAssemblyContext.SCRTDoubleVector();\r\n _this.yValues = new webAssemblyContext.SCRTDoubleVector();\r\n _this.zValues = new webAssemblyContext.SCRTDoubleVector();\r\n _this.metadata = [];\r\n if ((options === null || options === void 0 ? void 0 : options.xValues) && (options === null || options === void 0 ? void 0 : options.yValues) && (options === null || options === void 0 ? void 0 : options.zValues)) {\r\n _this.appendRange(options.xValues, options.yValues, options.zValues, options === null || options === void 0 ? void 0 : options.metadata);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Gets a native / WebAssembly vector of X-values in the DataSeries\r\n */\r\n XyzDataSeries3D.prototype.getNativeXValues = function () {\r\n return this.xValues;\r\n };\r\n /**\r\n * Gets a native / WebAssembly vector of Y-values in the DataSeries\r\n */\r\n XyzDataSeries3D.prototype.getNativeYValues = function () {\r\n return this.yValues;\r\n };\r\n /**\r\n * Gets a native / WebAssembly vector of Z-values in the DataSeries\r\n */\r\n XyzDataSeries3D.prototype.getNativeZValues = function () {\r\n return this.zValues;\r\n };\r\n /**\r\n * Gets a native / WebAssembly vector of {@link IPointMetadata3D | Metadata values} in the DataSeries\r\n */\r\n XyzDataSeries3D.prototype.getMetadataValues = function () {\r\n return this.metadata;\r\n };\r\n Object.defineProperty(XyzDataSeries3D.prototype, \"xRange\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n var nativeRange = this.webAssemblyContext.NumberUtil.MinMax(this.xValues);\r\n var tsRange = new NumberRange_1.NumberRange(nativeRange.minD, nativeRange.maxD);\r\n nativeRange.delete();\r\n return tsRange;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyzDataSeries3D.prototype, \"yRange\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n var nativeRange = this.webAssemblyContext.NumberUtil.MinMax(this.yValues);\r\n var tsRange = new NumberRange_1.NumberRange(nativeRange.minD, nativeRange.maxD);\r\n nativeRange.delete();\r\n return tsRange;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(XyzDataSeries3D.prototype, \"zRange\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n var nativeRange = this.webAssemblyContext.NumberUtil.MinMax(this.zValues);\r\n var tsRange = new NumberRange_1.NumberRange(nativeRange.minD, nativeRange.maxD);\r\n nativeRange.delete();\r\n return tsRange;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Appends a single X, Y, Z point to the {@link XyzDataSeries3D}\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link appendRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChart3DSurface}\r\n * @param x The X-value\r\n * @param y The Y-value\r\n * @param z The Z-value\r\n * @param metadata An optional {@link IPointMetadata3D} value\r\n */\r\n XyzDataSeries3D.prototype.append = function (x, y, z, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.xValues.push_back(x);\r\n this.yValues.push_back(y);\r\n this.zValues.push_back(z);\r\n this.metadata.push(metadata); // its ok to push undefined here as its not a sparse array\r\n this.notifyDataChanged();\r\n }\r\n };\r\n /**\r\n * Appends a range of X, Y, Z points to the {@link XyzDataSeries3D}\r\n * @remarks\r\n * This method is considerably higher performance than {@link append} which appends a single point\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChart3DSurface}\r\n * @param xValues The X-values\r\n * @param yValues The Y-values\r\n * @param zValues The Z-values\r\n * @param metadatas Optional {@link IPointMetadata3D} values\r\n */\r\n XyzDataSeries3D.prototype.appendRange = function (xValues, yValues, zValues, metadatas) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", yValues, \"yValues\");\r\n Guard_1.Guard.arraysSameLength(yValues, \"yValues\", zValues, \"zValues\");\r\n var nativeX = this.xValues;\r\n var nativeY = this.yValues;\r\n var nativeZ = this.zValues;\r\n for (var i = 0; i < xValues.length; i++) {\r\n nativeX.push_back(xValues[i]);\r\n nativeY.push_back(yValues[i]);\r\n nativeZ.push_back(zValues[i]);\r\n if (metadatas) {\r\n var metadata = metadatas[i];\r\n this.metadata.push(metadata);\r\n }\r\n else {\r\n this.metadata.push(undefined); // its ok to push undefined here as its not a sparse array\r\n }\r\n }\r\n this.notifyDataChanged();\r\n }\r\n };\r\n /**\r\n * Updates a single X, Y, Z-value by index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChart3DSurface}\r\n * @param index the index to update\r\n * @param x The new X value\r\n * @param y The new Y value\r\n * @param z The new Z value\r\n */\r\n XyzDataSeries3D.prototype.update = function (index, x, y, z, metadata) {\r\n if (!this.getIsDeleted()) {\r\n this.xValues.set(index, x);\r\n this.yValues.set(index, y);\r\n this.zValues.set(index, z);\r\n this.metadata[index] = metadata;\r\n this.notifyDataChanged();\r\n }\r\n };\r\n /**\r\n * Inserts a single X,Y,Z value at the start index\r\n * @remarks\r\n * For best performance on drawing large datasets, use the {@link insertRange} method\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChart3DSurface}\r\n * @param startIndex the index to insert at\r\n * @param x the Xvalue\r\n * @param y the YValue\r\n * @param z the ZValue\r\n * @param metadata Optional metadata value\r\n */\r\n XyzDataSeries3D.prototype.insert = function (startIndex, x, y, z, metadata) {\r\n if (!this.getIsDeleted()) {\r\n if (startIndex < 0 || startIndex >= this.count()) {\r\n throw new Error(\"Start index is out of range\");\r\n }\r\n this.xValues.insertAt(startIndex, x);\r\n this.yValues.insertAt(startIndex, y);\r\n this.zValues.insertAt(startIndex, z);\r\n this.metadata.splice(startIndex, 0, metadata);\r\n this.notifyDataChanged();\r\n }\r\n };\r\n /**\r\n * Inserts a range of X,Y,Z values at the startIndex\r\n * @remarks\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChart3DSurface}\r\n * @param startIndex the index to insert at\r\n * @param xValues the XValues\r\n * @param yValues the YValues\r\n * @param zValues the ZValues\r\n * @param metadatas Optional metadata values to insert\r\n */\r\n XyzDataSeries3D.prototype.insertRange = function (startIndex, xValues, yValues, zValues, metadatas) {\r\n if (!this.getIsDeleted()) {\r\n Guard_1.Guard.arraysSameLength(xValues, \"xValues\", yValues, \"yValues\");\r\n Guard_1.Guard.arraysSameLength(zValues, \"zValues\", yValues, \"yValues\");\r\n if (startIndex < 0 || startIndex >= this.count()) {\r\n throw new Error(\"Start index is out of range\");\r\n }\r\n var rangeLength = xValues.length;\r\n for (var i = 0; i < rangeLength; i++, startIndex++) {\r\n this.xValues.insertAt(startIndex, xValues[i]);\r\n this.yValues.insertAt(startIndex, yValues[i]);\r\n this.zValues.insertAt(startIndex, zValues[i]);\r\n this.metadata.splice(startIndex, 0, metadatas ? metadatas[i] : undefined);\r\n }\r\n this.notifyDataChanged();\r\n }\r\n };\r\n /**\r\n * Removes a single X,Y,Z value at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChart3DSurface}\r\n * @param index the index to remove at\r\n */\r\n XyzDataSeries3D.prototype.removeAt = function (index) {\r\n if (!this.getIsDeleted()) {\r\n if (index < 0 || index >= this.count()) {\r\n throw new Error(\"index is out of range\");\r\n }\r\n this.xValues.removeAt(index);\r\n this.yValues.removeAt(index);\r\n this.zValues.removeAt(index);\r\n this.metadata.splice(index, 1);\r\n this.notifyDataChanged();\r\n }\r\n };\r\n /**\r\n * Removes a range of X,Y,Z values at the specified index\r\n * @remarks Any changes of the DataSeries will trigger a redraw on the parent {@link SciChart3DSurface}\r\n * @param startIndex the start index to remove at\r\n * @param count the number of points to remove\r\n */\r\n XyzDataSeries3D.prototype.removeRange = function (startIndex, count) {\r\n if (!this.getIsDeleted()) {\r\n if (startIndex < 0 || startIndex + count > this.count()) {\r\n throw new Error(\"index is out of range\");\r\n }\r\n this.xValues.removeRange(startIndex, count);\r\n this.yValues.removeRange(startIndex, count);\r\n this.zValues.removeRange(startIndex, count);\r\n this.metadata.splice(startIndex, count);\r\n this.notifyDataChanged();\r\n }\r\n };\r\n /**\r\n * Clears the entire DataSeries.\r\n * @remarks\r\n * Note this does not free memory, WebAssembly/Native memory is released by calling {@link delete}, after which the\r\n * DataSeries is no longer usable.\r\n *\r\n * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChart3DSurface}\r\n */\r\n XyzDataSeries3D.prototype.clear = function () {\r\n if (!this.getIsDeleted()) {\r\n this.xValues.clear();\r\n this.yValues.clear();\r\n this.zValues.clear();\r\n this.metadata = [];\r\n this.notifyDataChanged();\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n XyzDataSeries3D.prototype.delete = function () {\r\n this.xValues = (0, Deleter_1.deleteSafe)(this.xValues);\r\n this.yValues = (0, Deleter_1.deleteSafe)(this.yValues);\r\n this.zValues = (0, Deleter_1.deleteSafe)(this.zValues);\r\n this.metadata = [];\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * Gets the count of data-points in the DataSeries\r\n */\r\n XyzDataSeries3D.prototype.count = function () {\r\n if (this.xValues) {\r\n return this.xValues.size();\r\n }\r\n return 0;\r\n };\r\n return XyzDataSeries3D;\r\n}(BaseDataSeries3D_1.BaseDataSeries3D));\r\nexports.XyzDataSeries3D = XyzDataSeries3D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Vector3 = void 0;\r\nvar Guard_1 = require(\"../Core/Guard\");\r\n/**\r\n * Defines a 3-component vector with X,Y,Z values\r\n */\r\nvar Vector3 = /** @class */ (function () {\r\n /**\r\n * Creates a 3-component vector with X,Y,Z values\r\n * @param x\r\n * @param y\r\n * @param z\r\n */\r\n function Vector3(x, y, z) {\r\n this.xProperty = x;\r\n this.yProperty = y;\r\n this.zProperty = z;\r\n }\r\n Object.defineProperty(Vector3, \"zero\", {\r\n /**\r\n * Returns a static shared zero vector where X,Y,Z = 0\r\n */\r\n get: function () {\r\n return Vector3.zeroVector;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Vector3.prototype, \"x\", {\r\n /**\r\n * Gets the X-value\r\n * @remarks\r\n * Warning! Treat {@link Vector3} as immutable! Do not set this value but create new vectors if you need to change a value\r\n */\r\n get: function () {\r\n return this.xProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Vector3.prototype, \"y\", {\r\n /**\r\n * Gets the Y-value\r\n * @remarks\r\n * Warning! Treat {@link Vector3} as immutable! Do not set this value but create new vectors if you need to change a value\r\n */\r\n get: function () {\r\n return this.yProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Vector3.prototype, \"z\", {\r\n /**\r\n * Gets the Z-value\r\n * @remarks\r\n * Warning! Treat {@link Vector3} as immutable! Do not set this value but create new vectors if you need to change a value\r\n */\r\n get: function () {\r\n return this.zProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Used internally - converts the {@link Vector3} to a {@link TSRVector3} for compatibility with SciChart's webassembly engine\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n */\r\n Vector3.prototype.toTsrVector3 = function (webAssemblyContext) {\r\n Guard_1.Guard.notNull(webAssemblyContext, \"webAssemblyContext\");\r\n return new webAssemblyContext.TSRVector3(this.x, this.y, this.z);\r\n };\r\n /**\r\n * Performs vector subtraction of this - other, returning the result in a new vector\r\n * @description\r\n * An example can be found below\r\n * ```ts\r\n * const firstVector = new Vector3(1,2,3);\r\n * const secondVector = new Vector3(1,1,1);\r\n * const result = firstVector.subtract(secondVector);\r\n * // Result is [0,1,2]\r\n * ```\r\n * @param other the vector to substract from this vector\r\n * @returns A new vector with the subtraction result\r\n */\r\n Vector3.prototype.subtract = function (other) {\r\n return new Vector3(this.x - other.x, this.y - other.y, this.z - other.z);\r\n };\r\n /**\r\n * Performs vector addition of this + other, returning the result in a new vector\r\n * @description\r\n * An example can be found below\r\n * ```ts\r\n * const firstVector = new Vector3(1,2,3);\r\n * const secondVector = new Vector3(1,1,1);\r\n * const result = firstVector.add(secondVector);\r\n * // Result is [2,3,4]\r\n * ```\r\n * @param other the vector to add to this vector\r\n * @returns A new vector with the addition result\r\n */\r\n Vector3.prototype.add = function (other) {\r\n return new Vector3(this.x + other.x, this.y + other.y, this.z + other.z);\r\n };\r\n /**\r\n * Performs scalar multiplication of this vector x scalar constant, returning the result in a new vector\r\n * @description\r\n * An example can be found below\r\n * ```ts\r\n * const firstVector = new Vector3(1,2,3);\r\n * const result = firstVector.scalarMultiply(2);\r\n * // Result is [2,4,6]\r\n * ```\r\n * @param scalar\r\n * @returns A new vector with the multiply result\r\n */\r\n Vector3.prototype.scalarMultiply = function (scalar) {\r\n return new Vector3(this.x * scalar, this.y * scalar, this.z * scalar);\r\n };\r\n /**\r\n * Performs vector dot product of this vector and another vector, returning the result as a scalar\r\n * @param rhs the other vector to apply to the right hand side of the dot product\r\n */\r\n Vector3.prototype.dotProduct = function (rhs) {\r\n return this.x * rhs.x + this.y * rhs.y + this.z * rhs.z;\r\n };\r\n /**\r\n * Performs vector cross product of this vector and another vector, returning the result in a new vector\r\n * @description\r\n * An example can be found below\r\n * ```ts\r\n * const firstVector = new Vector3(1,2,3);\r\n * const secondVector = new Vector3(4,5,6);\r\n * const result = firstVector.crossProduct(secondVector);\r\n * // Result is firstVector ^ (cross) secondVector\r\n * ```\r\n * @param rhs the other vector to apply to the right hand side of the cross product\r\n * @returns A new vector with the cross product result\r\n */\r\n Vector3.prototype.crossProduct = function (rhs) {\r\n return new Vector3(this.y * rhs.z - this.z * rhs.y, this.z * rhs.x - this.x * rhs.z, this.x * rhs.y - this.y * rhs.x);\r\n };\r\n Object.defineProperty(Vector3.prototype, \"length\", {\r\n /**\r\n * Gets the euclidean length of the vector\r\n */\r\n get: function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Normalizes the current vector by computing its X,Y,Z components which make the length = 1\r\n * but direction the same\r\n * @remarks\r\n * This is the only operation which modifies the current vector (not immutable)\r\n */\r\n Vector3.prototype.normalize = function () {\r\n var m = 1.0 / this.length;\r\n if (m === 0) {\r\n throw new Error(\"Vector3 magnitude is zero, cannot normalize!\");\r\n }\r\n this.xProperty = this.xProperty * m;\r\n this.yProperty = this.yProperty * m;\r\n this.zProperty = this.zProperty * m;\r\n };\r\n /**\r\n * Returns a string representation of the vector for debugging purposes\r\n */\r\n Vector3.prototype.toString = function () {\r\n return \"Vector3 (\".concat(this.xProperty.toFixed(2), \", \").concat(this.yProperty.toFixed(2), \", \").concat(this.zProperty.toFixed(2), \")\");\r\n };\r\n Vector3.zeroVector = new Vector3(0, 0, 0);\r\n return Vector3;\r\n}());\r\nexports.Vector3 = Vector3;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TooltipSvgAnnotation3D = void 0;\r\nvar annotationHelpers_1 = require(\"../../../Charting/Visuals/Annotations/annotationHelpers\");\r\nvar IAnnotation_1 = require(\"../../../Charting/Visuals/Annotations/IAnnotation\");\r\nvar SvgAnnotationBase_1 = require(\"../../../Charting/Visuals/Annotations/SvgAnnotationBase\");\r\nvar constants_1 = require(\"../../../Charting/Visuals/Annotations/constants\");\r\n/**\r\n * A Tooltip Annotation which provides an SVG tooltip over the chart. Used by the {@link TooltipModifier3D}\r\n */\r\nvar TooltipSvgAnnotation3D = /** @class */ (function (_super) {\r\n __extends(TooltipSvgAnnotation3D, _super);\r\n /**\r\n * Creates an instance of the {@link CursorTooltipSvgAnnotation}\r\n * @param options\r\n */\r\n function TooltipSvgAnnotation3D(options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n _this = _super.call(this, options) || this;\r\n /** @inheritDoc */\r\n _this.type = IAnnotation_1.EAnnotationType.SVG;\r\n _this.tooltipLegendOffsetXProperty = 10;\r\n _this.tooltipLegendOffsetYProperty = 10;\r\n _this.isDirty = true;\r\n _this.isHidden = true;\r\n _this.titleProperty = (_a = options === null || options === void 0 ? void 0 : options.title) !== null && _a !== void 0 ? _a : _this.titleProperty;\r\n _this.tooltipSvgTemplateProperty = (_b = options === null || options === void 0 ? void 0 : options.tooltipSvgTemplate) !== null && _b !== void 0 ? _b : _this.tooltipSvgTemplateProperty;\r\n _this.containerBackgroundProperty = (_c = options === null || options === void 0 ? void 0 : options.containerBackground) !== null && _c !== void 0 ? _c : _this.containerBackgroundProperty;\r\n _this.textStrokeProperty = (_d = options === null || options === void 0 ? void 0 : options.textStroke) !== null && _d !== void 0 ? _d : _this.textStrokeProperty;\r\n _this.tooltipLegendTemplateProperty = (_e = options === null || options === void 0 ? void 0 : options.tooltipLegendTemplate) !== null && _e !== void 0 ? _e : _this.tooltipLegendTemplateProperty;\r\n _this.tooltipLegendOffsetXProperty = (_f = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetX) !== null && _f !== void 0 ? _f : _this.tooltipLegendOffsetXProperty;\r\n _this.tooltipLegendOffsetYProperty = (_g = options === null || options === void 0 ? void 0 : options.tooltipLegendOffsetY) !== null && _g !== void 0 ? _g : _this.tooltipLegendOffsetYProperty;\r\n _this.placementDivIdProperty = (_h = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _h !== void 0 ? _h : _this.placementDivId;\r\n _this.tooltipDataTemplateProperty = options === null || options === void 0 ? void 0 : options.tooltipDataTemplate;\r\n if (_this.placementDivId) {\r\n var svgRoot = document.querySelector(\"[id='\".concat(_this.placementDivId, \"']\"));\r\n _this.svgDivRoot = svgRoot;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"seriesInfo\", {\r\n /**\r\n * Gets or sets seriesInfos {@link SeriesInfo} value on the tooltip\r\n */\r\n get: function () {\r\n return this.seriesInfoProperty;\r\n },\r\n /**\r\n * Gets or sets seriesInfos {@link SeriesInfo} value on the tooltip\r\n */\r\n set: function (newSeriesInfo) {\r\n if (this.seriesInfoProperty !== newSeriesInfo) {\r\n this.seriesInfoProperty = newSeriesInfo;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_INFOS);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"title\", {\r\n get: function () {\r\n return this.titleProperty;\r\n },\r\n set: function (value) {\r\n if (this.titleProperty !== value) {\r\n this.titleProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TITLE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"tooltipSvgTemplate\", {\r\n get: function () {\r\n return this.tooltipSvgTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipSvgTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_SVG_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"tooltipLegendTemplate\", {\r\n get: function () {\r\n return this.tooltipLegendTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipLegendTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"tooltipDataTemplate\", {\r\n get: function () {\r\n return this.tooltipDataTemplateProperty;\r\n },\r\n set: function (value) {\r\n this.tooltipDataTemplateProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_DATA_TEMPLATE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"containerBackground\", {\r\n get: function () {\r\n return this.containerBackgroundProperty;\r\n },\r\n set: function (value) {\r\n if (this.containerBackgroundProperty !== value) {\r\n this.containerBackgroundProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.CONTAINER_BACKGROUND);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"tooltipLegendOffsetX\", {\r\n get: function () {\r\n return this.tooltipLegendOffsetXProperty;\r\n },\r\n set: function (value) {\r\n if (this.tooltipLegendOffsetXProperty !== value) {\r\n this.tooltipLegendOffsetXProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_OFFSET_X);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"tooltipLegendOffsetY\", {\r\n get: function () {\r\n return this.tooltipLegendOffsetYProperty;\r\n },\r\n set: function (value) {\r\n if (this.tooltipLegendOffsetYProperty !== value) {\r\n this.tooltipLegendOffsetYProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TOOLTIP_LEGEND_OFFSET_Y);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"textStroke\", {\r\n get: function () {\r\n return this.textStrokeProperty;\r\n },\r\n set: function (value) {\r\n if (this.textStrokeProperty !== value) {\r\n this.textStrokeProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TEXT_STROKE);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TooltipSvgAnnotation3D.prototype, \"placementDivId\", {\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n get: function () {\r\n return this.placementDivIdProperty;\r\n },\r\n /**\r\n * Gets or sets the parent div element reference or id for the Tooltip\r\n */\r\n set: function (value) {\r\n if (this.placementDivIdProperty !== value) {\r\n this.placementDivIdProperty = value;\r\n this.notifyPropertyChanged(\"PLACEMENT_DIV_ID\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n TooltipSvgAnnotation3D.prototype.update = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n if (!this.isDirty)\r\n return;\r\n this.isDirty = false;\r\n if (this.svg) {\r\n this.delete();\r\n }\r\n this.create(xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans);\r\n if (this.placementDivId) {\r\n this.updateExternalLegendTooltip();\r\n }\r\n else {\r\n this.updateTooltip(xCoordSvgTrans, yCoordSvgTrans);\r\n this.updateLegendTooltip();\r\n }\r\n };\r\n /** @inheritDoc */\r\n TooltipSvgAnnotation3D.prototype.delete = function () {\r\n if (!this.parentSurface || this.parentSurface.isDeleted || !this.svg)\r\n return;\r\n if (this.placementDivId) {\r\n this.svgDivRoot.removeChild(this.svg);\r\n }\r\n else {\r\n this.svgRoot.removeChild(this.svg);\r\n }\r\n this.setSvg(undefined);\r\n if (this.svgLegend) {\r\n this.svgRoot.removeChild(this.svgLegend);\r\n this.svgLegend = undefined;\r\n }\r\n };\r\n TooltipSvgAnnotation3D.prototype.notifyPropertyChanged = function (propertyName) {\r\n _super.prototype.notifyPropertyChanged.call(this, propertyName);\r\n this.isDirty = true;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n TooltipSvgAnnotation3D.prototype.create = function (xCalc, yCalc, xCoordSvgTrans, yCoordSvgTrans) {\r\n if (!this.tooltipSvgTemplate)\r\n throw Error(\"Please provide a tooltipSvgTemplate for CursorTooltipSvgAnnotation\");\r\n var svgString = this.tooltipSvgTemplate(this.seriesInfo, this);\r\n if (this.placementDivId) {\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgDivRoot, this.nextSibling);\r\n this.setSvg(svgNode);\r\n }\r\n else {\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n this.setSvg(svgNode);\r\n }\r\n };\r\n TooltipSvgAnnotation3D.prototype.updateTooltip = function (xCoordSvgTrans, yCoordSvgTrans) {\r\n var _a, _b, _c, _d;\r\n var shiftX = (_a = this.xCoordShift) !== null && _a !== void 0 ? _a : 0;\r\n var shiftY = (_b = this.yCoordShift) !== null && _b !== void 0 ? _b : 0;\r\n this.svg.style.display = this.isHidden ? \"none\" : \"block\";\r\n var mousePointX = (_c = this.x1) !== null && _c !== void 0 ? _c : 0;\r\n var mousePointY = (_d = this.y1) !== null && _d !== void 0 ? _d : 0;\r\n var x1Coord = shiftX + mousePointX + xCoordSvgTrans;\r\n var y1Coord = shiftY + mousePointY + yCoordSvgTrans;\r\n if (isNaN(x1Coord) || isNaN(y1Coord)) {\r\n this.svg.style.display = \"none\";\r\n }\r\n else {\r\n this.setSvgAttribute(\"x\", x1Coord);\r\n this.setSvgAttribute(\"y\", y1Coord);\r\n }\r\n };\r\n TooltipSvgAnnotation3D.prototype.updateLegendTooltip = function () {\r\n if (this.tooltipLegendTemplate) {\r\n var svgString = this.seriesInfo ? this.tooltipLegendTemplate(this.seriesInfo, this) : \"\";\r\n if (this.svgLegend) {\r\n this.svgRoot.removeChild(this.svgLegend);\r\n }\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n this.svgLegend = svgNode;\r\n this.svgLegend.setAttribute(\"x\", this.tooltipLegendOffsetX.toString());\r\n this.svgLegend.setAttribute(\"y\", this.tooltipLegendOffsetY.toString());\r\n }\r\n };\r\n TooltipSvgAnnotation3D.prototype.updateExternalLegendTooltip = function () {\r\n if (this.tooltipLegendTemplate) {\r\n var svgString = this.seriesInfo\r\n ? this.tooltipLegendTemplate(this.seriesInfo, this)\r\n : \"\";\r\n if (this.svgLegend) {\r\n this.svgLegend.removeChild(this.svgLegend);\r\n }\r\n var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgRoot, this.nextSibling);\r\n this.svgLegend = svgNode;\r\n }\r\n };\r\n return TooltipSvgAnnotation3D;\r\n}(SvgAnnotationBase_1.SvgAnnotationBase));\r\nexports.TooltipSvgAnnotation3D = TooltipSvgAnnotation3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxisBase3D = exports.EWhichAxis = void 0;\r\nvar AxisCore_1 = require(\"../../../Charting/Visuals/Axis/AxisCore\");\r\nvar SciChartSurfaceBase_1 = require(\"../../../Charting/Visuals/SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../../../Charting/Visuals/TextureManager/DpiHelper\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar AxisBase3DLabelStyle_1 = require(\"./AxisBase3DLabelStyle\");\r\nvar constants_1 = require(\"./constants\");\r\n/**\r\n * Which axis - used for calculations\r\n */\r\nvar EWhichAxis;\r\n(function (EWhichAxis) {\r\n EWhichAxis[EWhichAxis[\"xAxis\"] = 0] = \"xAxis\";\r\n EWhichAxis[EWhichAxis[\"yAxis\"] = 1] = \"yAxis\";\r\n EWhichAxis[EWhichAxis[\"zAxis\"] = 2] = \"zAxis\";\r\n})(EWhichAxis = exports.EWhichAxis || (exports.EWhichAxis = {}));\r\n/**\r\n * The base class for 3D Chart Axis within SciChart - High Performance\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}.\r\n * @description\r\n * AxisBase3D is a base class for both 3D Axis types in SciChart. Concrete types include:\r\n *\r\n * - {@link NumericAxis3D}: a Numeric 3D value-axis\r\n *\r\n * Set axis on the {@link SciChart3DSurface.xAxis}, {@link SciChart3DSurface.yAxis} or {@link SciChart3DSurface.zAxis} in 3D Charts.\r\n */\r\nvar AxisBase3D = /** @class */ (function (_super) {\r\n __extends(AxisBase3D, _super);\r\n /**\r\n * Creates an instance of the {@link AxisBase3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options optional parameters of type {@link IAxisBase3dOptions} to pass to the constructor\r\n * @protected\r\n */\r\n function AxisBase3D(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d, _e;\r\n _this = _super.call(this, options) || this;\r\n _this.labelDepthTestEnabledProperty = false;\r\n _this.planeBorderColorProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.planeBorderColor;\r\n _this.axisPlaneBackgroundFillProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.axisPlaneBackgroundFill;\r\n _this.isYAxisProperty = false;\r\n _this.isZAxisProperty = false;\r\n _this.labelStyle = new AxisBase3DLabelStyle_1.AxisBase3DLabelStyle(_this);\r\n _this.webAssemblyContext3D = webAssemblyContext;\r\n _this.isXAxisProperty = false;\r\n _this.tickLabelsOffsetProperty = (_a = options === null || options === void 0 ? void 0 : options.tickLabelsOffset) !== null && _a !== void 0 ? _a : 10;\r\n _this.titleOffsetProperty = (_b = options === null || options === void 0 ? void 0 : options.titleOffset) !== null && _b !== void 0 ? _b : 50;\r\n _this.planeBorderColorProperty = (_c = options === null || options === void 0 ? void 0 : options.planeBorderColor) !== null && _c !== void 0 ? _c : _this.planeBorderColorProperty;\r\n _this.planeBorderThicknessProperty = (_d = options === null || options === void 0 ? void 0 : options.planeBorderThickness) !== null && _d !== void 0 ? _d : 2;\r\n _this.axisPlaneBackgroundFillProperty = (_e = options === null || options === void 0 ? void 0 : options.planeBackgroundFill) !== null && _e !== void 0 ? _e : _this.axisPlaneBackgroundFillProperty;\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n AxisBase3D.prototype.applyTheme = function (themeProvider) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var previousThemeProvider = this.parentSurface.previousThemeProvider;\r\n if (((_a = this.labelStyle) === null || _a === void 0 ? void 0 : _a.foreground) === previousThemeProvider.labelForegroundBrush) {\r\n this.labelStyle.foreground = themeProvider.labelForegroundBrush;\r\n }\r\n if (this.axisBandsFill === previousThemeProvider.axisBandsFill) {\r\n this.axisBandsFill = themeProvider.axisBandsFill;\r\n }\r\n if (((_b = this.majorGridLineStyle) === null || _b === void 0 ? void 0 : _b.color) === previousThemeProvider.majorGridLineBrush) {\r\n this.majorGridLineStyle = { color: themeProvider.majorGridLineBrush };\r\n }\r\n if (((_c = this.majorTickLineStyle) === null || _c === void 0 ? void 0 : _c.color) === previousThemeProvider.majorGridLineBrush) {\r\n this.majorTickLineStyle = { color: themeProvider.majorGridLineBrush };\r\n }\r\n if (((_d = this.minorGridLineStyle) === null || _d === void 0 ? void 0 : _d.color) === previousThemeProvider.minorGridLineBrush) {\r\n this.minorGridLineStyle = { color: themeProvider.minorGridLineBrush };\r\n }\r\n if (((_e = this.minorTickLineStyle) === null || _e === void 0 ? void 0 : _e.color) === previousThemeProvider.minorGridLineBrush) {\r\n this.minorTickLineStyle = { color: themeProvider.minorGridLineBrush };\r\n }\r\n if (((_f = this.axisTitleStyle) === null || _f === void 0 ? void 0 : _f.color) === previousThemeProvider.axisTitleColor) {\r\n this.axisTitleStyle = { color: themeProvider.axisTitleColor };\r\n }\r\n if (this.planeBorderColor === previousThemeProvider.planeBorderColor) {\r\n this.planeBorderColor = themeProvider.planeBorderColor;\r\n }\r\n if (this.axisPlaneBackgroundFill === previousThemeProvider.axisPlaneBackgroundFill) {\r\n this.axisPlaneBackgroundFill = themeProvider.axisPlaneBackgroundFill;\r\n }\r\n };\r\n Object.defineProperty(AxisBase3D.prototype, \"isYAxis\", {\r\n /**\r\n * Used internally - gets whether this axis is a Y Axis\r\n */\r\n get: function () {\r\n return this.isYAxisProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Used internally - sets whether this axis is a Y Axis\r\n */\r\n AxisBase3D.prototype.setIsYAxis = function (isYAxis) {\r\n this.isYAxisProperty = isYAxis;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_Y_AXIS);\r\n };\r\n Object.defineProperty(AxisBase3D.prototype, \"isZAxis\", {\r\n /**\r\n * Used internally - gets whether this axis is a Z Axis\r\n */\r\n get: function () {\r\n return this.isZAxisProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Used internally - sets whether this axis is a Z Axis\r\n */\r\n AxisBase3D.prototype.setIsZAxis = function (isZAxis) {\r\n this.isZAxisProperty = isZAxis;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.IS_Z_AXIS);\r\n };\r\n Object.defineProperty(AxisBase3D.prototype, \"labelDepthTestEnabled\", {\r\n /**\r\n * Gets or sets if Label Depth test is enabled\r\n * @description When true, Labels are rendered with depth and can be behind chart objects.\r\n * Else, labels are always on top and closest to the viewer\r\n */\r\n get: function () {\r\n return this.labelDepthTestEnabledProperty;\r\n },\r\n /**\r\n * Gets or sets if Label Depth test is enabled\r\n * @description When true, Labels are rendered with depth and can be behind chart objects.\r\n * Else, labels are always on top and closest to the viewer\r\n */\r\n set: function (labelDepthTestEnabled) {\r\n this.labelDepthTestEnabledProperty = labelDepthTestEnabled;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_DEPTH_TEST);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"planeBorderThickness\", {\r\n /**\r\n * Gets or sets a thickness of the axis plane border.\r\n */\r\n get: function () {\r\n return this.planeBorderThicknessProperty;\r\n },\r\n /**\r\n * Gets or sets a thickness of the axis plane border.\r\n */\r\n set: function (planeBorderThickness) {\r\n this.planeBorderThicknessProperty = planeBorderThickness;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PLANE_BORDER_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"planeBorderColor\", {\r\n /**\r\n * Gets or sets the color of the axis plane border as an HTML Color code\r\n */\r\n get: function () {\r\n return this.planeBorderColorProperty;\r\n },\r\n /**\r\n * Gets or sets the color of the axis plane border as an HTML Color code\r\n */\r\n set: function (planeBorderColor) {\r\n this.planeBorderColorProperty = planeBorderColor;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.PLANE_BORDER_COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"tickLabelAlignment\", {\r\n /**\r\n * Gets or sets the Axis Label Alignment. See {@link ETextAlignment3D} for a list of values\r\n */\r\n get: function () {\r\n return this.tickLabelAlignmentProperty;\r\n },\r\n /**\r\n * Gets or sets the Axis Label Alignment. See {@link ETextAlignment3D} for a list of values\r\n */\r\n set: function (tickLabelAlignment) {\r\n this.tickLabelAlignmentProperty = tickLabelAlignment;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TICK_LABEL_ALIGNMENT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"positiveSideClipping\", {\r\n /**\r\n * Gets or sets a value determining how {@link BaseRenderableSeries3D | 3D RenderableSeries} are clipped by axis on the positive side\r\n * @remarks See {@link EAxisSideClipping} for a list of values\r\n */\r\n get: function () {\r\n return this.positiveSideClippingProperty;\r\n },\r\n /**\r\n * Gets or sets a value determining how {@link BaseRenderableSeries3D | 3D RenderableSeries} are clipped by axis on the positive side\r\n * @remarks See {@link EAxisSideClipping} for a list of values\r\n */\r\n set: function (positiveSideClipping) {\r\n this.positiveSideClippingProperty = positiveSideClipping;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.POSITIVE_SIDE_CLIPPING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"negativeSideClipping\", {\r\n /**\r\n * Gets or sets a value determining how {@link BaseRenderableSeries3D | 3D RenderableSeries} are clipped by axis on the negative side\r\n * @remarks See {@link EAxisSideClipping} for a list of values\r\n */\r\n get: function () {\r\n return this.negativeSideClippingProperty;\r\n },\r\n /**\r\n * Gets or sets a value determining how {@link BaseRenderableSeries3D | 3D RenderableSeries} are clipped by axis on the negative side\r\n * @remarks See {@link EAxisSideClipping} for a list of values\r\n */\r\n set: function (negativeSideClipping) {\r\n this.negativeSideClippingProperty = negativeSideClipping;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.NEGATIVE_SIDE_CLIPPING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"axisPlaneBackgroundFill\", {\r\n /**\r\n * Gets or sets the fill of the Axis Plane background as an HTML Color code. Defaults to transparent\r\n */\r\n get: function () {\r\n return this.axisPlaneBackgroundFillProperty;\r\n },\r\n /**\r\n * Gets or sets the fill of the Axis Plane background as an HTML Color code. Defaults to transparent\r\n */\r\n set: function (axisPlaneBackgroundFill) {\r\n this.axisPlaneBackgroundFillProperty = axisPlaneBackgroundFill;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.AXIS_PLANE_BACKGROUND_FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"titleOffset\", {\r\n /**\r\n * Gets or sets title text offset from the axis plane\r\n */\r\n get: function () {\r\n return this.titleOffsetProperty;\r\n },\r\n /**\r\n * Gets or sets title text offset from the axis plane\r\n */\r\n set: function (value) {\r\n this.titleOffsetProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TITLE_OFFSET);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"backgroundColor\", {\r\n /**\r\n * Gets or sets the color of the background of the axis plane as an HTML Color code\r\n */\r\n get: function () {\r\n return this.axisPlaneBackgroundFill;\r\n },\r\n /**\r\n * Gets or sets the color of the background of the axis plane as an HTML Color code\r\n */\r\n set: function (value) {\r\n this.axisPlaneBackgroundFill = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.BACKGROUND_COLOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3D.prototype, \"tickLabelsOffset\", {\r\n /**\r\n * Gets or sets tick labels offset from the axis plane\r\n */\r\n get: function () {\r\n return this.tickLabelsOffsetProperty;\r\n },\r\n /**\r\n * Gets or sets tick labels offset from the axis plane\r\n */\r\n set: function (value) {\r\n this.tickLabelsOffsetProperty = value;\r\n this.notifyPropertyChanged(constants_1.PROPERTY.TICK_LABELS_OFFSET);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AxisBase3D.prototype.onAttach = function (parentSurface, isXaxis, isYAxis, isZAxis) {\r\n this.parentSurface = parentSurface;\r\n this.setIsXAxis(isXaxis);\r\n this.setIsYAxis(isYAxis);\r\n this.setIsZAxis(isZAxis);\r\n };\r\n /**\r\n * Called internally - returns an {@link IAxisDescriptor} which contains parameters, property and data\r\n * to pass to the WebAssembly 3D Engine for drawing this axis\r\n */\r\n AxisBase3D.prototype.toAxisDescriptor = function () {\r\n var defaultColor = \"transparent\";\r\n var defaultBandsColor = \"#202123\";\r\n var _a = this.getTickCoordsAndLabels(), majorTickCoords = _a.majorTickCoords, minorTickCoords = _a.minorTickCoords, majorTickLabels = _a.majorTickLabels;\r\n // @ts-ignore\r\n // @ts-ignore\r\n var descriptor = {\r\n axisTitle: Array.isArray(this.axisTitle) ? this.axisTitle.join(\" \") : this.axisTitle,\r\n axisSize: this.getAxisSize(),\r\n backgroundColor: (0, parseColor_1.parseColorToTArgb)(this.axisPlaneBackgroundFill || defaultColor),\r\n bandColor: (0, parseColor_1.parseColorToTArgb)(this.axisBandsFill || defaultBandsColor),\r\n borderColor: (0, parseColor_1.parseColorToTArgb)(this.planeBorderColor || defaultColor),\r\n borderThickness: this.planeBorderThickness,\r\n drawBands: this.drawMajorBands,\r\n drawMajorGridlines: this.drawMajorGridLines,\r\n drawMajorTicks: this.drawMajorTickLines,\r\n drawMinorGridlines: this.drawMinorGridLines,\r\n drawMinorTicks: this.drawMinorTickLines,\r\n isVisible: this.isVisible,\r\n labelDepthTestEnabled: this.labelDepthTestEnabled,\r\n labelStyle: {\r\n alignment: this.labelStyle.alignment,\r\n dpiScaling: this.labelStyle.dpiScaling / 96,\r\n fontFamily: this.labelStyle.fontFamily,\r\n fontSize: this.labelStyle.fontSize * DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n foreground: (0, parseColor_1.parseColorToUIntArgb)(this.labelStyle.foreground)\r\n },\r\n majorCoordinates: majorTickCoords,\r\n majorLineStyle: toLineStyle(this.majorGridLineStyle),\r\n minorLineStyle: toLineStyle(this.minorGridLineStyle),\r\n majorTickStyle: toTickStyle(this.majorTickLineStyle),\r\n minorTickStyle: toTickStyle(this.minorTickLineStyle),\r\n minorCoordinates: minorTickCoords,\r\n smoothLabelOverlapAvoidance: false,\r\n tickLabels: majorTickLabels,\r\n tickLabelsOffset: this.tickLabelsOffset * DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n titleOffset: this.titleOffset * DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n titleStyle: undefined // ITextStyle interface which contains font, fontfamily, fontsize\r\n };\r\n return descriptor;\r\n };\r\n AxisBase3D.prototype.validateAxis = function () {\r\n // TODO\r\n };\r\n /**\r\n * @Summary Part of AutoRanging - Gets the maximum range on this axis\r\n * @description The getMaximumRange function computes the {@link visibleRange} min and max that this axis must\r\n * have to display all the data in the chart.\r\n */\r\n AxisBase3D.prototype.getMaximumRange = function () {\r\n var _a, _b, _c, _d, _e;\r\n var maximumRange = new NumberRange_1.NumberRange(NaN, NaN);\r\n if (((_b = (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.renderableSeries) === null || _b === void 0 ? void 0 : _b.size()) > 0) {\r\n var whichAxis = void 0;\r\n if (this.isXAxis) {\r\n whichAxis = EWhichAxis.xAxis;\r\n }\r\n else if (this.isYAxis) {\r\n whichAxis = EWhichAxis.yAxis;\r\n }\r\n else if (this.isZAxis) {\r\n whichAxis = EWhichAxis.zAxis;\r\n }\r\n else {\r\n throw Error(\"AxisBase3D: isXAxis, isYAxis, isZAxis flag are not set\");\r\n }\r\n maximumRange = (_c = this.getMaximumRangeAs(this.parentSurface.renderableSeries, whichAxis)) !== null && _c !== void 0 ? _c : maximumRange;\r\n if (maximumRange.isZero()) {\r\n maximumRange = this.coerceZeroVisibleRange(maximumRange);\r\n }\r\n // Apply growby\r\n if ((_d = this.growBy) === null || _d === void 0 ? void 0 : _d.isDefined()) {\r\n maximumRange = maximumRange.growBy(this.growBy);\r\n }\r\n }\r\n var currentVisibleRange = ((_e = this.visibleRange) === null || _e === void 0 ? void 0 : _e.isDefined()) ? this.visibleRange : this.getDefaultNonZeroRange();\r\n return (maximumRange === null || maximumRange === void 0 ? void 0 : maximumRange.isDefined()) ? maximumRange : currentVisibleRange;\r\n };\r\n /**\r\n * @Summary Part of AutoRanging - Gets the maximum range on this axis.\r\n * @description The getMaximumRange function computes the {@link visibleRange} min and max that this axis must\r\n * have to display all the data in the chart.\r\n * @remarks This overload impersonates a specific axis according to the {@link EWhichAxis} parameter\r\n * @param whichAxis Which axis we should calculate as. See {@link EWhichAxis} for a list of values\r\n * @param renderableSeries The series to use for calculations\r\n */\r\n AxisBase3D.prototype.getMaximumRangeAs = function (renderableSeries, whichAxis) {\r\n var maximumRange;\r\n renderableSeries.asArray().forEach(function (r) {\r\n if (r.isVisible && r.dataSeries) {\r\n var range = whichAxis === EWhichAxis.xAxis\r\n ? r.dataSeries.xRange\r\n : whichAxis === EWhichAxis.yAxis\r\n ? r.dataSeries.yRange\r\n : r.dataSeries.zRange;\r\n if (range === null || range === void 0 ? void 0 : range.isDefined()) {\r\n maximumRange = !maximumRange ? range : range.union(maximumRange);\r\n }\r\n }\r\n });\r\n return maximumRange;\r\n };\r\n /**\r\n * gets the axis size from the WorldDimensions, depending on whether it is an X,Y or ZAxis\r\n */\r\n AxisBase3D.prototype.getAxisSize = function () {\r\n if (!this.parentSurface) {\r\n return 0;\r\n }\r\n var worldDimensions = this.parentSurface.worldDimensions;\r\n if (!worldDimensions) {\r\n throw new Error(\"Must set property sciChart3DSurface.worldDimensions to a valid Vector3 with X,Y,Z world size\");\r\n }\r\n var axisSize = this.isXAxis ? worldDimensions.x : this.isYAxis ? worldDimensions.y : worldDimensions.z;\r\n return axisSize;\r\n };\r\n /**\r\n * Given an array of numeric values for axis labels, returns a list of strings. Uses {@link labelProvider} property to format labels\r\n * @param majorTicks The major tick values as numbers to be converted to labels\r\n * @protected\r\n */\r\n AxisBase3D.prototype.getLabels = function (majorTicks) {\r\n var _this = this;\r\n return majorTicks.map(function (tick) { return _this.labelProvider.formatLabel(tick); });\r\n };\r\n AxisBase3D.prototype.getTicks = function () {\r\n var maxAutoTicks = this.getMaxAutoTicks();\r\n if (this.autoTicks) {\r\n var delta = this.deltaCalculator.getDeltaFromRange(this.visibleRange.min, this.visibleRange.max, this.minorsPerMajor, maxAutoTicks);\r\n this.minorDeltaProperty = delta.min;\r\n this.majorDeltaProperty = delta.max;\r\n }\r\n var majorTicks = this.tickProvider.getMajorTicks(this.minorDeltaProperty, this.majorDeltaProperty, this.visibleRange);\r\n var minorTicks = this.tickProvider.getMinorTicks(this.minorDeltaProperty, this.majorDeltaProperty, this.visibleRange);\r\n return {\r\n majorTicks: majorTicks,\r\n minorTicks: minorTicks\r\n };\r\n };\r\n AxisBase3D.prototype.getTickCoordsAndLabels = function () {\r\n var coordCalc = this.getCurrentCoordinateCalculator();\r\n var getTickCoords = function (ticks) { return ticks.map(function (el) { return coordCalc.getCoordinate(el); }); };\r\n var _a = this.getTicks(), majorTicks = _a.majorTicks, minorTicks = _a.minorTicks;\r\n var majorTickLabels = this.getLabels(majorTicks);\r\n var majorTickCoords = getTickCoords(majorTicks);\r\n var minorTickCoords = getTickCoords(minorTicks);\r\n return {\r\n majorTicks: majorTicks,\r\n majorTickLabels: majorTickLabels,\r\n majorTickCoords: majorTickCoords,\r\n minorTicks: minorTicks,\r\n minorTickCoords: minorTickCoords\r\n };\r\n };\r\n return AxisBase3D;\r\n}(AxisCore_1.AxisCore));\r\nexports.AxisBase3D = AxisBase3D;\r\n/** @ignore */\r\nvar toLineStyle = function (styleProperty) {\r\n return {\r\n stroke: (0, parseColor_1.parseColorToTArgb)(styleProperty.color),\r\n strokeThickness: styleProperty.strokeThickness * DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n start: 1,\r\n end: 1\r\n };\r\n};\r\n/** @ignore */\r\nvar toTickStyle = function (tickLineStyle) {\r\n return {\r\n stroke: (0, parseColor_1.parseColorToTArgb)(tickLineStyle.color),\r\n strokeThickness: tickLineStyle.strokeThickness * DpiHelper_1.DpiHelper.PIXEL_RATIO,\r\n start: 0,\r\n end: tickLineStyle.tickSize * DpiHelper_1.DpiHelper.PIXEL_RATIO\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxisBase3DLabelStyle = void 0;\r\nvar SciChartSurfaceBase_1 = require(\"../../../Charting/Visuals/SciChartSurfaceBase\");\r\nvar constants_1 = require(\"./constants\");\r\nvar AxisBase3DLabelStyle = /** @class */ (function () {\r\n function AxisBase3DLabelStyle(parentAxis) {\r\n this.dpiScalingProperty = 96;\r\n this.fontFamilyProperty = \"Arial\";\r\n this.fontSizeProperty = 14;\r\n this.foregroundProperty = SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME.labelForegroundBrush;\r\n this.parentAxis = parentAxis;\r\n }\r\n Object.defineProperty(AxisBase3DLabelStyle.prototype, \"alignment\", {\r\n get: function () {\r\n return this.alignmentProperty;\r\n },\r\n set: function (value) {\r\n this.alignmentProperty = value;\r\n this.notifyPropertyChanged(constants_1.TEXT_STYLE_PROPERTY.ALIGNMENT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3DLabelStyle.prototype, \"dpiScaling\", {\r\n get: function () {\r\n return this.dpiScalingProperty;\r\n },\r\n set: function (value) {\r\n this.dpiScalingProperty = value;\r\n this.notifyPropertyChanged(constants_1.TEXT_STYLE_PROPERTY.DPI_SCALING);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3DLabelStyle.prototype, \"fontFamily\", {\r\n get: function () {\r\n return this.fontFamilyProperty;\r\n },\r\n set: function (value) {\r\n this.fontFamilyProperty = value;\r\n this.notifyPropertyChanged(constants_1.TEXT_STYLE_PROPERTY.FONT_FAMILY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3DLabelStyle.prototype, \"fontSize\", {\r\n get: function () {\r\n return this.fontSizeProperty;\r\n },\r\n set: function (value) {\r\n this.fontSizeProperty = value;\r\n this.notifyPropertyChanged(constants_1.TEXT_STYLE_PROPERTY.FONT_SIZE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AxisBase3DLabelStyle.prototype, \"foreground\", {\r\n get: function () {\r\n return this.foregroundProperty;\r\n },\r\n set: function (value) {\r\n this.foregroundProperty = value;\r\n this.notifyPropertyChanged(constants_1.TEXT_STYLE_PROPERTY.FOREGROUND);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AxisBase3DLabelStyle.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n var invalidateParentCallback = (_a = this.parentAxis) === null || _a === void 0 ? void 0 : _a.invalidateParentCallback;\r\n if (invalidateParentCallback) {\r\n invalidateParentCallback();\r\n }\r\n };\r\n return AxisBase3DLabelStyle;\r\n}());\r\nexports.AxisBase3DLabelStyle = AxisBase3DLabelStyle;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.toScrtTextStyle = exports.updateScrtLineStyle = exports.updateScrtAxisDescriptor = exports.AxisCubeEntity = void 0;\r\nvar SceneEntityType_1 = require(\"../../../types/SceneEntityType\");\r\nvar tsrExtensions_1 = require(\"../../../utils/tsrExtensions\");\r\nvar BaseSceneEntity3D_1 = require(\"../Primitives/BaseSceneEntity3D\");\r\nvar IAxisDescriptor_1 = require(\"./IAxisDescriptor\");\r\n/**\r\n * The {@link AxisCubeEntity} is a 3D Scene Entity (inherits {@link BaseSceneEntity3D}) which renders the 3D X,Y,Z axis cube,\r\n * axis walls and labels in a {@link SciChart3DSurface}\r\n */\r\nvar AxisCubeEntity = /** @class */ (function (_super) {\r\n __extends(AxisCubeEntity, _super);\r\n /**\r\n * Creates an instance of an {@link AxisCubeEntity}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param sciChart3DSurface The {@link SciChart3DSurface} associated with the axis cube\r\n */\r\n function AxisCubeEntity(webAssemblyContext, sciChart3DSurface) {\r\n var _this = _super.call(this, webAssemblyContext) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = SceneEntityType_1.ESceneEntityType.AxisCubeEntity;\r\n _this.sciChart3DSurface = sciChart3DSurface;\r\n _this.setNativeEntity(webAssemblyContext.SCRTAxisCubeEntity.implement(_this));\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n AxisCubeEntity.prototype.Update = function (deltaTime) {\r\n var _this = this;\r\n var _a, _b;\r\n // console.log(\"update\");\r\n // this gets called from wasm!!\r\n if (!this.currentRenderPassData) {\r\n return;\r\n }\r\n var scrtAxisCubeEntity = this.nativeEntity;\r\n var scrtAxisCubeDescriptor = scrtAxisCubeEntity.GetDescriptorPtr();\r\n var _c = this.currentRenderPassData.sceneDescriptor.axisCubeDescriptor, xAxisDescriptor = _c.xAxisDescriptor, yAxisDescriptor = _c.yAxisDescriptor, zAxisDescriptor = _c.zAxisDescriptor;\r\n // Check for changes and force recreation of meshes in C++ side\r\n if (!(0, IAxisDescriptor_1.getDescriptorsEqual)(xAxisDescriptor, this.lastXDescriptor) ||\r\n !(0, IAxisDescriptor_1.getDescriptorsEqual)(yAxisDescriptor, this.lastYDescriptor) ||\r\n !(0, IAxisDescriptor_1.getDescriptorsEqual)(zAxisDescriptor, this.lastZDescriptor)) {\r\n // Destroy meshes to recreate later in SCRTAxisCubeEntity::Update()\r\n // console.warn(\"Property changed, destroying meshes\");\r\n scrtAxisCubeEntity.DestroyMeshes();\r\n }\r\n this.lastXDescriptor = xAxisDescriptor;\r\n this.lastYDescriptor = yAxisDescriptor;\r\n this.lastZDescriptor = zAxisDescriptor;\r\n // TODO: MEMORY LEAK if we don't delete the SCRTAxisDescriptor\r\n var xScrtAxisDesc = scrtAxisCubeDescriptor.GetXAxisDescPtr();\r\n var yScrtAxisDesc = scrtAxisCubeDescriptor.GetYAxisDescPtr();\r\n var zScrtAxisDesc = scrtAxisCubeDescriptor.GetZAxisDescPtr();\r\n var descriptorsMapping = [\r\n [xScrtAxisDesc, xAxisDescriptor],\r\n [yScrtAxisDesc, yAxisDescriptor],\r\n [zScrtAxisDesc, zAxisDescriptor]\r\n ];\r\n descriptorsMapping.forEach(function (el) { return (0, exports.updateScrtAxisDescriptor)(_this.webAssemblyContext, el[0], el[1]); });\r\n // The code below is commented due to performance reasons\r\n // yAxisDescriptor.majorCoordinates.forEach(c => console.log(\" .. coord \" + c));\r\n // yAxisDescriptor.tickLabels.forEach(l => console.log(\" .. label \" + l));\r\n // scrtAxisCubeEntity.DebugDescriptor();\r\n _super.prototype.Update.call(this, deltaTime);\r\n // Redraw after setting up the axis cube\r\n if (!((_a = this.sciChart3DSurface) === null || _a === void 0 ? void 0 : _a.isAxisCubeRendered)) {\r\n (_b = this.sciChart3DSurface) === null || _b === void 0 ? void 0 : _b.setIsAxisCubeRendered();\r\n setTimeout(function () { var _a; return (_a = _this.sciChart3DSurface) === null || _a === void 0 ? void 0 : _a.invalidateElement(); }, 0);\r\n }\r\n };\r\n return AxisCubeEntity;\r\n}(BaseSceneEntity3D_1.BaseSceneEntity3D));\r\nexports.AxisCubeEntity = AxisCubeEntity;\r\n/** @ignore */\r\nvar updateScrtAxisDescriptor = function (wasmContext, scrtAxisDesc, axisDesc) {\r\n var _a;\r\n scrtAxisDesc.m_strTitle = (_a = axisDesc.axisTitle) !== null && _a !== void 0 ? _a : \"\";\r\n scrtAxisDesc.m_fRangeSize = axisDesc.axisSize;\r\n scrtAxisDesc.m_fTitleOffset = axisDesc.titleOffset;\r\n scrtAxisDesc.m_fTextOffset = axisDesc.tickLabelsOffset;\r\n scrtAxisDesc.m_bBandsEnabled = axisDesc.drawBands;\r\n scrtAxisDesc.m_bMajorLinesEnabled = axisDesc.drawMajorGridlines;\r\n scrtAxisDesc.m_bMajorTicksEnabled = axisDesc.drawMajorTicks;\r\n scrtAxisDesc.m_bMinorLinesEnabled = axisDesc.drawMinorGridlines;\r\n scrtAxisDesc.m_bMinorTicksEnabled = axisDesc.drawMinorTicks;\r\n scrtAxisDesc.m_fBorderThickness = axisDesc.borderThickness;\r\n (0, tsrExtensions_1.updateTsrVector4)(axisDesc.borderColor, scrtAxisDesc.GetBorderColorPtr());\r\n (0, tsrExtensions_1.updateTsrVector4)(axisDesc.backgroundColor, scrtAxisDesc.GetBackgroundColorPtr());\r\n (0, tsrExtensions_1.updateTsrVector4)(axisDesc.bandColor, scrtAxisDesc.GetBandColorPtr());\r\n (0, exports.updateScrtLineStyle)(axisDesc.majorLineStyle, scrtAxisDesc.GetMajorLineStylePtr());\r\n (0, exports.updateScrtLineStyle)(axisDesc.minorLineStyle, scrtAxisDesc.GetMinorLineStylePtr());\r\n (0, exports.toScrtTextStyle)(axisDesc.labelStyle, scrtAxisDesc.GetTextStylePtr());\r\n (0, exports.updateScrtLineStyle)(axisDesc.majorTickStyle, scrtAxisDesc.GetMajorTickStylePtr());\r\n (0, exports.updateScrtLineStyle)(axisDesc.minorTickStyle, scrtAxisDesc.GetMinorTickStylePtr());\r\n // toScrtTextStyle(axisDesc.titleStyle, scrtAxisDesc.GetTitleStylePtr());\r\n // console.log(\"majorCoordinates\", axisDesc.majorCoordinates);\r\n // console.log(\"minorCoordinates\", axisDesc.minorCoordinates);\r\n // console.log(\"tickLabels\", axisDesc.tickLabels);\r\n var majors = new wasmContext.FloatVector();\r\n axisDesc.majorCoordinates.forEach(function (el) { return majors.push_back(el); });\r\n scrtAxisDesc.SetMajors(majors);\r\n majors.delete();\r\n var minors = new wasmContext.FloatVector();\r\n axisDesc.minorCoordinates.forEach(function (el) { return minors.push_back(el); });\r\n scrtAxisDesc.SetMinors(minors);\r\n minors.delete();\r\n var majorLabels = new wasmContext.WStringVector();\r\n axisDesc.tickLabels.forEach(function (el) { return majorLabels.push_back(el); });\r\n scrtAxisDesc.SetMajorLabels(majorLabels);\r\n majorLabels.delete();\r\n};\r\nexports.updateScrtAxisDescriptor = updateScrtAxisDescriptor;\r\n/** @ignore */\r\nvar updateScrtLineStyle = function (lineStyle, scrtLineStyle) {\r\n scrtLineStyle.m_fStrokeThickness = lineStyle.strokeThickness;\r\n scrtLineStyle.m_fStart = lineStyle.start;\r\n scrtLineStyle.m_fEnd = lineStyle.end;\r\n (0, tsrExtensions_1.updateTsrVector4)(lineStyle.stroke, scrtLineStyle.GetStrokeColorPtr());\r\n};\r\nexports.updateScrtLineStyle = updateScrtLineStyle;\r\n/** @ignore */\r\nvar toScrtTextStyle = function (labelStyle, scrtTextStyle) {\r\n scrtTextStyle.m_fSize = labelStyle.fontSize;\r\n scrtTextStyle.m_strFont = labelStyle.fontFamily;\r\n scrtTextStyle.m_uiARGBColor = labelStyle.foreground;\r\n scrtTextStyle.m_fDpiScaling = labelStyle.dpiScaling;\r\n if (labelStyle.alignment) {\r\n scrtTextStyle.SetAlignment(labelStyle.alignment);\r\n }\r\n return scrtTextStyle;\r\n};\r\nexports.toScrtTextStyle = toScrtTextStyle;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EAxisSideClipping = void 0;\r\n/**\r\n * Defines the Clipping rule for {@link https://www.scichart.com/javascript-chart-features | Javascript 3D Chart} Axis\r\n * @remarks\r\n * Set Clipping rule on the {@link AxisBase3D.negativeSideClipping} and {@link AxisBase3D.positiveSideClipping}\r\n */\r\nvar EAxisSideClipping;\r\n(function (EAxisSideClipping) {\r\n /**\r\n * Default {@link https://www.scichart.com/javascript-chart-features | Javascript 3D Chart} Axis clipping is\r\n * {@link AxisCore.visibleRange} for X and Z Axis, and None for Y Axis\r\n * @remarks\r\n * Data from {@link https://www.scichart.com/javascript-chart-features | 3D Javascript Chart} types can spill\r\n * out beyond the confines of the Axis for the YAxis (up/down)\r\n * but be clipped to the {@link AxisCore.visibleRange} for the Z/X Axis\r\n */\r\n EAxisSideClipping[EAxisSideClipping[\"Default\"] = 0] = \"Default\";\r\n /**\r\n * 3D Axis Clipping is disabled\r\n * @remarks\r\n * Data from {@link https://www.scichart.com/javascript-chart-features | 3D Javascript Chart}\r\n * types can spill out beyond the confines of the Axis.\r\n */\r\n EAxisSideClipping[EAxisSideClipping[\"None\"] = 1] = \"None\";\r\n /**\r\n * RenderableSeries are clipped by {@link AxisCore.visibleRange}\r\n * @remarks\r\n * If a {@link https://www.scichart.com/javascript-chart-features | Javascript Chart} type such as a\r\n * 3D Scatter or 3D Surface mesh plot are plotted on this axis,\r\n * the data will be clipped to be invisible outside the {@link AxisCore.visibleRange}\r\n */\r\n EAxisSideClipping[EAxisSideClipping[\"VisibleRange\"] = 2] = \"VisibleRange\";\r\n})(EAxisSideClipping = exports.EAxisSideClipping || (exports.EAxisSideClipping = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ETextAlignment3D = void 0;\r\n/**\r\n * Enumeration constants to define 3D text label alignment\r\n */\r\nvar ETextAlignment3D;\r\n(function (ETextAlignment3D) {\r\n /**\r\n * Default alignment\r\n */\r\n ETextAlignment3D[ETextAlignment3D[\"Default\"] = 0] = \"Default\";\r\n /**\r\n * Align (billboard) to camera\r\n */\r\n ETextAlignment3D[ETextAlignment3D[\"Camera\"] = 1] = \"Camera\";\r\n /**\r\n * 2D text\r\n */\r\n ETextAlignment3D[ETextAlignment3D[\"ScreenHorizontal\"] = 2] = \"ScreenHorizontal\";\r\n /**\r\n * 2D text, rotated with alignment to corresponding object ( i.e. tick )\r\n */\r\n ETextAlignment3D[ETextAlignment3D[\"ScreenAutoRotated\"] = 3] = \"ScreenAutoRotated\";\r\n})(ETextAlignment3D = exports.ETextAlignment3D || (exports.ETextAlignment3D = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getArraysEqual = exports.getTextStylesEqual = exports.getTArgbEqual = exports.getLineStylesEqual = exports.getDescriptorsEqual = void 0;\r\n/**\r\n * Returns true if descriptors are deeply equal, else false\r\n * @param a\r\n * @param b\r\n */\r\nfunction getDescriptorsEqual(a, b) {\r\n if (a === undefined) {\r\n return b === undefined;\r\n }\r\n if (b === undefined) {\r\n return a === undefined;\r\n }\r\n return (a.axisTitle === b.axisTitle &&\r\n a.axisSize === b.axisSize &&\r\n getTArgbEqual(a.backgroundColor, b.backgroundColor) &&\r\n getTArgbEqual(a.bandColor, b.bandColor) &&\r\n getTArgbEqual(a.borderColor, b.borderColor) &&\r\n getArraysEqual(a.majorCoordinates, b.majorCoordinates) &&\r\n getArraysEqual(a.minorCoordinates, b.minorCoordinates) &&\r\n getArraysEqual(a.tickLabels, b.tickLabels) &&\r\n getLineStylesEqual(a.majorLineStyle, b.majorLineStyle) &&\r\n getLineStylesEqual(a.minorLineStyle, b.minorLineStyle) &&\r\n getLineStylesEqual(a.majorTickStyle, b.majorTickStyle) &&\r\n getLineStylesEqual(a.minorTickStyle, b.minorTickStyle) &&\r\n getTextStylesEqual(a.titleStyle, b.titleStyle) &&\r\n getTextStylesEqual(a.labelStyle, b.labelStyle) &&\r\n a.drawMajorGridlines === b.drawMajorGridlines &&\r\n a.drawMinorGridlines === b.drawMinorGridlines &&\r\n a.drawMajorTicks === b.drawMajorTicks &&\r\n a.drawMinorTicks === b.drawMinorTicks &&\r\n a.drawBands === b.drawBands &&\r\n a.isVisible === b.isVisible &&\r\n a.borderThickness === b.borderThickness &&\r\n a.labelDepthTestEnabled === b.labelDepthTestEnabled &&\r\n a.titleOffset === b.titleOffset &&\r\n a.tickLabelsOffset === b.tickLabelsOffset &&\r\n a.smoothLabelOverlapAvoidance === b.smoothLabelOverlapAvoidance);\r\n}\r\nexports.getDescriptorsEqual = getDescriptorsEqual;\r\nfunction getLineStylesEqual(a, b) {\r\n if (a === undefined && b !== undefined)\r\n return false;\r\n if (b === undefined && a !== undefined)\r\n return false;\r\n if (a === undefined && b === undefined)\r\n return true;\r\n return (a.start === b.start &&\r\n a.end === b.end &&\r\n getTArgbEqual(a.stroke, b.stroke) &&\r\n a.strokeThickness === b.strokeThickness);\r\n}\r\nexports.getLineStylesEqual = getLineStylesEqual;\r\nfunction getTArgbEqual(a, b) {\r\n if (a === undefined && b !== undefined)\r\n return false;\r\n if (b === undefined && a !== undefined)\r\n return false;\r\n if (a === undefined && b === undefined)\r\n return true;\r\n return a.red === b.red && a.green === b.green && a.blue === b.blue && a.opacity === b.opacity;\r\n}\r\nexports.getTArgbEqual = getTArgbEqual;\r\nfunction getTextStylesEqual(a, b) {\r\n if (a === undefined && b !== undefined)\r\n return false;\r\n if (b === undefined && a !== undefined)\r\n return false;\r\n if (a === undefined && b === undefined)\r\n return true;\r\n return (a.alignment === b.alignment &&\r\n a.dpiScaling === b.dpiScaling &&\r\n a.fontFamily === b.fontFamily &&\r\n a.fontSize === b.fontSize &&\r\n a.foreground === b.foreground);\r\n}\r\nexports.getTextStylesEqual = getTextStylesEqual;\r\nfunction getArraysEqual(a, b) {\r\n if (a === undefined && b !== undefined)\r\n return false;\r\n if (b === undefined && a !== undefined)\r\n return false;\r\n if (b === undefined && a === undefined)\r\n return true;\r\n if (a.length !== b.length)\r\n return false;\r\n for (var i = 0; i < a.length; i++) {\r\n if (a[i] !== b[i])\r\n return false;\r\n }\r\n return true;\r\n}\r\nexports.getArraysEqual = getArraysEqual;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumericAxis3D = void 0;\r\nvar FlippedNumericCoordinateCalculator_1 = require(\"../../../Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator\");\r\n// tslint:disable-next-line:max-line-length\r\nvar NumericCoordinateCalculator_1 = require(\"../../../Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator\");\r\nvar NumericTickProvider_1 = require(\"../../../Charting/Numerics/TickProviders/NumericTickProvider\");\r\nvar NumericDeltaCalculator_1 = require(\"../../../Charting/Visuals/Axis/DeltaCalculator/NumericDeltaCalculator\");\r\nvar NumericLabelProvider_1 = require(\"../../../Charting/Visuals/Axis/LabelProvider/NumericLabelProvider\");\r\nvar EasingFunctions_1 = require(\"../../../Core/Animations/EasingFunctions\");\r\nvar NumberRangeAnimator_1 = require(\"../../../Core/Animations/NumberRangeAnimator\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar AxisType_1 = require(\"../../../types/AxisType\");\r\nvar AxisBase3D_1 = require(\"./AxisBase3D\");\r\n/**\r\n * @summary A 3D Chart Numeric / Value Axis type\r\n * @description A Numeric axis uses the X-value to measure data-points on the XAxis. The axis can represent\r\n * both numbers and dates using text-formatting\r\n * @remarks\r\n * Set a {@link NumericAxis3D} on the {@link SciChart3DSurface.xAxis}, {@link SciChart3DSurface.yAxis} or {@link SciChart3DSurface.zAxis} property.\r\n */\r\nvar NumericAxis3D = /** @class */ (function (_super) {\r\n __extends(NumericAxis3D, _super);\r\n /**\r\n * Creates an instance of a {@link NumericAxis3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options optional parameters of type {@link INumericAxis3dOptions} to configure the axis\r\n */\r\n function NumericAxis3D(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = AxisType_1.EAxisType.NumericAxis3D;\r\n _this.tickProvider = new NumericTickProvider_1.NumericTickProvider(_this.webAssemblyContext3D);\r\n _this.labelProvider = new NumericLabelProvider_1.NumericLabelProvider();\r\n _this.deltaCalculator = new NumericDeltaCalculator_1.NumericDeltaCalculator(_this.webAssemblyContext3D);\r\n // Workaround for deprecated property\r\n if (options === null || options === void 0 ? void 0 : options.precision) {\r\n options.labelPrecision = options.precision;\r\n }\r\n _this.labelProvider =\r\n (_a = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _a !== void 0 ? _a : new NumericLabelProvider_1.NumericLabelProvider(options);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n NumericAxis3D.prototype.getDefaultNonZeroRange = function () {\r\n return new NumberRange_1.NumberRange(0, 10);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NumericAxis3D.prototype.animateVisibleRange = function (visibleRange, durationMs, easingFunction, onCompleted) {\r\n var _this = this;\r\n var _a;\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outCubic; }\r\n if (onCompleted === void 0) { onCompleted = function () { }; }\r\n if (durationMs <= 0) {\r\n // Don't allow setting visibleRange to undefined if there is no data\r\n this.visibleRange = visibleRange || this.visibleRange;\r\n onCompleted();\r\n return undefined;\r\n }\r\n (_a = this.visibleRangeAnimationToken) === null || _a === void 0 ? void 0 : _a.cancel();\r\n this.visibleRangeAnimationToken = NumberRangeAnimator_1.NumberRangeAnimator.animate(this.visibleRange, visibleRange, durationMs, function (range) {\r\n _this.visibleRange = range;\r\n }, function () {\r\n _this.visibleRangeAnimationToken = undefined;\r\n onCompleted();\r\n }, easingFunction);\r\n this.parentSurface.addAnimation(this.visibleRangeAnimationToken);\r\n return this.visibleRangeAnimationToken;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n NumericAxis3D.prototype.getCurrentCoordinateCalculatorInternal = function () {\r\n var min = this.visibleRange.min;\r\n var max = this.visibleRange.max;\r\n var size = this.getAxisSize();\r\n var shouldFlip = !this.flippedCoordinatesProperty;\r\n return shouldFlip\r\n ? new FlippedNumericCoordinateCalculator_1.FlippedNumericCoordinateCalculator(this.webAssemblyContext3D, size, min, max)\r\n : new NumericCoordinateCalculator_1.NumericCoordinateCalculator(this.webAssemblyContext3D, size, min, max);\r\n };\r\n return NumericAxis3D;\r\n}(AxisBase3D_1.AxisBase3D));\r\nexports.NumericAxis3D = NumericAxis3D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TEXT_STYLE_PROPERTY = exports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"AXIS_PLANE_BACKGROUND_FILL\"] = \"AXIS_PLANE_BACKGROUND_FILL\";\r\n PROPERTY[\"IS_Y_AXIS\"] = \"IS_Y_AXIS\";\r\n PROPERTY[\"IS_Z_AXIS\"] = \"IS_Z_AXIS\";\r\n PROPERTY[\"LABEL_DEPTH_TEST\"] = \"LABEL_DEPTH_TEST\";\r\n PROPERTY[\"NEGATIVE_SIDE_CLIPPING\"] = \"NEGATIVE_SIDE_CLIPPING\";\r\n PROPERTY[\"PLANE_BORDER_COLOR\"] = \"PLANE_BORDER_COLOR\";\r\n PROPERTY[\"PLANE_BORDER_THICKNESS\"] = \"PLANE_BORDER_THICKNESS\";\r\n PROPERTY[\"POSITIVE_SIDE_CLIPPING\"] = \"POSITIVE_SIDE_CLIPPING\";\r\n PROPERTY[\"TICK_LABEL_ALIGNMENT\"] = \"TICK_LABEL_ALIGNMENT\";\r\n PROPERTY[\"TICK_LABELS_OFFSET\"] = \"TICK_LABELS_OFFSET\";\r\n PROPERTY[\"TITLE_OFFSET\"] = \"TITLE_OFFSET\";\r\n PROPERTY[\"BACKGROUND_COLOR\"] = \"BACKGROUND_COLOR\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\nvar TEXT_STYLE_PROPERTY;\r\n(function (TEXT_STYLE_PROPERTY) {\r\n TEXT_STYLE_PROPERTY[\"ALIGNMENT\"] = \"ALIGNMENT\";\r\n TEXT_STYLE_PROPERTY[\"DPI_SCALING\"] = \"DPI_SCALING\";\r\n TEXT_STYLE_PROPERTY[\"FONT_FAMILY\"] = \"FONT_FAMILY\";\r\n TEXT_STYLE_PROPERTY[\"FONT_SIZE\"] = \"FONT_SIZE\";\r\n TEXT_STYLE_PROPERTY[\"FOREGROUND\"] = \"FOREGROUND\";\r\n})(TEXT_STYLE_PROPERTY = exports.TEXT_STYLE_PROPERTY || (exports.TEXT_STYLE_PROPERTY = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"CAMERA_POSITION\"] = \"CAMERA_POSITION\";\r\n PROPERTY[\"CAMERA_TARGET\"] = \"CAMERA_TARGET\";\r\n PROPERTY[\"CAMERA_ORTHOHEIGHT\"] = \"CAMERA_ORTHOHEIGHT\";\r\n PROPERTY[\"CAMERA_ORTHOWIDTH\"] = \"CAMERA_ORTHOWIDTH\";\r\n PROPERTY[\"CAMERA_FIELDOFVIEW\"] = \"CAMERA_FIELDOFVIEW\";\r\n PROPERTY[\"CAMERA_PROJECTIONMODE\"] = \"CAMERA_PROJECTIONMODE\";\r\n PROPERTY[\"CAMERA_ISATTACHED\"] = \"CAMERA_ISATTACHED\";\r\n PROPERTY[\"CAMERA_ORBITALPITCH\"] = \"CAMERA_ORBITALPITCH\";\r\n PROPERTY[\"CAMERA_ORBITALYAW\"] = \"CAMERA_ORBITALYAW\";\r\n PROPERTY[\"CAMERA_RADIUS\"] = \"CAMERA_RADIUS\";\r\n PROPERTY[\"CAMERA_FORWARD\"] = \"CAMERA_FORWARD\";\r\n PROPERTY[\"CAMERA_SIDE\"] = \"CAMERA_SIDE\";\r\n PROPERTY[\"CAMERA_UP\"] = \"CAMERA_UP\";\r\n PROPERTY[\"CAMERA_UPGLOBAL\"] = \"CAMERA_UPGLOBAL\";\r\n PROPERTY[\"CAMERA_ASPECTRATIO\"] = \"CAMERA_ASPECTRATIO\";\r\n PROPERTY[\"CAMERA_ID\"] = \"CAMERA_ID\";\r\n PROPERTY[\"CAMERA_FARCLIP\"] = \"CAMERA_FARCLIP\";\r\n PROPERTY[\"CAMERA_NEARCLIP\"] = \"CAMERA_NEARCLIP\";\r\n PROPERTY[\"SURFACE_CAMERA\"] = \"SURFACE_CAMERA\";\r\n PROPERTY[\"SURFACE_XAXIS\"] = \"SURFACE_XAXIS\";\r\n PROPERTY[\"SURFACE_YAXIS\"] = \"SURFACE_YAXIS\";\r\n PROPERTY[\"SURFACE_ZAXIS\"] = \"SURFACE_ZAXIS\";\r\n PROPERTY[\"SURFACE_VIEWPORT_MANAGER\"] = \"SURFACE_VIEWPORT_MANAGER\";\r\n PROPERTY[\"SURFACE_WORLD_DIMENSIONS\"] = \"SURFACE_WORLD_DIMENSIONS\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultViewportManager3D = void 0;\r\nvar ViewportManager3DBase_1 = require(\"./ViewportManager3DBase\");\r\nvar DefaultViewportManager3D = /** @class */ (function (_super) {\r\n __extends(DefaultViewportManager3D, _super);\r\n function DefaultViewportManager3D() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return DefaultViewportManager3D;\r\n}(ViewportManager3DBase_1.ViewportManager3DBase));\r\nexports.DefaultViewportManager3D = DefaultViewportManager3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GizmoEntity = void 0;\r\nvar SceneEntityType_1 = require(\"../../types/SceneEntityType\");\r\nvar BaseSceneEntity3D_1 = require(\"./Primitives/BaseSceneEntity3D\");\r\n/**\r\n * The {@link GizmoEntity} renders a 3D X-Y-Z axis in the bottom left of the chart.\r\n * @remarks Added automatically by the {@link SciChart3DSurface} and may be enabled or\r\n * disabled by setting the {@link SciChart3DSurface.enableGizmo} property\r\n */\r\nvar GizmoEntity = /** @class */ (function (_super) {\r\n __extends(GizmoEntity, _super);\r\n /**\r\n * Creates an instance of the {@link GizmoEntity}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n */\r\n function GizmoEntity(webAssemblyContext) {\r\n var _this = _super.call(this, webAssemblyContext) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = SceneEntityType_1.ESceneEntityType.GizmoEntity;\r\n _this.setNativeEntity(webAssemblyContext.SCRTXyzGizmoEntity.implement(_this));\r\n return _this;\r\n }\r\n Object.defineProperty(GizmoEntity.prototype, \"enableGizmo\", {\r\n /**\r\n * Gets or sets whether the Gizmo is enabled\r\n */\r\n get: function () {\r\n return this.nativeEntity.GetOverrideEnableGizmo();\r\n },\r\n /**\r\n * Gets or sets whether the Gizmo is enabled\r\n */\r\n set: function (isEnabled) {\r\n this.nativeEntity.SetOverrideEnableGizmo(isEnabled);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return GizmoEntity;\r\n}(BaseSceneEntity3D_1.BaseSceneEntity3D));\r\nexports.GizmoEntity = GizmoEntity;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseMeshPointMarker3D = void 0;\r\nvar BasePointMarker3D_1 = require(\"./BasePointMarker3D\");\r\n/**\r\n * A {@link BaseMeshPointMarker3D} is a type of {@link BasePointMarker3D | 3D Point Marker} which renders\r\n * a 3-Dimensional object at each point. Useful for high quality 3D Scatter and Bubble charts.\r\n * @remarks See derived types of {@link BaseMeshPointMarker3D} for available mesh point-markers\r\n */\r\nvar BaseMeshPointMarker3D = /** @class */ (function (_super) {\r\n __extends(BaseMeshPointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link BaseMeshPointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function BaseMeshPointMarker3D(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(BaseMeshPointMarker3D.prototype, \"markerType\", {\r\n /**\r\n * Defines the MarkerType, e.g. pixel point marker, Mesh (3d object) or textured-quad\r\n */\r\n get: function () {\r\n return BasePointMarker3D_1.EMarkerType.InstancedMesh;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BaseMeshPointMarker3D;\r\n}(BasePointMarker3D_1.BasePointMarker3D));\r\nexports.BaseMeshPointMarker3D = BaseMeshPointMarker3D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BasePointMarker3D = exports.EMarkerType = void 0;\r\nvar EventHandler_1 = require(\"../../../Core/EventHandler\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar PropertyChangedEventArgs_1 = require(\"../../../Core/PropertyChangedEventArgs\");\r\nvar Constants_1 = require(\"./Constants\");\r\n/**\r\n * Defines the BasePointMarker3D geometry type: a pixel, a textured-quad or a 3D object (Instanced Mesh)\r\n */\r\nvar EMarkerType;\r\n(function (EMarkerType) {\r\n /**\r\n * Each marker rendered as a single pixel\r\n */\r\n EMarkerType[EMarkerType[\"Pixel\"] = 0] = \"Pixel\";\r\n /**\r\n * each marker rendered as a textured quad\r\n */\r\n EMarkerType[EMarkerType[\"TexturedQuad\"] = 1] = \"TexturedQuad\";\r\n /**\r\n * each marker rendered as an instanced mesh\r\n */\r\n EMarkerType[EMarkerType[\"InstancedMesh\"] = 2] = \"InstancedMesh\";\r\n})(EMarkerType = exports.EMarkerType || (exports.EMarkerType = {}));\r\n/**\r\n * @summary The Base class for a 3D PointMarker in SciChart - High Performance\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}.\r\n * @description PointMarkers may be displayed on {@link IRenderableSeries3D |3D Renderable Series} to add scatter-points to 3D charts.\r\n * For example: setting the {@link ScatterRenderableSeries3D.pointMarker} property property\r\n * will render a point at each xyz data-value\r\n * @remarks\r\n * See derived types of {@link BasePointMarker3D} for specific point-marker types.\r\n */\r\nvar BasePointMarker3D = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the {@link BasePointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function BasePointMarker3D(webAssemblyContext, options) {\r\n Guard_1.Guard.notNull(webAssemblyContext, \"webAssemblyContext\");\r\n this.webAssemblyContext = webAssemblyContext;\r\n this.propertyChanged = new EventHandler_1.EventHandler();\r\n this.fillProperty = (options === null || options === void 0 ? void 0 : options.fill) || \"#FF3333\";\r\n this.sizeProperty = (options === null || options === void 0 ? void 0 : options.size) || 3;\r\n }\r\n Object.defineProperty(BasePointMarker3D.prototype, \"fill\", {\r\n /**\r\n * Gets or sets the point-marker fill as an HTML Color Code\r\n */\r\n get: function () {\r\n return this.fillProperty;\r\n },\r\n /**\r\n * Gets or sets the point-marker fill as an HTML Color Code\r\n */\r\n set: function (fill) {\r\n this.fillProperty = fill;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BasePointMarker3D.prototype, \"size\", {\r\n /**\r\n * Gets or sets the size of the point-marker in world coordinates\r\n */\r\n get: function () {\r\n return this.sizeProperty;\r\n },\r\n /**\r\n * Gets or sets the size of the point-marker in world coordinates\r\n */\r\n set: function (size) {\r\n this.sizeProperty = size;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SIZE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Notifies listeners to {@link propertyChanged} that a property has changed and redraw is required\r\n * @param propertyName the property name\r\n */\r\n BasePointMarker3D.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n (_a = this.propertyChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new PropertyChangedEventArgs_1.PropertyChangedEventArgs(propertyName));\r\n };\r\n return BasePointMarker3D;\r\n}());\r\nexports.BasePointMarker3D = BasePointMarker3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseTexturePointMarker3D = void 0;\r\nvar BasePointMarker3D_1 = require(\"./BasePointMarker3D\");\r\n/**\r\n * A {@link BaseTexturePointMarker3D} is a type of {@link BasePointMarker3D | 3D Point Marker} which uses\r\n * a flat billboarded texture at each point. Useful for fast / high performance requirements such as point-clouds.\r\n * @remarks See derived types of {@link BaseTexturePointMarker3D} for available texture point-markers\r\n */\r\nvar BaseTexturePointMarker3D = /** @class */ (function (_super) {\r\n __extends(BaseTexturePointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link BaseTexturePointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function BaseTexturePointMarker3D(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(BaseTexturePointMarker3D.prototype, \"markerType\", {\r\n /**\r\n * Defines the MarkerType, e.g. pixel point marker, Mesh (3d object) or textured-quad\r\n */\r\n get: function () {\r\n return BasePointMarker3D_1.EMarkerType.TexturedQuad;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BaseTexturePointMarker3D;\r\n}(BasePointMarker3D_1.BasePointMarker3D));\r\nexports.BaseTexturePointMarker3D = BaseTexturePointMarker3D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"FILL\"] = \"Fill\";\r\n PROPERTY[\"SIZE\"] = \"Size\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TrianglePointMarker3D = exports.EllipsePointMarker3D = exports.QuadPointMarker = exports.PixelPointMarker3D = exports.CylinderPointMarker3D = exports.PyramidPointMarker3D = exports.CubePointMarker3D = exports.SpherePointMarker3D = void 0;\r\nvar BaseMeshPointMarker3D_1 = require(\"./BaseMeshPointMarker3D\");\r\nvar BasePointMarker3D_1 = require(\"./BasePointMarker3D\");\r\nvar BaseTexturePointMarker3D_1 = require(\"./BaseTexturePointMarker3D\");\r\n// tslint:disable:max-classes-per-file\r\n/**\r\n * The {@link SpherePointMarker3D} adds a 3D Sphere to each XYZ point in a 3D Scatter or Bubble series\r\n * @remarks See related class {@link ScatterRenderableSeries3D} which renders a {@link BasePointMarker3D} at\r\n * each Xyz point in an {@link XyzDataSeries3D} Data Series.\r\n */\r\nvar SpherePointMarker3D = /** @class */ (function (_super) {\r\n __extends(SpherePointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link SpherePointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function SpherePointMarker3D(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(SpherePointMarker3D.prototype, \"pointsMesh\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.webAssemblyContext.SCRTGetTemplateMesh(this.webAssemblyContext.eSCRTMesh.SCRT_MESH_SPHERE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return SpherePointMarker3D;\r\n}(BaseMeshPointMarker3D_1.BaseMeshPointMarker3D));\r\nexports.SpherePointMarker3D = SpherePointMarker3D;\r\n/**\r\n * The {@link CubePointMarker3D} adds a 3D Cube or Box to each XYZ point in a 3D Scatter or Bubble series\r\n * @remarks See related class {@link ScatterRenderableSeries3D} which renders a {@link BasePointMarker3D} at\r\n * each Xyz point in an {@link XyzDataSeries3D} Data Series.\r\n */\r\nvar CubePointMarker3D = /** @class */ (function (_super) {\r\n __extends(CubePointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link CubePointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function CubePointMarker3D(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(CubePointMarker3D.prototype, \"pointsMesh\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.webAssemblyContext.SCRTGetTemplateMesh(this.webAssemblyContext.eSCRTMesh.SCRT_MESH_CUBE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return CubePointMarker3D;\r\n}(BaseMeshPointMarker3D_1.BaseMeshPointMarker3D));\r\nexports.CubePointMarker3D = CubePointMarker3D;\r\n/**\r\n * The {@link PyramidPointMarker3D} adds a 3D Pyramid to each XYZ point in a 3D Scatter or Bubble series\r\n * @remarks See related class {@link ScatterRenderableSeries3D} which renders a {@link BasePointMarker3D} at\r\n * each Xyz point in an {@link XyzDataSeries3D} Data Series.\r\n */\r\nvar PyramidPointMarker3D = /** @class */ (function (_super) {\r\n __extends(PyramidPointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link PyramidPointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function PyramidPointMarker3D(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(PyramidPointMarker3D.prototype, \"pointsMesh\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.webAssemblyContext.SCRTGetTemplateMesh(this.webAssemblyContext.eSCRTMesh.SCRT_MESH_PYRAMID);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return PyramidPointMarker3D;\r\n}(BaseMeshPointMarker3D_1.BaseMeshPointMarker3D));\r\nexports.PyramidPointMarker3D = PyramidPointMarker3D;\r\n/**\r\n * The {@link CylinderPointMarker3D} adds a 3D Cylinder to each XYZ point in a 3D Scatter or Bubble series\r\n * @remarks See related class {@link ScatterRenderableSeries3D} which renders a {@link BasePointMarker3D} at\r\n * each Xyz point in an {@link XyzDataSeries3D} Data Series.\r\n */\r\nvar CylinderPointMarker3D = /** @class */ (function (_super) {\r\n __extends(CylinderPointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link CylinderPointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function CylinderPointMarker3D(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(CylinderPointMarker3D.prototype, \"pointsMesh\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.webAssemblyContext.SCRTGetTemplateMesh(this.webAssemblyContext.eSCRTMesh.SCRT_MESH_CYLINDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return CylinderPointMarker3D;\r\n}(BaseMeshPointMarker3D_1.BaseMeshPointMarker3D));\r\nexports.CylinderPointMarker3D = CylinderPointMarker3D;\r\n/**\r\n * @summary The {@link PixelPointMarker3D} adds a single pixel to each XYZ point in a 3D Scatter or Bubble series.\r\n * This is useful for high-performance point-clouds e.g. LiDAR visualisation which requires millions of data-points in 3D.\r\n * @remarks See related class {@link ScatterRenderableSeries3D} which renders a {@link BasePointMarker3D} at\r\n * each Xyz point in an {@link XyzDataSeries3D} Data Series.\r\n */\r\nvar PixelPointMarker3D = /** @class */ (function (_super) {\r\n __extends(PixelPointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link PixelPointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function PixelPointMarker3D(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.size = 0;\r\n return _this;\r\n }\r\n Object.defineProperty(PixelPointMarker3D.prototype, \"markerType\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return BasePointMarker3D_1.EMarkerType.Pixel;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return PixelPointMarker3D;\r\n}(BasePointMarker3D_1.BasePointMarker3D));\r\nexports.PixelPointMarker3D = PixelPointMarker3D;\r\n/**\r\n * @summary The {@link QuadPointMarker} renders a flat billboarded textured-quad to each XYZ point in a 3D Scatter or Bubble series.\r\n * @remarks See related class {@link ScatterRenderableSeries3D} which renders a {@link BasePointMarker3D} at\r\n * each Xyz point in an {@link XyzDataSeries3D} Data Series.\r\n */\r\nvar QuadPointMarker = /** @class */ (function (_super) {\r\n __extends(QuadPointMarker, _super);\r\n /**\r\n * Creates an instance of {@link QuadPointMarker}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function QuadPointMarker(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(QuadPointMarker.prototype, \"pointsTexture\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.webAssemblyContext.SCRTGetTemplateTexture(this.webAssemblyContext.eSCRTTexture.SCRT_TEXTURE_SOLIDWHITE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return QuadPointMarker;\r\n}(BaseTexturePointMarker3D_1.BaseTexturePointMarker3D));\r\nexports.QuadPointMarker = QuadPointMarker;\r\n/**\r\n * @summary The {@link EllipsePointMarker3D} renders a flat billboarded textured ellipse to each XYZ point in a 3D Scatter or Bubble series.\r\n * @remarks See related class {@link ScatterRenderableSeries3D} which renders a {@link BasePointMarker3D} at\r\n * each Xyz point in an {@link XyzDataSeries3D} Data Series.\r\n */\r\nvar EllipsePointMarker3D = /** @class */ (function (_super) {\r\n __extends(EllipsePointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link EllipsePointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function EllipsePointMarker3D(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(EllipsePointMarker3D.prototype, \"pointsTexture\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.webAssemblyContext.SCRTGetTemplateTexture(this.webAssemblyContext.eSCRTTexture.SCRT_TEXTURE_CIRCLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return EllipsePointMarker3D;\r\n}(BaseTexturePointMarker3D_1.BaseTexturePointMarker3D));\r\nexports.EllipsePointMarker3D = EllipsePointMarker3D;\r\n/**\r\n * @summary The {@link TrianglePointMarker3D} renders a flat billboarded textured triangle to each XYZ point in a 3D Scatter or Bubble series.\r\n * @remarks See related class {@link ScatterRenderableSeries3D} which renders a {@link BasePointMarker3D} at\r\n * each Xyz point in an {@link XyzDataSeries3D} Data Series.\r\n */\r\nvar TrianglePointMarker3D = /** @class */ (function (_super) {\r\n __extends(TrianglePointMarker3D, _super);\r\n /**\r\n * Creates an instance of {@link TrianglePointMarker3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link IBasePointMarker3DOptions} used to configure the point-marker\r\n * @protected\r\n */\r\n function TrianglePointMarker3D(webAssemblyContext, options) {\r\n return _super.call(this, webAssemblyContext, options) || this;\r\n }\r\n Object.defineProperty(TrianglePointMarker3D.prototype, \"pointsTexture\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.webAssemblyContext.SCRTGetTemplateTexture(this.webAssemblyContext.eSCRTTexture.SCRT_TEXTURE_TRIANGLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TrianglePointMarker3D;\r\n}(BaseTexturePointMarker3D_1.BaseTexturePointMarker3D));\r\nexports.TrianglePointMarker3D = TrianglePointMarker3D;\r\n// TODO (Andrew): CustomPointMarker to return a TSRTexture with image or geometry defined by the user\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AxisCubeDescriptor = void 0;\r\n/**\r\n * Defines the interface a descriptor for drawing the Axis in a 3D Chart - contains properties, data and\r\n * parameters to pass to the WebAssembly engine for drawing an {@link AxisCubeEntity} and X,Y,Z {@link AxisBase3D}\r\n */\r\nvar AxisCubeDescriptor = /** @class */ (function () {\r\n function AxisCubeDescriptor() {\r\n }\r\n return AxisCubeDescriptor;\r\n}());\r\nexports.AxisCubeDescriptor = AxisCubeDescriptor;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseSceneEntity3D = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar ObservableArray_1 = require(\"../../../Core/ObservableArray\");\r\nvar SceneEntityType_1 = require(\"../../../types/SceneEntityType\");\r\nvar guid_1 = require(\"../../../utils/guid\");\r\n/**\r\n * The {@link BaseSceneEntity3D} provides a base class for entities, or 3D objects in the 3D scene within\r\n * SciChart's High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks Each {@link BaseSceneEntity3D} wraps a native WebAssembly {@link SCRTSceneEntity} which is returned by\r\n * the {@link nativeEntity} property. This is passed to SciChart's 3D engine and inserted into the scene when added\r\n * to the {@link SciChart3DSurface.rootEntity} collection.\r\n */\r\nvar BaseSceneEntity3D = /** @class */ (function (_super) {\r\n __extends(BaseSceneEntity3D, _super);\r\n /**\r\n * Creates an instance of the {@link BaseSceneEntity3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @protected\r\n */\r\n function BaseSceneEntity3D(webAssemblyContext) {\r\n var _this = _super.call(this) || this;\r\n /** @inheritDoc */\r\n _this.id = (0, guid_1.generateGuid)();\r\n /**\r\n * When true, the entity and all its children are visible\r\n */\r\n _this.isVisible = true;\r\n _this.entityIdProperty = undefined;\r\n Guard_1.Guard.notNull(webAssemblyContext, \"webAssemblyContext\");\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.detachChild = _this.detachChild.bind(_this);\r\n _this.attachChild = _this.attachChild.bind(_this);\r\n _this.children = new ObservableArray_1.ObservableArray();\r\n _this.children.collectionChanged.subscribe(function (args) {\r\n var _a, _b;\r\n (_a = args.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(_this.detachChild);\r\n (_b = args.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(_this.attachChild);\r\n });\r\n _this.onDpiChanged = _this.onDpiChanged.bind(_this);\r\n return _this;\r\n }\r\n Object.defineProperty(BaseSceneEntity3D.prototype, \"entityIdProvider\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.entityIdProviderProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n var _this = this;\r\n this.entityIdProviderProperty = value;\r\n // Assign an entity Id to this entity\r\n if (!this.entityId && this.entityIdProviderProperty) {\r\n this.entityId = this.entityIdProviderProperty.getNextEntityId();\r\n }\r\n // Pass entityIdProvider down to child entities except this\r\n this.visitEntities(function (e) {\r\n if (e !== _this) {\r\n e.entityIdProvider = value;\r\n }\r\n });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseSceneEntity3D.prototype, \"entityId\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.entityIdProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (value) {\r\n var _a;\r\n this.entityIdProperty = value;\r\n (_a = this.nativeEntityProperty) === null || _a === void 0 ? void 0 : _a.SetEntityId(value);\r\n this.invalidateScene();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.getRoot = function () {\r\n if (this.type === SceneEntityType_1.ESceneEntityType.RootSceneEntity) {\r\n return this;\r\n }\r\n var parent = this.parent;\r\n while (parent !== undefined) {\r\n if (parent.type === SceneEntityType_1.ESceneEntityType.RootSceneEntity) {\r\n return parent;\r\n }\r\n parent = parent.parent;\r\n }\r\n return undefined;\r\n };\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.delete = function () {\r\n var _a;\r\n this.children.asArray().forEach(function (el) { return el.delete(); });\r\n (_a = this.entityIdProvider) === null || _a === void 0 ? void 0 : _a.releaseEntityId(this.entityId);\r\n if (this.nativeEntity && this.world) {\r\n this.world.RemoveEntity(this.nativeEntity);\r\n }\r\n this.nativeEntityProperty = (0, Deleter_1.deleteSafe)(this.nativeEntityProperty);\r\n this.webAssemblyContext = undefined;\r\n };\r\n /**\r\n * Update method called from WebAssembly engine. Use this to update meshes, properties, geometry before draw.\r\n * When overriding, you must call super.Update() for the object to draw in the scene\r\n * @param deltaTime\r\n * @constructor\r\n */\r\n BaseSceneEntity3D.prototype.Update = function (deltaTime) {\r\n // this gets called from wasm!!\r\n // when overriding always call super.Update(deltaTime) in the end of the method\r\n if (!this.currentRenderPassData) {\r\n return;\r\n }\r\n if (!this.nativeEntity) {\r\n throw new Error(\"BaseSceneEntity.nativeSceneEntity must be set by calling setEntity() in the constructor\");\r\n }\r\n if (this.isVisible) {\r\n this.nativeEntity.Update(deltaTime);\r\n }\r\n };\r\n /**\r\n * Render method called from WebAssembly engine. Use this to do immediate-mode 3D drawing, or to draw created meshes\r\n * When overriding, you must call super.Update() for the object to draw in the scene\r\n * @constructor\r\n */\r\n BaseSceneEntity3D.prototype.Render = function () {\r\n // this gets called from wasm!!\r\n if (!this.currentRenderPassData) {\r\n return;\r\n }\r\n if (!this.nativeEntity) {\r\n throw new Error(\"BaseSceneEntity.nativeSceneEntity must be set by calling setEntity() in the constructor\");\r\n }\r\n if (this.isVisible) {\r\n this.nativeEntity.Render();\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.onEngineRestart = function () {\r\n // TODO: TSRSceneEntity.OnEngineRestart\r\n };\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.onDpiChanged = function (args) { };\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.setRenderPassData = function (rpd) {\r\n this.currentRenderPassData = rpd;\r\n };\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.getEntity = function (type) {\r\n for (var i = 0; i < this.children.size(); i++) {\r\n var ent = this.children.get(i);\r\n if (ent.type === type) {\r\n return ent;\r\n }\r\n }\r\n // TODO: return default(T);\r\n return undefined;\r\n };\r\n /**\r\n * Call this to inform SciChart that data or properties have changed and the 3D Scene must be redrawn\r\n */\r\n BaseSceneEntity3D.prototype.invalidateScene = function () {\r\n var _a, _b;\r\n (_b = (_a = this.rootSceneEntity) === null || _a === void 0 ? void 0 : _a.parentSurface) === null || _b === void 0 ? void 0 : _b.invalidateElement();\r\n };\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.onAttached = function () {\r\n if (this.parent.type === SceneEntityType_1.ESceneEntityType.SCRTSceneEntity) {\r\n // TODO\r\n // var world = scrtSeParent.GetWorld();\r\n // SetWorld(world);\r\n // _nativeEntity.SetWorld(world);\r\n }\r\n };\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.onDetached = function () {\r\n // Override in derived class to be notified of detached\r\n };\r\n /** @inheritDoc */\r\n BaseSceneEntity3D.prototype.visitEntities = function (operation) {\r\n operation(this);\r\n this.children.asArray().forEach(function (child) {\r\n child.visitEntities(operation);\r\n });\r\n };\r\n Object.defineProperty(BaseSceneEntity3D.prototype, \"nativeEntity\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.nativeEntityProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Called internally - Attach a child to the current entity\r\n * @param childEntity\r\n * @protected\r\n */\r\n BaseSceneEntity3D.prototype.attachChild = function (childEntity) {\r\n var _a;\r\n var parentEntity = this;\r\n (_a = parentEntity.nativeEntity) === null || _a === void 0 ? void 0 : _a.AddChildEntityInternal(childEntity.nativeEntity);\r\n childEntity.parent = parentEntity;\r\n childEntity.entityIdProvider = this.entityIdProvider;\r\n childEntity.onAttached();\r\n };\r\n /**\r\n * Called internally - detach a child from the current entity\r\n * @param childEntity\r\n * @protected\r\n */\r\n BaseSceneEntity3D.prototype.detachChild = function (childEntity) {\r\n var _a;\r\n var parentEntity = this;\r\n (_a = parentEntity.nativeEntity) === null || _a === void 0 ? void 0 : _a.RemoveChildEntityInternal(childEntity.nativeEntity);\r\n childEntity.onDetached();\r\n childEntity.parent = undefined;\r\n };\r\n /**\r\n * Called internally - sets the native entity\r\n * @param entity\r\n * @protected\r\n */\r\n BaseSceneEntity3D.prototype.setNativeEntity = function (entity) {\r\n var _a;\r\n this.nativeEntityProperty = entity;\r\n if (this.entityId) {\r\n (_a = this.nativeEntityProperty) === null || _a === void 0 ? void 0 : _a.SetEntityId(this.entityId);\r\n }\r\n };\r\n Object.defineProperty(BaseSceneEntity3D.prototype, \"world\", {\r\n /**\r\n * Called internally - gets the world entity\r\n * @protected\r\n */\r\n get: function () {\r\n var _a, _b;\r\n return (_b = (_a = this.getRoot()) === null || _a === void 0 ? void 0 : _a.parentSurface) === null || _b === void 0 ? void 0 : _b.getSceneWorld();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return BaseSceneEntity3D;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BaseSceneEntity3D = BaseSceneEntity3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CrosshairLinesSceneEntity = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar SceneEntityType_1 = require(\"../../../types/SceneEntityType\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar Vector3_1 = require(\"../../Vector3\");\r\nvar BaseSceneEntity3D_1 = require(\"./BaseSceneEntity3D\");\r\n/**\r\n * Draws a crosshair from the {@link location} to the walls of the bounding box (defined by {@link worldDimensions}).\r\n * Properties {@link stroke}, {@link strokeThickness} and {@link antiAliased} can be used to customize the appearance of the line.\r\n * The {@link CrosshairLinesSceneEntity} inherits {@link BaseSceneEntity3D} and can be added to the {@link SciChart3DSurface}\r\n * via the {@link SciChart3DSurface.rootEntity} property.\r\n */\r\nvar CrosshairLinesSceneEntity = /** @class */ (function (_super) {\r\n __extends(CrosshairLinesSceneEntity, _super);\r\n function CrosshairLinesSceneEntity(webAssemblyContext) {\r\n var _this = _super.call(this, webAssemblyContext) || this;\r\n /** @inheritDoc */\r\n _this.type = SceneEntityType_1.ESceneEntityType.Custom;\r\n /**\r\n * The strokethickness of crosshair lines\r\n */\r\n _this.strokeThickness = 2;\r\n /**\r\n * The stroke of crosshair lines\r\n */\r\n _this.stroke = \"#FF6600\";\r\n /**\r\n * Whether crosshair lines are antialiased or not\r\n */\r\n _this.antiAliased = true;\r\n // Required to get callbacks on Update() and Render() from Wasm to JS\r\n _this.setNativeEntity(webAssemblyContext.SCRTSceneEntity.implement(_this));\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n CrosshairLinesSceneEntity.prototype.delete = function () {\r\n _super.prototype.delete.call(this);\r\n this.linesMesh = (0, Deleter_1.deleteSafe)(this.linesMesh);\r\n };\r\n /** @inheritDoc */\r\n CrosshairLinesSceneEntity.prototype.Render = function () {\r\n if (!this.isVisible || !this.worldDimensions || !this.cameraPosition || !this.location)\r\n return;\r\n var wallVector = this.getWallVector();\r\n this.linesMesh = (0, Deleter_1.deleteSafe)(this.linesMesh);\r\n // Linesmesh with isStrips=false means eacn x0y0 x1y1 pair is a separate line segment\r\n var linesMesh = new this.webAssemblyContext.SCRTLinesMesh(this.strokeThickness, false, this.antiAliased);\r\n linesMesh.SetVertexColor((0, parseColor_1.parseColorToUIntArgb)(this.stroke));\r\n // Draw a line to XY wall from the cursor spot, if in bounds\r\n if (this.inInWorldDimensions(this.location.x, this.location.y, 0, this.worldDimensions)) {\r\n linesMesh.SetVertex3(this.location.x, this.location.y, this.location.z);\r\n linesMesh.SetVertex3(this.location.x, this.location.y, wallVector.z);\r\n }\r\n // Draw a line to XZ wall from the cursor spot, if in bounds\r\n if (this.inInWorldDimensions(this.location.x, 0, this.location.z, this.worldDimensions)) {\r\n linesMesh.SetVertex3(this.location.x, this.location.y, this.location.z);\r\n linesMesh.SetVertex3(this.location.x, wallVector.y, this.location.z);\r\n }\r\n // Draw a line to the YZ wall from the cursor spot, if in bounds\r\n if (this.inInWorldDimensions(0, this.location.y, 0, this.worldDimensions)) {\r\n linesMesh.SetVertex3(this.location.x, this.location.y, this.location.z);\r\n linesMesh.SetVertex3(wallVector.x, this.location.y, this.location.z);\r\n }\r\n // No further changes possible\r\n linesMesh.Freeze();\r\n // Draw\r\n linesMesh.Render();\r\n };\r\n CrosshairLinesSceneEntity.prototype.inInWorldDimensions = function (x, y, z, worldDimensions) {\r\n return (y >= 0 &&\r\n y <= worldDimensions.y &&\r\n z >= -worldDimensions.z / 2 &&\r\n z <= worldDimensions.z / 2 &&\r\n x >= -worldDimensions.x / 2 &&\r\n x <= worldDimensions.x / 2);\r\n };\r\n CrosshairLinesSceneEntity.prototype.getWallVector = function () {\r\n var x = this.cameraPosition.dotProduct(new Vector3_1.Vector3(1, 0, 0)) > 0\r\n ? -this.worldDimensions.x * 0.5\r\n : this.worldDimensions.x * 0.5;\r\n var y = this.cameraPosition.dotProduct(new Vector3_1.Vector3(0, 1, 0)) > 0 ? 0 : this.worldDimensions.y;\r\n var z = this.cameraPosition.dotProduct(new Vector3_1.Vector3(0, 0, 1)) > 0\r\n ? -this.worldDimensions.z * 0.5\r\n : this.worldDimensions.z * 0.5;\r\n return new Vector3_1.Vector3(x, y, z);\r\n };\r\n return CrosshairLinesSceneEntity;\r\n}(BaseSceneEntity3D_1.BaseSceneEntity3D));\r\nexports.CrosshairLinesSceneEntity = CrosshairLinesSceneEntity;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultEntityIdProvider = void 0;\r\n/**\r\n * Default implementation of {@link IEntityIdProvider}. This implementation generates Ids from 0 to 4 billion\r\n * and does not recycle Ids. If you encounter the error \"The max Mesh ID has been exceeded\", you can override\r\n * releaseEntityId to create a more sophisticated IdProvider to recycle Ids.\r\n */\r\nvar DefaultEntityIdProvider = /** @class */ (function () {\r\n function DefaultEntityIdProvider() {\r\n this.currentId = -1;\r\n this.maxId = 4294967295; // UInt32.MaxValue\r\n }\r\n /** @inheritdoc */\r\n DefaultEntityIdProvider.prototype.getNextEntityId = function () {\r\n var id = ++this.currentId;\r\n if (id >= this.maxId) {\r\n throw new Error(\"The max Mesh ID has been exceeded. Please see https://www.scichart.com/questions/wpf/maximum-mesh-id\");\r\n }\r\n return id;\r\n };\r\n /** @inheritdoc */\r\n DefaultEntityIdProvider.prototype.releaseEntityId = function (id) {\r\n // placeholder for users to override and recycle Ids\r\n };\r\n return DefaultEntityIdProvider;\r\n}());\r\nexports.DefaultEntityIdProvider = DefaultEntityIdProvider;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PointLine3DSceneEntity = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar SceneEntityType_1 = require(\"../../../types/SceneEntityType\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar BaseDataSeries3D_1 = require(\"../../Model/DataSeries/BaseDataSeries3D\");\r\nvar Constants_1 = require(\"../RenderableSeries/Constants\");\r\nvar BasePointMarker3D_1 = require(\"../PointMarkers/BasePointMarker3D\");\r\nvar RenderableSeriesSceneEntity_1 = require(\"./RenderableSeriesSceneEntity\");\r\nvar RenderableSeriesSceneEntityState_1 = require(\"./RenderableSeriesSceneEntityState\");\r\n/**\r\n * @summary {@link BaseSceneEntity3D} type for drawing 3D Scatter or Bubble series in SciChart's High Performance\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks See related type {@link ScatterRenderableSeries3D} which should be added to {@link SciChart3DSurface.renderableSeries}\r\n * along with data from an {@link XyzDataSeries3D} to create a 3D Scatter or Bubble chart\r\n */\r\nvar PointLine3DSceneEntity = /** @class */ (function (_super) {\r\n __extends(PointLine3DSceneEntity, _super);\r\n /**\r\n * Creates an instance of {@link ScatterPointsSceneEntity}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries The parent {@link BaseRenderableSeries3D} which this entity maps to\r\n */\r\n function PointLine3DSceneEntity(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries, new RenderableSeriesSceneEntityState_1.RenderableSeriesSceneEntityState()) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = SceneEntityType_1.ESceneEntityType.PointLine3DSceneEntity;\r\n _this.setNativeEntity(webAssemblyContext.SCRTPointLine3DSceneEntity.implement(_this));\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n PointLine3DSceneEntity.prototype.delete = function () {\r\n this.pointColors = (0, Deleter_1.deleteSafe)(this.pointColors);\r\n this.pointScales = (0, Deleter_1.deleteSafe)(this.pointScales);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PointLine3DSceneEntity.prototype.Render = function () {\r\n this.nativeEntity.SetOpacity(this.parentSeries.opacity);\r\n _super.prototype.Render.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n * @param propertyName\r\n */\r\n PointLine3DSceneEntity.prototype.notifySeriesPropertyChanged = function (propertyName) {\r\n // Pass flags down to child entities\r\n if (propertyName === Constants_1.PROPERTY.STROKE_THICKNESS) {\r\n this.nativeEntity.SetLineStrokeThickness(this.parentSeries.strokeThickness);\r\n }\r\n if (propertyName === Constants_1.PROPERTY.STROKE) {\r\n this.nativeEntity.SetStrokeColor((0, parseColor_1.parseColorToUIntArgb)(this.parentSeries.stroke));\r\n }\r\n if (propertyName === Constants_1.PROPERTY.POINT_MARKER3D) {\r\n this.updateSeries();\r\n }\r\n _super.prototype.notifySeriesPropertyChanged.call(this, propertyName);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PointLine3DSceneEntity.prototype.hitTest = function (screenPoint) {\r\n return _super.prototype.hitTestXyz.call(this, screenPoint);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PointLine3DSceneEntity.prototype.updateSeries = function () {\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return;\r\n }\r\n if (dataSeries.type !== BaseDataSeries3D_1.EDataSeriesType3D.Xyz3D) {\r\n throw new Error(\"DataSeries type for a PointLineRenderableSeries3D must be XyzDataSeries3D\");\r\n }\r\n var strokeArgb = (0, parseColor_1.parseColorToUIntArgb)(this.parentSeries.stroke);\r\n this.nativeEntity.SetLineStrokeThickness(this.parentSeries.strokeThickness);\r\n this.nativeEntity.SetIsLineStrips(this.parentSeries.isLineStrip);\r\n this.nativeEntity.SetIsLineAntialiased(this.parentSeries.isAntiAliased);\r\n this.nativeEntity.SetStrokeColor(strokeArgb);\r\n this.updatePointMarker(this.parentSeries.pointMarker);\r\n var xValues = dataSeries.getNativeXValues();\r\n var yValues = dataSeries.getNativeYValues();\r\n var zValues = dataSeries.getNativeZValues();\r\n var meta = dataSeries.getMetadataValues();\r\n var count = dataSeries.count();\r\n var _a = this.rebuildPointMetadata(meta, count, strokeArgb), lineColors = _a.lineColors, pointColors = _a.pointColors, scales = _a.scales, hasDefaultColors = _a.hasDefaultColors, hasDefaultScales = _a.hasDefaultScales;\r\n var args;\r\n try {\r\n args = new this.webAssemblyContext.SCRTPointLines3DSceneEntityParams();\r\n args.useDefaultColors = hasDefaultColors;\r\n args.useDefaultScale = hasDefaultScales;\r\n args.SetCoordinateCalculators(this.currentRenderPassData.xCalc.nativeCalculator, this.currentRenderPassData.yCalc.nativeCalculator, this.currentRenderPassData.zCalc.nativeCalculator);\r\n this.nativeEntity.UpdateMeshesVec(xValues, yValues, zValues, pointColors, lineColors, scales, args);\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(args);\r\n }\r\n };\r\n PointLine3DSceneEntity.prototype.updatePointMarker = function (pointMarker) {\r\n var eSCRTPointMarkerType = this.webAssemblyContext.eSCRT_POINT_MARKER_TYPE;\r\n if (pointMarker === undefined || pointMarker.markerType === BasePointMarker3D_1.EMarkerType.Pixel) {\r\n this.nativeEntity.SetPointMarkerType(eSCRTPointMarkerType.SCRT_POINT_MARKER_TYPE_PIXEL);\r\n this.nativeEntity.SetPointSize(0);\r\n }\r\n else if (pointMarker.markerType === BasePointMarker3D_1.EMarkerType.InstancedMesh) {\r\n var meshMarker = pointMarker;\r\n if (!meshMarker.pointsMesh) {\r\n throw new Error(\"Expected a BaseMeshPointMarker3D.pointsMesh on 3D pointmarker of type InstancedMesh\");\r\n }\r\n this.nativeEntity.SetPointMarkerType(eSCRTPointMarkerType.SCRT_POINT_MARKER_TYPE_INSTANCED_MESH);\r\n this.nativeEntity.SetPointSize(pointMarker.size);\r\n this.nativeEntity.SetPointMarkerMesh(meshMarker.pointsMesh);\r\n }\r\n else if (pointMarker.markerType === BasePointMarker3D_1.EMarkerType.TexturedQuad) {\r\n var textureMarker = pointMarker;\r\n if (!textureMarker.pointsTexture) {\r\n throw new Error(\"Expected a BaseTexturePointMarker3D.pointsTexture on 3D pointmarker of type TexturedQuad\");\r\n }\r\n this.nativeEntity.SetPointMarkerType(eSCRTPointMarkerType.SCRT_POINT_MARKER_TYPE_TEXTURED_QUAD);\r\n this.nativeEntity.SetPointSize(pointMarker.size);\r\n this.nativeEntity.SetPointMarkerTexture(textureMarker.pointsTexture);\r\n }\r\n else {\r\n throw new Error(\"PointLine3DSceneEntity: Unknown pointMarker.markerType \" + pointMarker.markerType);\r\n }\r\n };\r\n PointLine3DSceneEntity.prototype.rebuildPointMetadata = function (metadata, count, defaultColor) {\r\n var _this = this;\r\n if (!this.pointColors) {\r\n this.pointColors = new this.webAssemblyContext.UIntVector();\r\n }\r\n if (!this.pointScales) {\r\n this.pointScales = new this.webAssemblyContext.FloatVector();\r\n }\r\n // Default color, size\r\n this.pointColors.resize(count, defaultColor);\r\n this.pointScales.resize(count, 1.0);\r\n var hasDefaultScales = true;\r\n var hasDefaultColors = true;\r\n // metadata will always be non-null but individual metadata items may be undefined\r\n // as its implemented as a non-sparse array\r\n metadata.forEach(function (meta, index) {\r\n var _a;\r\n if (meta) {\r\n var vertexColor = (_a = meta.vertexColorAbgr) !== null && _a !== void 0 ? _a : meta.vertexColor;\r\n if (vertexColor) {\r\n hasDefaultColors = false;\r\n _this.pointColors.set(index, vertexColor);\r\n }\r\n if (meta.pointScale) {\r\n hasDefaultScales = false;\r\n _this.pointScales.set(index, meta.pointScale);\r\n }\r\n }\r\n });\r\n return {\r\n lineColors: this.pointColors,\r\n pointColors: this.pointColors,\r\n scales: this.pointScales,\r\n hasDefaultScales: hasDefaultScales,\r\n hasDefaultColors: hasDefaultColors\r\n };\r\n };\r\n return PointLine3DSceneEntity;\r\n}(RenderableSeriesSceneEntity_1.RenderableSeriesSceneEntity));\r\nexports.PointLine3DSceneEntity = PointLine3DSceneEntity;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderPassInfo3D = void 0;\r\n/**\r\n * Contains properties and data valid for the current render pass in 3D {@link SciChart3DSurface}\r\n */\r\nvar RenderPassInfo3D = /** @class */ (function () {\r\n function RenderPassInfo3D() {\r\n }\r\n return RenderPassInfo3D;\r\n}());\r\nexports.RenderPassInfo3D = RenderPassInfo3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderableSeriesSceneEntity = void 0;\r\nvar HitTestInfo3D_1 = require(\"../RenderableSeries/HitTestInfo3D\");\r\nvar BaseSceneEntity3D_1 = require(\"./BaseSceneEntity3D\");\r\n/**\r\n * @summary Defines a special {@link BaseSceneEntity3D} type which hosts the entity for a {@link BaseRenderableSeries3D | RenderableSeries},\r\n * or chart type in SciChart's High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n */\r\nvar RenderableSeriesSceneEntity = /** @class */ (function (_super) {\r\n __extends(RenderableSeriesSceneEntity, _super);\r\n /**\r\n * Creates an instance of {@link RenderableSeriesSceneEntity}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries The parent {@link BaseRenderableSeries3D} which this entity maps to\r\n * @param state Current {@link RenderableSeriesSceneEntityState}\r\n */\r\n function RenderableSeriesSceneEntity(webAssemblyContext, parentSeries, state) {\r\n var _this = _super.call(this, webAssemblyContext) || this;\r\n _this.parentSeries = parentSeries;\r\n _this.state = state;\r\n _this.state.setInitialState();\r\n _this.hitTest = _this.hitTest.bind(_this);\r\n return _this;\r\n }\r\n /**\r\n * Update method called from WebAssembly engine. Use this to update meshes, properties, geometry before draw.\r\n * When overriding, you must call super.Update() for the object to draw in the scene\r\n * @param deltaTime\r\n * @constructor\r\n */\r\n RenderableSeriesSceneEntity.prototype.Update = function (deltaTime) {\r\n if (!this.currentRenderPassData) {\r\n return;\r\n }\r\n if (!this.state.validate(this.parentSeries, this.currentRenderPassData)) {\r\n this.updateSeries();\r\n this.state.reset(this.parentSeries, this.currentRenderPassData);\r\n }\r\n _super.prototype.Update.call(this, deltaTime);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RenderableSeriesSceneEntity.prototype.onEngineRestart = function () {\r\n _super.prototype.onEngineRestart.call(this);\r\n // Reset Initial State\r\n this.state.setInitialState();\r\n };\r\n /**\r\n * Called when a property changes on the parent series\r\n * @param propertyName\r\n */\r\n RenderableSeriesSceneEntity.prototype.notifySeriesPropertyChanged = function (propertyName) {\r\n // Set Renderable Series Property Changed\r\n this.state.setRenderableSeriesPropertyChanged();\r\n };\r\n RenderableSeriesSceneEntity.prototype.hitTestXyz = function (screenPoint) {\r\n var _a;\r\n var x = Math.round(screenPoint.x);\r\n var y = Math.round(screenPoint.y);\r\n var selectionInfo = this.webAssemblyContext.SCRTGetSelectionInfo(x, y);\r\n var result = new HitTestInfo3D_1.HitTestInfo3D(this.parentSeries, false);\r\n result.isHit =\r\n selectionInfo.m_uiSelectionIndex > 0 && ((_a = selectionInfo.GetEntity()) === null || _a === void 0 ? void 0 : _a.GetEntityId()) === this.entityId;\r\n result.selectionIndex = result.isHit ? selectionInfo.m_uiSelectionIndex : -1;\r\n result.hitTestPoint = screenPoint;\r\n return result;\r\n };\r\n return RenderableSeriesSceneEntity;\r\n}(BaseSceneEntity3D_1.BaseSceneEntity3D));\r\nexports.RenderableSeriesSceneEntity = RenderableSeriesSceneEntity;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderableSeriesSceneEntityState = void 0;\r\n/**\r\n * State object for a 3D {@link RenderableSeriesSceneEntity} that contains a set of boolean flags and other state types\r\n * (e.g. TAxisCubeState) that determine whether underlying graphics resources of the Scene Entity are up-to-date and reflect\r\n * the current state of its properties and the date it visualizes.\r\n */\r\nvar RenderableSeriesSceneEntityState = /** @class */ (function () {\r\n function RenderableSeriesSceneEntityState(isInitialStateProperty, isDataSeriesModifiedProperty, isRenderableSeriesPropertyChangedProperty, isAxisCubeStateChangedProperty, axisCubeState) {\r\n if (isInitialStateProperty === void 0) { isInitialStateProperty = true; }\r\n if (isDataSeriesModifiedProperty === void 0) { isDataSeriesModifiedProperty = true; }\r\n if (isRenderableSeriesPropertyChangedProperty === void 0) { isRenderableSeriesPropertyChangedProperty = true; }\r\n if (isAxisCubeStateChangedProperty === void 0) { isAxisCubeStateChangedProperty = true; }\r\n if (axisCubeState === void 0) { axisCubeState = {\r\n xVisibleMin: 0,\r\n xVisibleMax: 0,\r\n yVisibleMin: 0,\r\n yVisibleMax: 0,\r\n zVisibleMin: 0,\r\n zVisibleMax: 0,\r\n xWorldDimension: 0,\r\n yWorldDimension: 0,\r\n zWorldDimension: 0\r\n }; }\r\n this.isInitialStateProperty = isInitialStateProperty;\r\n this.isDataSeriesModifiedProperty = isDataSeriesModifiedProperty;\r\n this.isRenderableSeriesPropertyChangedProperty = isRenderableSeriesPropertyChangedProperty;\r\n this.isAxisCubeStateChangedProperty = isAxisCubeStateChangedProperty;\r\n this.axisCubeState = axisCubeState;\r\n }\r\n Object.defineProperty(RenderableSeriesSceneEntityState.prototype, \"isInitialState\", {\r\n /**\r\n * Gets whether the Scene Entity is in the initial state, meaning all the underlying resources must be (re-)created.\r\n */\r\n get: function () {\r\n return this.isInitialStateProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Sets whether the Scene Entity is in the initial state, meaning all the underlying resources must be (re-)created.\r\n */\r\n RenderableSeriesSceneEntityState.prototype.setInitialState = function () {\r\n this.isInitialStateProperty = true;\r\n };\r\n Object.defineProperty(RenderableSeriesSceneEntityState.prototype, \"isDataSeriesModified\", {\r\n /**\r\n * Gets whether the Data Series has been modified since last update.\r\n */\r\n get: function () {\r\n return this.isDataSeriesModifiedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RenderableSeriesSceneEntityState.prototype, \"isRenderableSeriesPropertyChanged\", {\r\n /**\r\n * Gets whether a property of the Renderable Series has been changed since last update.\r\n */\r\n get: function () {\r\n return this.isRenderableSeriesPropertyChangedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Sets whether a property of the Renderable Series has been changed.\r\n */\r\n RenderableSeriesSceneEntityState.prototype.setRenderableSeriesPropertyChanged = function () {\r\n this.isRenderableSeriesPropertyChangedProperty = true;\r\n };\r\n Object.defineProperty(RenderableSeriesSceneEntityState.prototype, \"isAxisCubeStateChanged\", {\r\n /**\r\n * Gets whether an Axis Cube state has been changed since last update.\r\n */\r\n get: function () {\r\n return this.isAxisCubeStateChangedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Checks if a state of the Renderable Series and a state of other objects in the Render Pass (e.g. Axis Cube)\r\n * has been changed. Sets corresponding flags, if any.\r\n * @param rs The Rendrable Series to check\r\n * @param rpi The current {@link RenderPassInfo3D} to check\r\n */\r\n RenderableSeriesSceneEntityState.prototype.validate = function (rs, rpi) {\r\n this.isDataSeriesModifiedProperty = rs.dataSeries.isModified;\r\n var fpTolerance = 0.001;\r\n this.isAxisCubeStateChangedProperty =\r\n Math.abs(this.axisCubeState.xVisibleMin - rpi.xCalc.visibleMin) > fpTolerance ||\r\n Math.abs(this.axisCubeState.xVisibleMax - rpi.xCalc.visibleMax) > fpTolerance ||\r\n Math.abs(this.axisCubeState.yVisibleMin - rpi.yCalc.visibleMin) > fpTolerance ||\r\n Math.abs(this.axisCubeState.yVisibleMax - rpi.yCalc.visibleMax) > fpTolerance ||\r\n Math.abs(this.axisCubeState.zVisibleMin - rpi.zCalc.visibleMin) > fpTolerance ||\r\n Math.abs(this.axisCubeState.zVisibleMax - rpi.zCalc.visibleMax) > fpTolerance ||\r\n Math.abs(this.axisCubeState.xWorldDimension - rpi.worldDimensions.x) > fpTolerance ||\r\n Math.abs(this.axisCubeState.yWorldDimension - rpi.worldDimensions.y) > fpTolerance ||\r\n Math.abs(this.axisCubeState.zWorldDimension - rpi.worldDimensions.z) > fpTolerance;\r\n return (!this.isInitialState &&\r\n !this.isDataSeriesModified &&\r\n !this.isDataSeriesModified &&\r\n !this.isAxisCubeStateChanged);\r\n };\r\n /**\r\n * Resets all the state changed flags and saves the current state of Rederable Series\r\n * and state of other objects in the Render Pass (e.g. Axis Cube).\r\n * @param rs The Rendrable Series, whose state gets save\r\n * @param rpi The current {@link RenderPassInfo3D}, whose state gets save\r\n */\r\n RenderableSeriesSceneEntityState.prototype.reset = function (rs, rpi) {\r\n // Reset all flags\r\n this.isInitialStateProperty = false;\r\n this.isDataSeriesModifiedProperty = false;\r\n this.isRenderableSeriesPropertyChangedProperty = false;\r\n this.isAxisCubeStateChangedProperty = false;\r\n // Update Axis Cube State\r\n this.axisCubeState = {\r\n xVisibleMin: rpi.xCalc.visibleMin,\r\n xVisibleMax: rpi.xCalc.visibleMax,\r\n yVisibleMin: rpi.yCalc.visibleMin,\r\n yVisibleMax: rpi.yCalc.visibleMax,\r\n zVisibleMin: rpi.zCalc.visibleMin,\r\n zVisibleMax: rpi.zCalc.visibleMax,\r\n xWorldDimension: rpi.worldDimensions.x,\r\n yWorldDimension: rpi.worldDimensions.y,\r\n zWorldDimension: rpi.worldDimensions.z\r\n };\r\n // Reset isModified flag of the Data Series\r\n // TODO: consider a better place for that\r\n rs.dataSeries.resetModified();\r\n };\r\n return RenderableSeriesSceneEntityState;\r\n}());\r\nexports.RenderableSeriesSceneEntityState = RenderableSeriesSceneEntityState;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ScatterPointsSceneEntity = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar SceneEntityType_1 = require(\"../../../types/SceneEntityType\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar BaseDataSeries3D_1 = require(\"../../Model/DataSeries/BaseDataSeries3D\");\r\nvar BasePointMarker3D_1 = require(\"../PointMarkers/BasePointMarker3D\");\r\nvar Constants_1 = require(\"../RenderableSeries/Constants\");\r\nvar RenderableSeriesSceneEntity_1 = require(\"./RenderableSeriesSceneEntity\");\r\nvar RenderableSeriesSceneEntityState_1 = require(\"./RenderableSeriesSceneEntityState\");\r\n/**\r\n * @summary {@link BaseSceneEntity3D} type for drawing 3D Scatter or Bubble series in SciChart's High Performance\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks See related type {@link ScatterRenderableSeries3D} which should be added to {@link SciChart3DSurface.renderableSeries}\r\n * along with data from an {@link XyzDataSeries3D} to create a 3D Scatter or Bubble chart\r\n */\r\nvar ScatterPointsSceneEntity = /** @class */ (function (_super) {\r\n __extends(ScatterPointsSceneEntity, _super);\r\n /**\r\n * Creates an instance of {@link ScatterPointsSceneEntity}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries The parent {@link BaseRenderableSeries3D} which this entity maps to\r\n */\r\n function ScatterPointsSceneEntity(webAssemblyContext, parentSeries) {\r\n var _this = _super.call(this, webAssemblyContext, parentSeries, new RenderableSeriesSceneEntityState_1.RenderableSeriesSceneEntityState()) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = SceneEntityType_1.ESceneEntityType.ScatterPointsSceneEntity;\r\n _this.setNativeEntity(webAssemblyContext.SCRTPoint3DSceneEntity.implement(_this));\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ScatterPointsSceneEntity.prototype.delete = function () {\r\n this.pointColors = (0, Deleter_1.deleteSafe)(this.pointColors);\r\n this.pointScales = (0, Deleter_1.deleteSafe)(this.pointScales);\r\n _super.prototype.delete.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ScatterPointsSceneEntity.prototype.Render = function () {\r\n this.nativeEntity.SetOpacity(this.parentSeries.opacity);\r\n _super.prototype.Render.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n * @param propertyName\r\n */\r\n ScatterPointsSceneEntity.prototype.notifySeriesPropertyChanged = function (propertyName) {\r\n // Pass flags down to child entities\r\n if (propertyName === Constants_1.PROPERTY.POINT_MARKER3D) {\r\n this.updateSeries();\r\n }\r\n _super.prototype.notifySeriesPropertyChanged.call(this, propertyName);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ScatterPointsSceneEntity.prototype.hitTest = function (screenPoint) {\r\n return _super.prototype.hitTestXyz.call(this, screenPoint);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ScatterPointsSceneEntity.prototype.updateSeries = function () {\r\n var dataSeries = this.parentSeries.dataSeries;\r\n if (!dataSeries) {\r\n return;\r\n }\r\n if (dataSeries.type !== BaseDataSeries3D_1.EDataSeriesType3D.Xyz3D) {\r\n throw new Error(\"DataSeries type for a ScatterRenderableSeries3D must be XyzDataSeries3D\");\r\n }\r\n var pointMarker = this.parentSeries.pointMarker;\r\n if (!pointMarker) {\r\n throw new Error(\"To render 3D Scatter, bubble or point-clouds, you must provider a PointMarker on BaseRenderableSeries3D\");\r\n }\r\n var eSCRTPointMarkerType = this.webAssemblyContext.eSCRT_POINT_MARKER_TYPE;\r\n var defaultColor = (0, parseColor_1.parseColorToUIntArgb)(pointMarker.fill);\r\n switch (pointMarker.markerType) {\r\n case BasePointMarker3D_1.EMarkerType.Pixel:\r\n this.nativeEntity.SetPointMarkerType(eSCRTPointMarkerType.SCRT_POINT_MARKER_TYPE_PIXEL);\r\n this.nativeEntity.SetPointSize(0);\r\n this.nativeEntity.SetPointColor(defaultColor);\r\n break;\r\n case BasePointMarker3D_1.EMarkerType.TexturedQuad:\r\n var textureMarker = pointMarker;\r\n if (!textureMarker.pointsTexture) {\r\n throw new Error(\"Expected a BaseTexturePointMarker3D.pointsTexture on 3D pointmarker of type TexturedQuad\");\r\n }\r\n this.nativeEntity.SetPointMarkerType(eSCRTPointMarkerType.SCRT_POINT_MARKER_TYPE_TEXTURED_QUAD);\r\n this.nativeEntity.SetPointSize(pointMarker.size);\r\n this.nativeEntity.SetPointColor(defaultColor);\r\n this.nativeEntity.SetPointMarkerTexture(textureMarker.pointsTexture);\r\n break;\r\n case BasePointMarker3D_1.EMarkerType.InstancedMesh:\r\n var meshMarker = pointMarker;\r\n if (!meshMarker.pointsMesh) {\r\n throw new Error(\"Expected a BaseMeshPointMarker3D.pointsMesh on 3D pointmarker of type InstancedMesh\");\r\n }\r\n this.nativeEntity.SetPointMarkerType(eSCRTPointMarkerType.SCRT_POINT_MARKER_TYPE_INSTANCED_MESH);\r\n this.nativeEntity.SetPointSize(pointMarker.size);\r\n this.nativeEntity.SetPointColor(defaultColor);\r\n this.nativeEntity.SetPointMarkerMesh(meshMarker.pointsMesh);\r\n break;\r\n default:\r\n throw new Error(\"Unknown pointMarker.markerType \" + pointMarker.markerType);\r\n }\r\n var xValues = dataSeries.getNativeXValues();\r\n var yValues = dataSeries.getNativeYValues();\r\n var zValues = dataSeries.getNativeZValues();\r\n var meta = dataSeries.getMetadataValues();\r\n var count = dataSeries.count();\r\n var _a = this.rebuildPointMetadata(meta, count, defaultColor), colors = _a.colors, scales = _a.scales;\r\n var args;\r\n try {\r\n args = new this.webAssemblyContext.SCRTPoint3DSceneEntityParams();\r\n args.useDefaultColors = false;\r\n args.useDefaultScale = false;\r\n args.SetCoordinateCalculators(this.currentRenderPassData.xCalc.nativeCalculator, this.currentRenderPassData.yCalc.nativeCalculator, this.currentRenderPassData.zCalc.nativeCalculator);\r\n this.nativeEntity.UpdateMeshesVec(xValues, yValues, zValues, colors, scales, args);\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(args);\r\n }\r\n };\r\n ScatterPointsSceneEntity.prototype.rebuildPointMetadata = function (metadata, count, defaultColor) {\r\n var _this = this;\r\n if (!this.pointColors) {\r\n this.pointColors = new this.webAssemblyContext.UIntVector();\r\n }\r\n if (!this.pointScales) {\r\n this.pointScales = new this.webAssemblyContext.FloatVector();\r\n }\r\n // Default color, size\r\n this.pointColors.resize(count, defaultColor);\r\n this.pointScales.resize(count, 1.0);\r\n // metadata will always be non-null but individual metadata items may be undefined\r\n // as its implemented as a non-sparse array\r\n metadata.forEach(function (meta, index) {\r\n var _a;\r\n if (meta) {\r\n // [SCJS-1566] Renamed vertexColorAbgr to vertexColor. Preserved backward compatibility\r\n var vertexColor = (_a = meta.vertexColorAbgr) !== null && _a !== void 0 ? _a : meta.vertexColor;\r\n if (vertexColor) {\r\n _this.pointColors.set(index, vertexColor);\r\n }\r\n if (meta.pointScale) {\r\n _this.pointScales.set(index, meta.pointScale);\r\n }\r\n }\r\n });\r\n return { colors: this.pointColors, scales: this.pointScales };\r\n };\r\n return ScatterPointsSceneEntity;\r\n}(RenderableSeriesSceneEntity_1.RenderableSeriesSceneEntity));\r\nexports.ScatterPointsSceneEntity = ScatterPointsSceneEntity;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SceneDescriptor = void 0;\r\n/**\r\n * A scene descriptor object which contains information (properties, data-values) for the 3D Scene in this current render pass\r\n */\r\nvar SceneDescriptor = /** @class */ (function () {\r\n function SceneDescriptor() {\r\n }\r\n return SceneDescriptor;\r\n}());\r\nexports.SceneDescriptor = SceneDescriptor;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SurfaceMeshSceneEntity = exports.SurfaceMeshSceneEntityState = void 0;\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../../Core/Guard\");\r\nvar NumberRange_1 = require(\"../../../Core/NumberRange\");\r\nvar Point_1 = require(\"../../../Core/Point\");\r\nvar SceneEntityType_1 = require(\"../../../types/SceneEntityType\");\r\nvar parseColor_1 = require(\"../../../utils/parseColor\");\r\nvar tsrExtensions_1 = require(\"../../../utils/tsrExtensions\");\r\nvar BaseDataSeries3D_1 = require(\"../../Model/DataSeries/BaseDataSeries3D\");\r\nvar Constants_1 = require(\"../RenderableSeries/Constants\");\r\nvar HitTestInfo3D_1 = require(\"../RenderableSeries/HitTestInfo3D\");\r\nvar SurfaceMeshRenderableSeries3D_1 = require(\"../RenderableSeries/SurfaceMesh/SurfaceMeshRenderableSeries3D\");\r\nvar RenderableSeriesSceneEntity_1 = require(\"./RenderableSeriesSceneEntity\");\r\nvar RenderableSeriesSceneEntityState_1 = require(\"./RenderableSeriesSceneEntityState\");\r\n// tslint:disable:max-classes-per-file\r\n/** @ignore */\r\nvar EGridDrawingFeatures;\r\n(function (EGridDrawingFeatures) {\r\n EGridDrawingFeatures[EGridDrawingFeatures[\"SCRT_GRID_DRAWING_FEATURES_SOLID\"] = 1] = \"SCRT_GRID_DRAWING_FEATURES_SOLID\";\r\n EGridDrawingFeatures[EGridDrawingFeatures[\"SCRT_GRID_DRAWING_FEATURES_WIREFRAME\"] = 2] = \"SCRT_GRID_DRAWING_FEATURES_WIREFRAME\";\r\n EGridDrawingFeatures[EGridDrawingFeatures[\"SCRT_GRID_DRAWING_FEATURES_CONTOURS\"] = 4] = \"SCRT_GRID_DRAWING_FEATURES_CONTOURS\";\r\n EGridDrawingFeatures[EGridDrawingFeatures[\"SCRT_GRID_DRAWING_FEATURES_SKIRT\"] = 8] = \"SCRT_GRID_DRAWING_FEATURES_SKIRT\";\r\n})(EGridDrawingFeatures || (EGridDrawingFeatures = {}));\r\n/** @ignore */\r\nfunction toString(tsrVector) {\r\n return \"xyzw= (\".concat(tsrVector.x, \" \").concat(tsrVector.y, \" \").concat(tsrVector.z, \" \").concat(tsrVector.w, \")\");\r\n}\r\n/** @ignore */\r\nfunction toStringRange(r) {\r\n return \"(min=\".concat(r.m_fMin.toFixed(2), \", max=\").concat(r.m_fMax.toFixed(2), \")\");\r\n}\r\n/** @ignore */\r\nfunction debugProps(props) {\r\n // console.log(` m_fLightingAmount ${props.m_fLightingAmount}`);\r\n // console.log(` m_fShininess ${props.m_fShininess}`);\r\n // console.log(` m_fHighlight ${props.m_fHighlight}`);\r\n // console.log(` m_fHardNormals ${props.m_fHardNormals}`);\r\n // // console.log(` m_vContourColor ${toString(props.m_vContourColor)}`);\r\n // // console.log(` m_vWireframeStroke ${toString(props.m_vWireframeStroke)}`);\r\n // console.log(` m_fContourOffset ${props.m_fContourOffset}`);\r\n // console.log(` m_fContourInterval ${props.m_fContourInterval}`);\r\n // console.log(` m_fContourThickness ${props.m_fContourThickness}`);\r\n // console.log(` m_bUseSolidCells ${props.m_bUseSolidCells}`);\r\n // console.log(` m_bUseGradient ${props.m_bUseGradient}`);\r\n // console.log(` m_bDrawBackSide ${props.m_bDrawBackSide}`);\r\n // console.log(` m_eDrawMeshAs ${props.m_eDrawMeshAs}`);\r\n // console.log(` m_fStrokeThickness ${props.m_fStrokeThickness}`);\r\n}\r\n/**\r\n * State object for {@link SurfaceMeshSceneEntity}\r\n */\r\nvar SurfaceMeshSceneEntityState = /** @class */ (function (_super) {\r\n __extends(SurfaceMeshSceneEntityState, _super);\r\n function SurfaceMeshSceneEntityState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(SurfaceMeshSceneEntityState.prototype, \"isColorMapTextureInvalid\", {\r\n /**\r\n * Gets or sets whether the color map texture is valid\r\n */\r\n get: function () {\r\n return this.isColorMapTextureInvalidProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets or sets whether the color map texture is valid\r\n */\r\n SurfaceMeshSceneEntityState.prototype.setColorMapTextureInvalid = function () {\r\n this.isColorMapTextureInvalidProperty = true;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SurfaceMeshSceneEntityState.prototype.validate = function (rs, rpi) {\r\n return _super.prototype.validate.call(this, rs, rpi) && this.isColorMapTextureInvalid;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SurfaceMeshSceneEntityState.prototype.reset = function (rs, rpi) {\r\n _super.prototype.reset.call(this, rs, rpi);\r\n this.isColorMapTextureInvalidProperty = false;\r\n };\r\n return SurfaceMeshSceneEntityState;\r\n}(RenderableSeriesSceneEntityState_1.RenderableSeriesSceneEntityState));\r\nexports.SurfaceMeshSceneEntityState = SurfaceMeshSceneEntityState;\r\n/**\r\n * @summary {@link BaseSceneEntity3D} type for drawing 3D Surface Plot or Surface Mesh with optional Contours in\r\n * SciChart's High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks See related type {@link SurfaceMeshRenderableSeries3D} which should be added to {@link SciChart3DSurface.renderableSeries}\r\n * along with data from an {@link UniformGridDataSeries3D} to create a 3D Surface Mesh or Surface Plot\r\n */\r\nvar SurfaceMeshSceneEntity = /** @class */ (function (_super) {\r\n __extends(SurfaceMeshSceneEntity, _super);\r\n /**\r\n * Creates an instance of {@link SurfaceMeshSceneEntity}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param parentSeries The parent {@link BaseRenderableSeries3D} which this entity maps to\r\n */\r\n function SurfaceMeshSceneEntity(webAssemblyContext, parentSeries) {\r\n var _this = this;\r\n var _a;\r\n _this = _super.call(this, webAssemblyContext, parentSeries, new SurfaceMeshSceneEntityState()) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = SceneEntityType_1.ESceneEntityType.SurfaceMeshSceneEntity;\r\n _this.setNativeEntity(webAssemblyContext.SCRTGridMeshEntity.implement(_this));\r\n _this.colorMapTexture = (0, Deleter_1.deleteSafe)(_this.colorMapTexture);\r\n _this.colorMapTexture = (_a = _this.parentSeries.meshColorPalette) === null || _a === void 0 ? void 0 : _a.getTexture(_this.parentSeries.colorMapTextureSize);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n SurfaceMeshSceneEntity.prototype.notifySeriesPropertyChanged = function (propertyName) {\r\n if (propertyName === Constants_1.PROPERTY.MESH_COLOR_PALETTE ||\r\n propertyName === Constants_1.PROPERTY.MESH_PALETTE_MODE ||\r\n propertyName === Constants_1.PROPERTY.MESH_RESOLUTION ||\r\n propertyName === Constants_1.PROPERTY.COLOR_MAP_TEXTURE_SIZE) {\r\n this.state.setColorMapTextureInvalid();\r\n }\r\n _super.prototype.notifySeriesPropertyChanged.call(this, propertyName);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SurfaceMeshSceneEntity.prototype.delete = function () {\r\n _super.prototype.delete.call(this);\r\n this.colorMapTexture = (0, Deleter_1.deleteSafe)(this.colorMapTexture);\r\n };\r\n SurfaceMeshSceneEntity.prototype.hitTest = function (screenPoint) {\r\n var _a;\r\n var x = Math.round(screenPoint.x);\r\n var y = Math.round(screenPoint.y);\r\n var selectionInfo = this.webAssemblyContext.SCRTGetSelectionInfo(x, y);\r\n var result = new HitTestInfo3D_1.HitTestInfo3D(this.parentSeries, false);\r\n result.isHit = ((_a = selectionInfo.GetEntity()) === null || _a === void 0 ? void 0 : _a.GetEntityId()) === this.entityId;\r\n result.selectionIjIndices = result.isHit\r\n ? new Point_1.Point(selectionInfo.m_uiHeightMapIndexI, selectionInfo.m_uiHeightMapIndexJ)\r\n : undefined;\r\n result.hitTestPoint = screenPoint;\r\n return result;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SurfaceMeshSceneEntity.prototype.Render = function () {\r\n if (!this.currentRenderPassData) {\r\n return;\r\n }\r\n if (!this.colorMapTexture || !this.parentSeries.dataSeries) {\r\n console.log(\"Cannot draw a SurfaceMeshRenderableSeries3D without a meshColorPalette or dataSeries!\");\r\n return;\r\n }\r\n // Set opacity\r\n this.nativeEntity.SetOpacity(this.parentSeries.opacity);\r\n // Setup Properties for grid mesh\r\n //\r\n var props;\r\n try {\r\n props = new this.webAssemblyContext.SCRTGridDrawingProperties();\r\n var features = 0;\r\n if (this.hasFlag(this.parentSeries.drawMeshAs, [\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_WIREFRAME,\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_WIREFRAME,\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_WIREFRAME_WITH_CONTOURS\r\n ])) {\r\n features |= EGridDrawingFeatures.SCRT_GRID_DRAWING_FEATURES_WIREFRAME;\r\n }\r\n if (this.hasFlag(this.parentSeries.drawMeshAs, [\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_WIREFRAME,\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_MESH,\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_WITH_CONTOURS,\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_WIREFRAME_WITH_CONTOURS\r\n ])) {\r\n features |= EGridDrawingFeatures.SCRT_GRID_DRAWING_FEATURES_SOLID;\r\n }\r\n if (this.hasFlag(this.parentSeries.drawMeshAs, [\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.CONTOURS,\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_WITH_CONTOURS,\r\n SurfaceMeshRenderableSeries3D_1.EDrawMeshAs.SOLID_WIREFRAME_WITH_CONTOURS\r\n ])) {\r\n features |= EGridDrawingFeatures.SCRT_GRID_DRAWING_FEATURES_CONTOURS;\r\n }\r\n if (this.parentSeries.drawSkirt) {\r\n features |= EGridDrawingFeatures.SCRT_GRID_DRAWING_FEATURES_SKIRT;\r\n }\r\n var useGradient = this.hasFlag(this.parentSeries.meshPaletteMode, [\r\n SurfaceMeshRenderableSeries3D_1.EMeshPaletteMode.HEIGHT_MAP_INTERPOLATED,\r\n SurfaceMeshRenderableSeries3D_1.EMeshPaletteMode.HEIGHT_MAP_SOLID_CELLS\r\n ]);\r\n var useSolidCells = this.hasFlag(this.parentSeries.meshPaletteMode, [\r\n SurfaceMeshRenderableSeries3D_1.EMeshPaletteMode.HEIGHT_MAP_SOLID_CELLS,\r\n SurfaceMeshRenderableSeries3D_1.EMeshPaletteMode.TEXTURED_SOLID_CELLS\r\n ]);\r\n // console.log(`features: ${features}`);\r\n props.SetDrawMeshAsInteger(features);\r\n props.m_bUseGradient = useGradient;\r\n props.m_bUseSolidCells = useSolidCells;\r\n props.m_fStrokeThickness = this.parentSeries.strokeThickness;\r\n props.m_fContourThickness = this.parentSeries.contourStrokeThickness;\r\n props.m_fContourInterval = this.parentSeries.contourInterval;\r\n props.m_fContourOffset = this.parentSeries.contourOffset;\r\n if (this.parentSeries.stroke) {\r\n var sc = (0, parseColor_1.parseColorToTArgb)(this.parentSeries.stroke);\r\n (0, tsrExtensions_1.updateTsrVector4)(sc, props.GetWireframeStrokePtr());\r\n }\r\n if (this.parentSeries.contourStroke) {\r\n (0, tsrExtensions_1.updateTsrVector4)((0, parseColor_1.parseColorToTArgb)(this.parentSeries.contourStroke), props.GetContourColorPtr());\r\n }\r\n props.m_fHardNormals = this.parentSeries.cellHardnessFactor;\r\n props.m_fHighlight = this.parentSeries.highlight;\r\n props.m_fShininess = this.parentSeries.shininess;\r\n props.m_fLightingAmount = this.parentSeries.lightingFactor;\r\n debugProps(props);\r\n this.nativeEntity.SetGridDrawingProperties(props);\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(props);\r\n }\r\n // Setup Range and Offset\r\n var xCalc = this.currentRenderPassData.xCalc;\r\n var yCalc = this.currentRenderPassData.yCalc;\r\n var zCalc = this.currentRenderPassData.zCalc;\r\n var meshRangeX;\r\n var meshRangeY;\r\n var meshRangeZ;\r\n var visibleRangeX;\r\n var visibleRangeY;\r\n var visibleRangeZ;\r\n try {\r\n var yRange = new NumberRange_1.NumberRange(this.parentSeries.minimum, this.parentSeries.maximum);\r\n meshRangeX = this.rangeToSCRTAxisRange(this.webAssemblyContext, xCalc, this.parentSeries.dataSeries.xRange);\r\n meshRangeY = this.rangeToSCRTAxisRange(this.webAssemblyContext, yCalc, yRange);\r\n meshRangeZ = this.rangeToSCRTAxisRange(this.webAssemblyContext, zCalc, this.parentSeries.dataSeries.zRange);\r\n // console.log(\r\n // `meshRange: x=${toStringRange(meshRangeX)} y=${toStringRange(meshRangeY)} z=${toStringRange(\r\n // meshRangeZ\r\n // )}`\r\n // );\r\n this.nativeEntity.SetMeshRange(meshRangeX, meshRangeY, meshRangeZ);\r\n visibleRangeX = this.toSCRTAxisRange(this.webAssemblyContext, xCalc, xCalc.visibleMin, xCalc.visibleMax);\r\n visibleRangeY = this.toSCRTAxisRange(this.webAssemblyContext, yCalc, yCalc.visibleMin, yCalc.visibleMax);\r\n visibleRangeZ = this.toSCRTAxisRange(this.webAssemblyContext, zCalc, zCalc.visibleMin, zCalc.visibleMax);\r\n // console.log(\r\n // `visibleRange: x=${toStringRange(visibleRangeX)} y=${toStringRange(visibleRangeY)} z=${toStringRange(\r\n // visibleRangeZ\r\n // )}`\r\n // );\r\n // console.log(\r\n // `Viewport dimensions: ${xCalc.viewportDimension}, ${yCalc.viewportDimension}, ${zCalc.viewportDimension}`\r\n // );\r\n this.nativeEntity.SetVisibleRange(visibleRangeX, visibleRangeY, visibleRangeZ);\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(meshRangeX);\r\n (0, Deleter_1.deleteSafe)(meshRangeY);\r\n (0, Deleter_1.deleteSafe)(meshRangeZ);\r\n (0, Deleter_1.deleteSafe)(visibleRangeX);\r\n (0, Deleter_1.deleteSafe)(visibleRangeY);\r\n (0, Deleter_1.deleteSafe)(visibleRangeZ);\r\n }\r\n var yOffset = this.parentSeries.yOffset ? yCalc.getCoordinate(this.parentSeries.yOffset) : 0;\r\n // console.log(`heightScaleFactor, yOffset ${this.parentSeries.heightScaleFactor} ${yOffset}`);\r\n this.nativeEntity.SetHeightmapScaleOffset(this.parentSeries.heightScaleFactor, yOffset);\r\n // console.log(`ColormapTexture ${this.colorMapTexture}`);\r\n this.nativeEntity.SetTexture(this.colorMapTexture.getTexture());\r\n _super.prototype.Render.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SurfaceMeshSceneEntity.prototype.updateSeries = function () {\r\n var _a;\r\n var gridDataSeries = this.parentSeries.dataSeries;\r\n if (gridDataSeries) {\r\n Guard_1.Guard.isTrue(gridDataSeries.type === BaseDataSeries3D_1.EDataSeriesType3D.UniformGrid3D ||\r\n gridDataSeries.type === BaseDataSeries3D_1.EDataSeriesType3D.NonUniformGrid3D, \"SurfaceMeshSceneEntity dataSeries must be type UniformGrid3D or NonUniformGrid3D\");\r\n var gridWidth = gridDataSeries.xSize;\r\n var gridHeight = gridDataSeries.zSize;\r\n Guard_1.Guard.notNull(this.currentRenderPassData, \"SurfaceMeshSceneEntity.currentRenderPassData\");\r\n // SCJS-1562 2 DAYS to find the source of the crash! Don't recreate every frame.\r\n if (this.state.isColorMapTextureInvalid) {\r\n this.colorMapTexture = (0, Deleter_1.deleteSafe)(this.colorMapTexture);\r\n this.colorMapTexture = (_a = this.parentSeries.meshColorPalette) === null || _a === void 0 ? void 0 : _a.getTexture(this.parentSeries.colorMapTextureSize);\r\n }\r\n var needUpdateMesh = this.state.isInitialState;\r\n var needUpdateHeights = this.state.isDataSeriesModified;\r\n if (needUpdateMesh) {\r\n var scrtMeshRes = void 0;\r\n switch (this.parentSeries.meshResolution) {\r\n case SurfaceMeshRenderableSeries3D_1.EMeshResolution.MESH_RESOLUTION_X1:\r\n scrtMeshRes = this.webAssemblyContext.eSCRTGridMeshResolution.SCRT_GRID_MESH_RES_X1;\r\n break;\r\n case SurfaceMeshRenderableSeries3D_1.EMeshResolution.MESH_RESOLUTION_X2:\r\n scrtMeshRes = this.webAssemblyContext.eSCRTGridMeshResolution.SCRT_GRID_MESH_RES_X2;\r\n break;\r\n case SurfaceMeshRenderableSeries3D_1.EMeshResolution.MESH_RESOLUTION_X4:\r\n scrtMeshRes = this.webAssemblyContext.eSCRTGridMeshResolution.SCRT_GRID_MESH_RES_X4;\r\n break;\r\n default:\r\n throw Error(\"Unknown SurfaceMeshSceneEntity.meshResolution \" + this.parentSeries.meshResolution);\r\n }\r\n var heightCoords = new this.webAssemblyContext.FloatVector();\r\n var zOffsets = new this.webAssemblyContext.FloatVector();\r\n var cellColors = new this.webAssemblyContext.UIntVector();\r\n heightCoords.resize(gridWidth * gridHeight, 0);\r\n zOffsets.resize(gridWidth * gridHeight, 0);\r\n cellColors.resize(gridWidth * gridHeight, 0);\r\n // console.log(`UpdateMeshesVec ${gridWidth} ${gridHeight}`);\r\n this.nativeEntity.UpdateMeshesVec(heightCoords, zOffsets, cellColors, gridWidth, gridHeight, scrtMeshRes);\r\n (0, Deleter_1.deleteSafe)(heightCoords);\r\n (0, Deleter_1.deleteSafe)(zOffsets);\r\n (0, Deleter_1.deleteSafe)(cellColors);\r\n }\r\n if (needUpdateHeights) {\r\n // console.log(`UpdateHeightCoordinatesVec ${gridWidth} ${gridHeight}`);\r\n var heightCoords = new this.webAssemblyContext.FloatVector();\r\n var size = gridWidth * gridHeight;\r\n heightCoords.reserve(size);\r\n var yCalc = this.currentRenderPassData.yCalc;\r\n // console.log(`yCalc: ${yCalc.visibleMin}, ${yCalc.visibleMax}, ${yCalc.viewportDimension}`);\r\n for (var z = 0; z < gridDataSeries.zSize; z++) {\r\n for (var x = 0; x < gridDataSeries.xSize; x++) {\r\n heightCoords.push_back(yCalc.getCoordinate(gridDataSeries.getYValue(z, x)));\r\n }\r\n }\r\n this.nativeEntity.UpdateHeightCoordinatesVec(heightCoords, gridWidth, gridHeight);\r\n (0, Deleter_1.deleteSafe)(heightCoords);\r\n }\r\n }\r\n };\r\n SurfaceMeshSceneEntity.prototype.hasFlag = function (theFlag, matchList) {\r\n return matchList.some(function (item) { return item === theFlag; });\r\n };\r\n SurfaceMeshSceneEntity.prototype.toSCRTAxisRange = function (webAssemblyContext, calc, min, max) {\r\n var scrtAxisRange = new webAssemblyContext.SCRTAxisRange();\r\n scrtAxisRange.m_fMin = calc ? calc.getCoordinate(min) : min;\r\n scrtAxisRange.m_fMax = calc ? calc.getCoordinate(max) : max;\r\n scrtAxisRange.m_fDiff = calc ? calc.getCoordinate(max - min) : max - min;\r\n return scrtAxisRange;\r\n };\r\n SurfaceMeshSceneEntity.prototype.rangeToSCRTAxisRange = function (webAssemblyContext, calc, tsRange) {\r\n return this.toSCRTAxisRange(webAssemblyContext, calc, tsRange.min, tsRange.max);\r\n };\r\n return SurfaceMeshSceneEntity;\r\n}(RenderableSeriesSceneEntity_1.RenderableSeriesSceneEntity));\r\nexports.SurfaceMeshSceneEntity = SurfaceMeshSceneEntity;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseRenderableSeries3D = void 0;\r\nvar DeletableEntity_1 = require(\"../../../Core/DeletableEntity\");\r\nvar Deleter_1 = require(\"../../../Core/Deleter\");\r\nvar guid_1 = require(\"../../../utils/guid\");\r\nvar BaseDataSeries3D_1 = require(\"../../Model/DataSeries/BaseDataSeries3D\");\r\nvar Constants_1 = require(\"./Constants\");\r\nvar SeriesInfo3D_1 = require(\"./SeriesInfo3D\");\r\nvar SurfaceMeshSeriesInfo3D_1 = require(\"./SurfaceMeshSeriesInfo3D\");\r\nvar XyzSeriesInfo3D_1 = require(\"./XyzSeriesInfo3D\");\r\n/**\r\n * @summary Defines the base class to a 3D Render Series (or 3D Chart Type) in SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks\r\n * A {@link BaseRenderableSeries3D} defines how data should be rendered. e.g. as a 3D Scatter Chart, 3D Point Line Chart etc...\r\n * This is independent from the {@link BaseDataSeries3D | DataSeries3D} which stores the data to render\r\n *\r\n * See derived types of {@link BaseDataSeries3D} to find out what data-series are available.\r\n * See derived types of {@link IRenderableSeries3D} to find out what 3D JavaScript Chart types are available.\r\n */\r\nvar BaseRenderableSeries3D = /** @class */ (function (_super) {\r\n __extends(BaseRenderableSeries3D, _super);\r\n /**\r\n * Creates an instance of the {@link BaseRenderableSeries3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IBaseRenderableSeries3DOptions} to configure the series\r\n * @protected\r\n */\r\n function BaseRenderableSeries3D(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b;\r\n _this = _super.call(this) || this;\r\n _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n _this.webAssemblyContext = webAssemblyContext;\r\n _this.dataSeriesDataChanged = _this.dataSeriesDataChanged.bind(_this);\r\n _this.pointMarkerPropertyChanged = _this.pointMarkerPropertyChanged.bind(_this);\r\n _this.onDpiChanged = _this.onDpiChanged.bind(_this);\r\n _this.hitTest = _this.hitTest.bind(_this);\r\n _this.enrichHitTest = _this.enrichHitTest.bind(_this);\r\n _this.dataSeries = (options === null || options === void 0 ? void 0 : options.dataSeries) || undefined;\r\n _this.isVisibleProperty = (options === null || options === void 0 ? void 0 : options.isVisible) !== undefined ? options === null || options === void 0 ? void 0 : options.isVisible : true;\r\n _this.pointMarkerProperty = (options === null || options === void 0 ? void 0 : options.pointMarker) || undefined;\r\n _this.strokeProperty = (options === null || options === void 0 ? void 0 : options.stroke) || \"#FFFFFF\";\r\n _this.shininessProperty = (options === null || options === void 0 ? void 0 : options.shininess) === undefined ? 64 : options.shininess;\r\n _this.opacityProperty = (_b = options === null || options === void 0 ? void 0 : options.opacity) !== null && _b !== void 0 ? _b : 1;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n BaseRenderableSeries3D.prototype.applyTheme = function (themeProvider) {\r\n // TODO\r\n };\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"opacity\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.opacityProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (opacity) {\r\n this.opacityProperty = opacity;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.OPACITY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"sceneEntity\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.sceneEntityProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"shininess\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.shininessProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (shininess) {\r\n this.shininessProperty = shininess;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SHININESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"paletteProvider\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.paletteProviderProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (paletteProvider) {\r\n this.paletteProviderProperty = paletteProvider;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.PALETTE_PROVIDER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"stroke\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.strokeProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (stroke) {\r\n this.strokeProperty = stroke;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.STROKE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"dataSeries\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.dataSeriesProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (dataSeries) {\r\n var _a, _b;\r\n this.dataSeriesProperty = dataSeries;\r\n (_a = this.dataSeriesProperty) === null || _a === void 0 ? void 0 : _a.dataChanged.unsubscribe(this.dataSeriesDataChanged);\r\n this.dataSeriesProperty = dataSeries;\r\n (_b = this.dataSeriesProperty) === null || _b === void 0 ? void 0 : _b.dataChanged.subscribe(this.dataSeriesDataChanged);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.DATA_SERIES);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"pointMarker\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.pointMarkerProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (pointMarker) {\r\n this.detachPointMarker(this.pointMarkerProperty);\r\n this.pointMarkerProperty = pointMarker;\r\n this.attachPointMarker(this.pointMarkerProperty);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.POINT_MARKER3D);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"parentSurface\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.parentSurfaceProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (parentSurface) {\r\n this.parentSurfaceProperty = parentSurface;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.PARENT_SURFACE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BaseRenderableSeries3D.prototype, \"isVisible\", {\r\n /** @inheritDoc */\r\n get: function () {\r\n return this.isVisibleProperty;\r\n },\r\n /** @inheritDoc */\r\n set: function (isVisible) {\r\n this.isVisibleProperty = isVisible;\r\n if (this.sceneEntityProperty) {\r\n this.sceneEntityProperty.isVisible = this.isVisibleProperty;\r\n }\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.IS_VISIBLE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n BaseRenderableSeries3D.prototype.onAttach = function (scs) {\r\n this.parentSurface = scs;\r\n if (this.invalidateParentCallback) {\r\n throw new Error(\"Invalid operation in sciChart3DSurface.attachSeries, this series has already been attached to a SciChart3DSurface. Please detach it from a SciChart3DSurface before attaching to another\");\r\n }\r\n this.invalidateParentCallback = scs.invalidateElement;\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries3D.prototype.onDetach = function () {\r\n this.invalidateParentCallback = undefined;\r\n this.parentSurface = undefined;\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries3D.prototype.delete = function () {\r\n this.sceneEntityProperty = (0, Deleter_1.deleteSafe)(this.sceneEntityProperty);\r\n this.dataSeries = (0, Deleter_1.deleteSafe)(this.dataSeries);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries3D.prototype.onDpiChanged = function (args) {\r\n var _a;\r\n (_a = this.sceneEntityProperty) === null || _a === void 0 ? void 0 : _a.onDpiChanged(args);\r\n };\r\n /** @inheritDoc */\r\n BaseRenderableSeries3D.prototype.hitTest = function (screenPoint) {\r\n if (this.parentSurface && !this.parentSurface.isHitTestEnabled) {\r\n throw new Error(\"Enable hit-test functions by setting SciChart3DSurface.isHitTestEnabled = true\");\r\n }\r\n var hitTestFunc = this.sceneEntity.hitTest;\r\n if (hitTestFunc) {\r\n return this.enrichHitTest(hitTestFunc(screenPoint));\r\n }\r\n return SeriesInfo3D_1.SeriesInfo3D.empty();\r\n };\r\n /**\r\n * Is being called when the data for the underlying DataSeries changes\r\n * @protected\r\n */\r\n BaseRenderableSeries3D.prototype.dataSeriesDataChanged = function () {\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n BaseRenderableSeries3D.prototype.enrichHitTest = function (hitTestInfo) {\r\n var _a;\r\n var hitDataSeries = (_a = hitTestInfo.associatedSeries) === null || _a === void 0 ? void 0 : _a.dataSeries;\r\n if (!hitDataSeries) {\r\n return SeriesInfo3D_1.SeriesInfo3D.empty();\r\n }\r\n switch (hitDataSeries.type) {\r\n case BaseDataSeries3D_1.EDataSeriesType3D.Xyz3D:\r\n return new XyzSeriesInfo3D_1.XyzSeriesInfo3D(this, hitTestInfo);\r\n case BaseDataSeries3D_1.EDataSeriesType3D.UniformGrid3D:\r\n return new SurfaceMeshSeriesInfo3D_1.SurfaceMeshSeriesInfo3D(this, hitTestInfo);\r\n default:\r\n throw new Error(\"Unknown data series type \" + hitDataSeries.type);\r\n }\r\n };\r\n /**\r\n * Used internally - sets the {@link IRenderableSeriesSceneEntity | 3D Scene Entity}\r\n * @param sceneEntity\r\n * @protected\r\n */\r\n BaseRenderableSeries3D.prototype.setSceneEntity = function (sceneEntity) {\r\n this.sceneEntityProperty = sceneEntity;\r\n if (this.sceneEntityProperty) {\r\n this.sceneEntityProperty.isVisible = this.isVisible;\r\n }\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SCENE_ENTITY);\r\n };\r\n /**\r\n * Notifies listeners to {@link invalidateParentCallback} that a property has changed\r\n * @param propertyName\r\n * @protected\r\n */\r\n BaseRenderableSeries3D.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n (_a = this.sceneEntityProperty) === null || _a === void 0 ? void 0 : _a.notifySeriesPropertyChanged(propertyName);\r\n if (this.invalidateParentCallback) {\r\n this.invalidateParentCallback();\r\n }\r\n };\r\n BaseRenderableSeries3D.prototype.attachPointMarker = function (pointMarker) {\r\n if (pointMarker) {\r\n pointMarker.propertyChanged.subscribe(this.pointMarkerPropertyChanged);\r\n }\r\n };\r\n BaseRenderableSeries3D.prototype.detachPointMarker = function (pointMarker) {\r\n if (pointMarker) {\r\n pointMarker.propertyChanged.unsubscribe(this.pointMarkerPropertyChanged);\r\n }\r\n };\r\n BaseRenderableSeries3D.prototype.pointMarkerPropertyChanged = function (args) {\r\n this.notifyPropertyChanged(\"pointMarker.\" + args.propertyName);\r\n };\r\n return BaseRenderableSeries3D;\r\n}(DeletableEntity_1.DeletableEntity));\r\nexports.BaseRenderableSeries3D = BaseRenderableSeries3D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PROPERTY = void 0;\r\nvar PROPERTY;\r\n(function (PROPERTY) {\r\n PROPERTY[\"CELL_HARDNESS_FACTOR\"] = \"CELL_HARDNESS_FACTOR\";\r\n PROPERTY[\"COLOR_MAP_TEXTURE_SIZE\"] = \"COLOR_MAP_TEXTURE_SIZE\";\r\n PROPERTY[\"CONTOUR_STROKE\"] = \"CONTOUR_STROKE\";\r\n PROPERTY[\"CONTOUR_OFFSET\"] = \"CONTOUR_OFFSET\";\r\n PROPERTY[\"CONTOUR_INTERVAL\"] = \"CONTOUR_INTERVAL\";\r\n PROPERTY[\"CONTOUR_STROKE_THICKNESS\"] = \"CONTOUR_STROKE_THICKNESS\";\r\n PROPERTY[\"DATA_SERIES\"] = \"DATA_SERIES\";\r\n PROPERTY[\"DRAW_MESH_AS\"] = \"DRAW_MESH_AS\";\r\n PROPERTY[\"DRAW_SKIRT\"] = \"DRAW_SKIRT\";\r\n PROPERTY[\"FILL\"] = \"FILL\";\r\n PROPERTY[\"GRADIENT_STOPS\"] = \"GRADIENT_STOPS\";\r\n PROPERTY[\"HEIGHT_SCALE_FACTOR\"] = \"HEIGHT_SCALE_FACTOR\";\r\n PROPERTY[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\r\n PROPERTY[\"IS_ANTIALIASED\"] = \"IS_ANTIALIASED\";\r\n PROPERTY[\"IS_LINE_STRIP\"] = \"IS_LINE_STRIP\";\r\n PROPERTY[\"IS_VISIBLE\"] = \"IS_VISIBLE\";\r\n PROPERTY[\"LIGHTING_FACTOR\"] = \"LIGHTING_FACTOR\";\r\n PROPERTY[\"MAXIMUM\"] = \"MAXIMUM\";\r\n PROPERTY[\"MESH_COLOR_PALETTE\"] = \"MESH_COLOR_PALETTE\";\r\n PROPERTY[\"MESH_PALETTE_MODE\"] = \"MESH_PALETTE_MODE\";\r\n PROPERTY[\"MESH_RESOLUTION\"] = \"MESH_RESOLUTION\";\r\n PROPERTY[\"MINIMUM\"] = \"MINIMUM\";\r\n PROPERTY[\"OPACITY\"] = \"OPACITY\";\r\n PROPERTY[\"PALETTE_PROVIDER\"] = \"PALETTE_PROVIDER\";\r\n PROPERTY[\"PARENT_SURFACE\"] = \"PARENT_SURFACE\";\r\n PROPERTY[\"POINT_MARKER3D\"] = \"POINT_MARKER3D\";\r\n PROPERTY[\"SCENE_ENTITY\"] = \"SCENE_ENTITY\";\r\n PROPERTY[\"SHININESS\"] = \"SHININESS\";\r\n PROPERTY[\"STROKE\"] = \"STROKE\";\r\n PROPERTY[\"STROKE_THICKNESS\"] = \"STROKE_THICKNESS\";\r\n PROPERTY[\"Y_OFFSET\"] = \"Y_OFFSET\";\r\n})(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ESeriesType3D = void 0;\r\n/**\r\n * Enumeration constants to define the series type\r\n */\r\nvar ESeriesType3D;\r\n(function (ESeriesType3D) {\r\n ESeriesType3D[\"ScatterRenderableSeries3D\"] = \"ScatterRenderableSeries3D\";\r\n ESeriesType3D[\"SurfaceMeshRenderableSeries3D\"] = \"SurfaceMeshRenderableSeries3D\";\r\n ESeriesType3D[\"PointLineRenderableSeries3D\"] = \"PointLineRenderableSeries3D\";\r\n})(ESeriesType3D = exports.ESeriesType3D || (exports.ESeriesType3D = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HitTestInfo3D = void 0;\r\n/**\r\n * A non-enriched Hit-Test result (intermediate step) when calling {@link BaseRenderableSeries3D.hitTest}.\r\n * See {@link SeriesInfo3D} for the enriched result.\r\n */\r\nvar HitTestInfo3D = /** @class */ (function () {\r\n function HitTestInfo3D(renderableSeries, isEmpty) {\r\n if (isEmpty === void 0) { isEmpty = false; }\r\n this.isEmpty = isEmpty;\r\n this.associatedSeries = renderableSeries;\r\n }\r\n /**\r\n * The default empty {@link HitTestInfo3D} instance\r\n */\r\n HitTestInfo3D.empty = function () {\r\n return new HitTestInfo3D(undefined, true);\r\n };\r\n return HitTestInfo3D;\r\n}());\r\nexports.HitTestInfo3D = HitTestInfo3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PointLineRenderableSeries3D = void 0;\r\nvar PointLine3DSceneEntity_1 = require(\"../Primitives/PointLine3DSceneEntity\");\r\nvar BaseRenderableSeries3D_1 = require(\"./BaseRenderableSeries3D\");\r\nvar Constants_1 = require(\"./Constants\");\r\nvar ESeriesType_1 = require(\"./ESeriesType\");\r\n/**\r\n * Defines a 3D poine-line series or 3D line chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks\r\n * To add a 3D line series to a {@link SciChart3DSurface} you need to declare both the {@link PointLineRenderableSeries3D}\r\n * and a {@link XyzDataSeries3D}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChart3DSurface: SciChart3DSurface;\r\n * const wasmContext: TSciChart3D;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyzDataSeries3D(wasmContext);\r\n * dataSeries.append(1,2,3);\r\n * dataSeries.append(3,4,5);\r\n * // Create the renderableSeries\r\n * const lineSeries3D = new PointLineRenderableSeries3D(wasmContext);\r\n * lineSeries3D.dataSeries = dataSeries;\r\n * lineSeries3D.pointMarker = new SpherePointMarker3D(wasmContext, {\r\n * size: 3,\r\n * fill: \"#FF0000\"\r\n * });\r\n * // append to the SciChartSurface\r\n * sciChart3DSurface.renderableSeries.add(lineSeries3D);\r\n * ```\r\n */\r\nvar PointLineRenderableSeries3D = /** @class */ (function (_super) {\r\n __extends(PointLineRenderableSeries3D, _super);\r\n /**\r\n * Creates an instance of a {@link PointLineRenderableSeries3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IBaseRenderableSeries3DOptions} to configure the series\r\n */\r\n function PointLineRenderableSeries3D(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c;\r\n _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = ESeriesType_1.ESeriesType3D.PointLineRenderableSeries3D;\r\n _this.strokeThicknessProperty = (_a = options === null || options === void 0 ? void 0 : options.strokeThickness) !== null && _a !== void 0 ? _a : 2;\r\n _this.isLineStripProperty = (_b = options === null || options === void 0 ? void 0 : options.isLineStrip) !== null && _b !== void 0 ? _b : true;\r\n _this.isAntiAliasedProperty = (_c = options === null || options === void 0 ? void 0 : options.isAntiAliased) !== null && _c !== void 0 ? _c : true;\r\n _this.setSceneEntity(new PointLine3DSceneEntity_1.PointLine3DSceneEntity(webAssemblyContext, _this));\r\n return _this;\r\n }\r\n Object.defineProperty(PointLineRenderableSeries3D.prototype, \"strokeThickness\", {\r\n get: function () {\r\n return this.strokeThicknessProperty;\r\n },\r\n set: function (value) {\r\n this.strokeThicknessProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.STROKE_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PointLineRenderableSeries3D.prototype, \"isLineStrip\", {\r\n get: function () {\r\n return this.isLineStripProperty;\r\n },\r\n set: function (value) {\r\n this.isLineStripProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.IS_LINE_STRIP);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PointLineRenderableSeries3D.prototype, \"isAntiAliased\", {\r\n get: function () {\r\n return this.isAntiAliasedProperty;\r\n },\r\n set: function (value) {\r\n this.isAntiAliasedProperty = value;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.IS_ANTIALIASED);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return PointLineRenderableSeries3D;\r\n}(BaseRenderableSeries3D_1.BaseRenderableSeries3D));\r\nexports.PointLineRenderableSeries3D = PointLineRenderableSeries3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ScatterRenderableSeries3D = void 0;\r\nvar ScatterPointsSceneEntity_1 = require(\"../Primitives/ScatterPointsSceneEntity\");\r\nvar BaseRenderableSeries3D_1 = require(\"./BaseRenderableSeries3D\");\r\nvar ESeriesType_1 = require(\"./ESeriesType\");\r\n/**\r\n * Defines a 3D scatter-series or 3D Bubble chart type in the SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks\r\n * To add a 3D scatter series to a {@link SciChart3DSurface} you need to declare both the {@link ScatterRenderableSeries3D}\r\n * and a {@link XyzDataSeries3D}. Simplified code sample below:\r\n *\r\n * ```ts\r\n * const sciChart3DSurface: SciChart3DSurface;\r\n * const wasmContext: TSciChart3D;\r\n * // Create and fill the dataseries\r\n * const dataSeries = new XyzDataSeries3D(wasmContext);\r\n * dataSeries.append(1,2,3);\r\n * dataSeries.append(3,4,5);\r\n * // Create the renderableSeries\r\n * const scatterSeries = new ScatterRenderableSeries3D(wasmContext);\r\n * scatterSeries.dataSeries = dataSeries;\r\n * scatterSeries.pointMarker = new SpherePointMarker3D(wasmContext, {\r\n * size: 3,\r\n * fill: \"#FF0000\"\r\n * });\r\n * // append to the SciChartSurface\r\n * sciChart3DSurface.renderableSeries.add(scatterSeries);\r\n * ```\r\n */\r\nvar ScatterRenderableSeries3D = /** @class */ (function (_super) {\r\n __extends(ScatterRenderableSeries3D, _super);\r\n /**\r\n * Creates an instance of a {@link ScatterRenderableSeries3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing\r\n * native methods and access to our WebGL2 WebAssembly Drawing Engine\r\n * @param options Optional parameters of type {@link IBaseRenderableSeries3DOptions} to configure the series\r\n */\r\n function ScatterRenderableSeries3D(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = ESeriesType_1.ESeriesType3D.ScatterRenderableSeries3D;\r\n _this.setSceneEntity(new ScatterPointsSceneEntity_1.ScatterPointsSceneEntity(webAssemblyContext, _this));\r\n return _this;\r\n }\r\n return ScatterRenderableSeries3D;\r\n}(BaseRenderableSeries3D_1.BaseRenderableSeries3D));\r\nexports.ScatterRenderableSeries3D = ScatterRenderableSeries3D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesInfo3D = void 0;\r\n/**\r\n * SeriesInfo3D is a data-structure which provides enriched information about a hit-test operation in SciChart 3D.\r\n * It's derived by calling {@link BaseRenderableSeries3D.hitTest}. There is a class hierachy for {@link SeriesInfo3D} which\r\n * is a different class depending on series type, e.g. 3D Scatter series has {@link XyzSeriesInfo3D},\r\n * 3D Surface mesh series has {@link SurfaceMeshSeriesInfo3D} etc.\r\n */\r\nvar SeriesInfo3D = /** @class */ (function () {\r\n function SeriesInfo3D(series, hitTestInfo) {\r\n var _a;\r\n /**\r\n * When true, the {@link SeriesInfo3D} is empty\r\n */\r\n this.isEmpty = false;\r\n this.renderableSeries = series;\r\n this.dataSeriesName = (_a = series === null || series === void 0 ? void 0 : series.dataSeries) === null || _a === void 0 ? void 0 : _a.dataSeriesName;\r\n this.isHit = hitTestInfo.isHit;\r\n this.hitTestInfo = hitTestInfo;\r\n }\r\n /**\r\n * The default empty {@link HitTestInfo3D} instance\r\n */\r\n SeriesInfo3D.empty = function () {\r\n var si = new SeriesInfo3D(undefined, undefined);\r\n si.isEmpty = true;\r\n return si;\r\n };\r\n return SeriesInfo3D;\r\n}());\r\nexports.SeriesInfo3D = SeriesInfo3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GradientColorPalette = void 0;\r\nvar CanvasTexture_1 = require(\"../../../../Charting/Visuals/TextureManager/CanvasTexture\");\r\nvar app_1 = require(\"../../../../constants/app\");\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar Constants_1 = require(\"../Constants\");\r\nvar MeshColorPalette_1 = require(\"./MeshColorPalette\");\r\n/**\r\n * Provides a gradient color palette which may be applied to the {@link SurfaceMeshRenderableSeries3D.meshColorPalette}\r\n * property\r\n */\r\nvar GradientColorPalette = /** @class */ (function (_super) {\r\n __extends(GradientColorPalette, _super);\r\n /**\r\n * Creates an instance of the {@link GradientColorPalette}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options optional parameters of type {@link IGradientColorPaletteOptions} passed to the constructor\r\n */\r\n function GradientColorPalette(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext) || this;\r\n _this.gradientStops = (options === null || options === void 0 ? void 0 : options.gradientStops) || [\r\n { offset: 0, color: \"Red\" },\r\n { offset: 1, color: \"Green\" }\r\n ];\r\n return _this;\r\n }\r\n Object.defineProperty(GradientColorPalette.prototype, \"gradientStops\", {\r\n /**\r\n * The array of {@link TGradientStop | Gradient Stops} to apply with offsets from 0.0 - 1.0\r\n */\r\n get: function () {\r\n return this.gradientStopsProperty;\r\n },\r\n /**\r\n * The array of {@link TGradientStop | Gradient Stops} to apply with offsets from 0.0 - 1.0\r\n */\r\n set: function (gradientStops) {\r\n this.gradientStopsProperty = gradientStops;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.GRADIENT_STOPS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n GradientColorPalette.prototype.getTexture = function (size) {\r\n if (app_1.IS_TEST_ENV) {\r\n return undefined;\r\n }\r\n Guard_1.Guard.notNull(size, \"size\");\r\n Guard_1.Guard.isTrue(size.width > 0, \"size.width must be greater than 0\");\r\n Guard_1.Guard.isTrue(size.height > 0, \"size.height must be greater than 0\");\r\n Guard_1.Guard.notNull(this.gradientStopsProperty, \"GradientColorPalette.gradientStops\");\r\n var canvasTexture = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, size.width, size.height);\r\n canvasTexture.clear();\r\n var ctx = canvasTexture.getContext();\r\n // BEGIN: Drawing gradient rectangle on canvas2D\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = size.width;\r\n var y2 = 0;\r\n var gradient = ctx.createLinearGradient(x1, y1, x2, y2);\r\n this.gradientStops.forEach(function (el) {\r\n gradient.addColorStop(el.offset, el.color);\r\n });\r\n ctx.fillStyle = gradient;\r\n ctx.fillRect(0, 0, size.width, size.height);\r\n // END: Drawing gradient rectangle on canvas2D\r\n canvasTexture.copyTexture();\r\n return canvasTexture;\r\n };\r\n return GradientColorPalette;\r\n}(MeshColorPalette_1.MeshColorPalette));\r\nexports.GradientColorPalette = GradientColorPalette;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MeshColorPalette = void 0;\r\nvar EventHandler_1 = require(\"../../../../Core/EventHandler\");\r\nvar PropertyChangedEventArgs_1 = require(\"../../../../Core/PropertyChangedEventArgs\");\r\n/**\r\n * Provides a base class for color palettes which may be applied to the {@link SurfaceMeshRenderableSeries3D.meshColorPalette} property\r\n * @remarks See concrete types {@link SolidColorBrushPalette} and {@link GradientColorPalette} for more details.\r\n */\r\nvar MeshColorPalette = /** @class */ (function () {\r\n /**\r\n * Creates an instance of a {@link MeshColorPalette}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n */\r\n function MeshColorPalette(webAssemblyContext) {\r\n this.webAssemblyContext = webAssemblyContext;\r\n this.propertyChanged = new EventHandler_1.EventHandler();\r\n }\r\n /**\r\n * Notifies subscribers of {@link propertyChanged}\r\n * @param propertyName The property name which changed\r\n */\r\n MeshColorPalette.prototype.notifyPropertyChanged = function (propertyName) {\r\n var _a;\r\n (_a = this.propertyChanged) === null || _a === void 0 ? void 0 : _a.raiseEvent(new PropertyChangedEventArgs_1.PropertyChangedEventArgs(propertyName));\r\n };\r\n return MeshColorPalette;\r\n}());\r\nexports.MeshColorPalette = MeshColorPalette;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SolidColorBrushPalette = void 0;\r\nvar CanvasTexture_1 = require(\"../../../../Charting/Visuals/TextureManager/CanvasTexture\");\r\nvar app_1 = require(\"../../../../constants/app\");\r\nvar Guard_1 = require(\"../../../../Core/Guard\");\r\nvar parseColor_1 = require(\"../../../../utils/parseColor\");\r\nvar Constants_1 = require(\"../Constants\");\r\nvar MeshColorPalette_1 = require(\"./MeshColorPalette\");\r\n/**\r\n * Provides a solid color (single color) palette which may be applied to the {@link SurfaceMeshRenderableSeries3D.meshColorPalette}\r\n * property\r\n */\r\nvar SolidColorBrushPalette = /** @class */ (function (_super) {\r\n __extends(SolidColorBrushPalette, _super);\r\n /**\r\n * Creates an instance of the {@link SolidColorBrushPalette}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options optional parameters of type {@link ISolidColorBrushPaletteOptions} passed to the constructor\r\n */\r\n function SolidColorBrushPalette(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext) || this;\r\n _this.fillProperty = (options === null || options === void 0 ? void 0 : options.fill) || \"#777777\";\r\n return _this;\r\n }\r\n Object.defineProperty(SolidColorBrushPalette.prototype, \"fill\", {\r\n /**\r\n * Gets or sets the solid color fill as an HTML Color code\r\n */\r\n get: function () {\r\n return this.fillProperty;\r\n },\r\n /**\r\n * Gets or sets the solid color fill as an HTML Color code\r\n */\r\n set: function (fill) {\r\n this.fillProperty = fill;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.FILL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SolidColorBrushPalette.prototype.getTexture = function (size) {\r\n Guard_1.Guard.notNull(size, \"size\");\r\n Guard_1.Guard.isTrue(size.width > 0, \"size.width must be greater than 0\");\r\n Guard_1.Guard.isTrue(size.height > 0, \"size.height must be greater than 0\");\r\n if (app_1.IS_TEST_ENV) {\r\n return undefined;\r\n }\r\n var color = (0, parseColor_1.parseColorToUIntArgb)(this.fill);\r\n if (isNaN(color)) {\r\n throw Error(\"SolidColorBrushPalette.fill \".concat(this.fill, \" cannot be converted to an ABGR color\"));\r\n }\r\n var canvasTexture = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, size.width, size.height);\r\n canvasTexture.clear();\r\n var ctx = canvasTexture.getContext();\r\n ctx.fillStyle = this.fill;\r\n ctx.fillRect(0, 0, size.width, size.height);\r\n canvasTexture.copyTexture();\r\n return canvasTexture;\r\n };\r\n return SolidColorBrushPalette;\r\n}(MeshColorPalette_1.MeshColorPalette));\r\nexports.SolidColorBrushPalette = SolidColorBrushPalette;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SurfaceMeshRenderableSeries3D = exports.EMeshResolution = exports.EMeshPaletteMode = exports.EDrawMeshAs = void 0;\r\nvar Size_1 = require(\"../../../../types/Size\");\r\nvar SurfaceMeshSceneEntity_1 = require(\"../../Primitives/SurfaceMeshSceneEntity\");\r\nvar BaseRenderableSeries3D_1 = require(\"../BaseRenderableSeries3D\");\r\nvar Constants_1 = require(\"../Constants\");\r\nvar ESeriesType_1 = require(\"../ESeriesType\");\r\n/**\r\n * Enumeration constants which define how a {@link SurfaceMeshRenderableSeries3D | Surface Mesh Plot} is drawn\r\n */\r\nvar EDrawMeshAs;\r\n(function (EDrawMeshAs) {\r\n /**\r\n * Draws the SurfaceMesh as wireframe only\r\n */\r\n EDrawMeshAs[\"WIREFRAME\"] = \"WIREFRAME\";\r\n /**\r\n * Draws the SurfaceMesh as a solid shape with wireframe\r\n */\r\n EDrawMeshAs[\"SOLID_WIREFRAME\"] = \"SOLID_WIREFRAME\";\r\n /**\r\n * Draws the SurfaceMesh as a solid shape with wireframe and contours\r\n */\r\n EDrawMeshAs[\"SOLID_WIREFRAME_WITH_CONTOURS\"] = \"SOLID_WIREFRAME_WITH_CONTOURS\";\r\n /**\r\n * Draws the SurfaceMesh as a solid shape only\r\n */\r\n EDrawMeshAs[\"SOLID_MESH\"] = \"SOLID_MESH\";\r\n /**\r\n * Draws the SurfaceMesh as a solid shape with contours\r\n */\r\n EDrawMeshAs[\"SOLID_WITH_CONTOURS\"] = \"SOLID_WITH_CONTOURS\";\r\n /**\r\n * Draws the SurfaceMesh as contours only\r\n */\r\n EDrawMeshAs[\"CONTOURS\"] = \"CONTOURS\";\r\n})(EDrawMeshAs = exports.EDrawMeshAs || (exports.EDrawMeshAs = {}));\r\n/**\r\n * Enumeration constants which define a {@link SurfaceMeshRenderableSeries3D | Surface Mesh Plot} mesh palette mode\r\n */\r\nvar EMeshPaletteMode;\r\n(function (EMeshPaletteMode) {\r\n /**\r\n * The Height Map is linear interpolated\r\n */\r\n EMeshPaletteMode[\"HEIGHT_MAP_INTERPOLATED\"] = \"HEIGHT_MAP_INTERPOLATED\";\r\n /**\r\n * The Height Map has steps between cells\r\n */\r\n EMeshPaletteMode[\"HEIGHT_MAP_SOLID_CELLS\"] = \"HEIGHT_MAP_SOLID_CELLS\";\r\n /**\r\n * The Height Map is ignored and applied as a texture instead\r\n */\r\n EMeshPaletteMode[\"TEXTURED_SOLID_CELLS\"] = \"TEXTURED_SOLID_CELLS\";\r\n})(EMeshPaletteMode = exports.EMeshPaletteMode || (exports.EMeshPaletteMode = {}));\r\n/**\r\n * Enumeration constants which define a {@link SurfaceMeshRenderableSeries3D | Surface Mesh Plot} mesh resolution\r\n */\r\nvar EMeshResolution;\r\n(function (EMeshResolution) {\r\n /**\r\n * Mesh resolution is 1:1 between data cells and mesh cells\r\n */\r\n EMeshResolution[EMeshResolution[\"MESH_RESOLUTION_X1\"] = 1] = \"MESH_RESOLUTION_X1\";\r\n /**\r\n * Twice the number of mesh cells for each data-cell\r\n */\r\n EMeshResolution[EMeshResolution[\"MESH_RESOLUTION_X2\"] = 2] = \"MESH_RESOLUTION_X2\";\r\n /**\r\n * 4x the number of mesh cells for each data-cell\r\n */\r\n EMeshResolution[EMeshResolution[\"MESH_RESOLUTION_X4\"] = 4] = \"MESH_RESOLUTION_X4\";\r\n})(EMeshResolution = exports.EMeshResolution || (exports.EMeshResolution = {}));\r\n/**\r\n * @summary A JavaScript 3D Surface Mesh or Surface Plot chart type rendering a 2-dimensional array of data as color and height values\r\n * SciChart's High Performance Real-time {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Chart Library}\r\n * @description\r\n * Surface meshes are a 3D representation of 2-dimensional arrays of data, rendered as a height-map with optional colors on the chart.\r\n * The {@link SurfaceMeshRenderableSeries3D} assumes the cells are equal size, and spaced along the X,Z axis according to properties on the\r\n * {@link UniformGridDataSeries3D}.\r\n *\r\n * For a code sample how to initialize a surface mesh, see below\r\n *\r\n * ```ts\r\n * // Create an empty 2D array using the helper function zeroArray2D\r\n * const heightMapArray: number[][] = zeroArray2D([height, width]);\r\n * // todo: fill the zValues 2d array with values\r\n *\r\n * // Create a UniformGridDataSeries3D passing in height values\r\n * const dataSeries = new UniformGridDataSeries3D(wasmContext, {\r\n * yValues: heightmapArray,\r\n * xStep: 1,\r\n * zStep: 1,\r\n * dataSeriesName: \"Uniform Surface Mesh\"\r\n * });\r\n *\r\n * // Create a color map with gradient colors\r\n * const colorMap = new GradientColorPalette(wasmContext, {\r\n * gradientStops: [\r\n * { offset: 1, color: \"#8B0000\" },\r\n * { offset: 0.9, color: \"#FF0000\" },\r\n * { offset: 0.7, color: \"#FF0000\" },\r\n * { offset: 0.5, color: \"#ADFF2F\" },\r\n * { offset: 0.3, color: \"#00FFFF\" },\r\n * { offset: 0.1, color: \"#0000FF\" },\r\n * { offset: 0, color: \"#1D2C6B\" }\r\n * ]\r\n * });\r\n *\r\n * // Create a SurfaceMeshRenderableSeries3D\r\n * const series = new SurfaceMeshRenderableSeries3D(wasmContext, {\r\n * dataSeries,\r\n * minimum: 0,\r\n * maximum: 0.5,\r\n * opacity: 0.9,\r\n * cellHardnessFactor: 1.0,\r\n * shininess: 0,\r\n * lightingFactor: 0.8,\r\n * highlight: 1.0,\r\n * stroke: \"rgba(24,139,34,0.5)\",\r\n * strokeThickness: 2.0,\r\n * contourStroke: \"rgba(24,139,34,0.5)\",\r\n * contourInterval: 2,\r\n * contourOffset: 0,\r\n * contourStrokeThickness: 2,\r\n * drawSkirt: false,\r\n * drawMeshAs: EDrawMeshAs.SOLID_WIREFRAME,\r\n * meshColorPalette: colorMap,\r\n * isVisible: true\r\n * });\r\n *\r\n * // Add the Surface Mesh to the chart\r\n * sciChart3DSurface.renderableSeries.add(series);\r\n * ```\r\n */\r\nvar SurfaceMeshRenderableSeries3D = /** @class */ (function (_super) {\r\n __extends(SurfaceMeshRenderableSeries3D, _super);\r\n /**\r\n * Creates an instance of a {@link SurfaceMeshRenderableSeries3D}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context}\r\n * containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options\r\n */\r\n function SurfaceMeshRenderableSeries3D(webAssemblyContext, options) {\r\n var _this = _super.call(this, webAssemblyContext, options) || this;\r\n _this.drawMeshAsProperty = (options === null || options === void 0 ? void 0 : options.drawMeshAs) || EDrawMeshAs.SOLID_WIREFRAME;\r\n _this.strokeThicknessProperty = (options === null || options === void 0 ? void 0 : options.strokeThickness) !== undefined ? options === null || options === void 0 ? void 0 : options.strokeThickness : 1;\r\n _this.drawSkirtProperty = (options === null || options === void 0 ? void 0 : options.drawSkirt) !== undefined ? options === null || options === void 0 ? void 0 : options.drawSkirt : true;\r\n _this.meshColorPaletteProperty = options === null || options === void 0 ? void 0 : options.meshColorPalette;\r\n _this.minimumProperty = (options === null || options === void 0 ? void 0 : options.minimum) !== undefined ? options === null || options === void 0 ? void 0 : options.minimum : 0;\r\n _this.maximumProperty = (options === null || options === void 0 ? void 0 : options.maximum) !== undefined ? options === null || options === void 0 ? void 0 : options.maximum : 1;\r\n _this.meshPaletteModeProperty = (options === null || options === void 0 ? void 0 : options.meshPaletteMode) || EMeshPaletteMode.HEIGHT_MAP_INTERPOLATED;\r\n _this.colorMapTextureSizeProperty = (options === null || options === void 0 ? void 0 : options.colorMapTextureSize) || new Size_1.Size(1024, 1);\r\n _this.heightScaleFactorProperty = (options === null || options === void 0 ? void 0 : options.heightScaleFactor) !== undefined ? options === null || options === void 0 ? void 0 : options.heightScaleFactor : 1;\r\n _this.meshResolutionProperty = (options === null || options === void 0 ? void 0 : options.meshResolution) || EMeshResolution.MESH_RESOLUTION_X1;\r\n _this.yOffsetProperty = (options === null || options === void 0 ? void 0 : options.yOffset) !== undefined ? options === null || options === void 0 ? void 0 : options.yOffset : 0;\r\n _this.cellHardnessFactorProperty = (options === null || options === void 0 ? void 0 : options.cellHardnessFactor) !== undefined ? options === null || options === void 0 ? void 0 : options.cellHardnessFactor : 1;\r\n _this.lightingFactorProperty = (options === null || options === void 0 ? void 0 : options.lightingFactor) !== undefined ? options === null || options === void 0 ? void 0 : options.lightingFactor : 0.8;\r\n _this.contourStrokeThicknessProperty =\r\n (options === null || options === void 0 ? void 0 : options.contourStrokeThickness) !== undefined ? options === null || options === void 0 ? void 0 : options.contourStrokeThickness : 2;\r\n _this.contourIntervalProperty = (options === null || options === void 0 ? void 0 : options.contourInterval) !== undefined ? options === null || options === void 0 ? void 0 : options.contourInterval : 20.0;\r\n _this.contourOffsetProperty = (options === null || options === void 0 ? void 0 : options.contourOffset) !== undefined ? options.contourOffset : 0.1;\r\n _this.contourStrokeProperty = (options === null || options === void 0 ? void 0 : options.contourStroke) || \"#FFFFFF\";\r\n _this.highlightProperty = (options === null || options === void 0 ? void 0 : options.highlight) !== undefined ? options === null || options === void 0 ? void 0 : options.highlight : 0.05;\r\n _this.setSceneEntity(new SurfaceMeshSceneEntity_1.SurfaceMeshSceneEntity(webAssemblyContext, _this));\r\n return _this;\r\n }\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"type\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return ESeriesType_1.ESeriesType3D.SurfaceMeshRenderableSeries3D;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"colorMapTextureSize\", {\r\n /**\r\n * Gets or sets the Colormap texture size.\r\n * @remarks This defaults to [1024,1] and simply sets the resolution of color mapping. Leave default in normal operation\r\n */\r\n get: function () {\r\n return this.colorMapTextureSizeProperty;\r\n },\r\n /**\r\n * Gets or sets the Colormap texture size.\r\n * @remarks This defaults to [1024,1] and simply sets the resolution of color mapping. Leave default in normal operation\r\n */\r\n set: function (colorMapTextureSize) {\r\n this.colorMapTextureSizeProperty = colorMapTextureSize;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.COLOR_MAP_TEXTURE_SIZE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"drawMeshAs\", {\r\n /**\r\n * Gets or sets the {@link EDrawMeshAs}, whether the mesh is drawn as wireframe, solid, with or without contours etc...\r\n * @remarks Default value is SOLID_WIREFRAME. For contours, choose SOLID_WITH_CONTOURS\r\n */\r\n get: function () {\r\n return this.drawMeshAsProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link EDrawMeshAs}, whether the mesh is drawn as wireframe, solid, with or without contours etc...\r\n * @remarks Default value is SOLID_WIREFRAME. For contours, choose SOLID_WITH_CONTOURS\r\n */\r\n set: function (drawMeshAs) {\r\n this.drawMeshAsProperty = drawMeshAs;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.DRAW_MESH_AS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"strokeThickness\", {\r\n /**\r\n * Gets or sets the stroke thickness of mesh wireframe lines on the {@link SurfaceMeshRenderableSeries3D}\r\n */\r\n get: function () {\r\n return this.strokeThicknessProperty;\r\n },\r\n /**\r\n * Gets or sets the stroke thickness of mesh wireframe lines on the {@link SurfaceMeshRenderableSeries3D}\r\n */\r\n set: function (strokeThickness) {\r\n this.strokeThicknessProperty = strokeThickness;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.STROKE_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"drawSkirt\", {\r\n /**\r\n * When true, draws a skirt from the edge of the mesh to zero (solid walls on the left, right, top, bottom side)\r\n */\r\n get: function () {\r\n return this.drawSkirtProperty;\r\n },\r\n /**\r\n * When true, draws a skirt from the edge of the mesh to zero (solid walls on the left, right, top, bottom side)\r\n */\r\n set: function (drawSkirt) {\r\n this.drawSkirtProperty = drawSkirt;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.DRAW_SKIRT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"meshColorPalette\", {\r\n /**\r\n * Gets or sets the {@link MeshColorPalette}, which defines how values in the {@link SurfaceMeshRenderableSeries3D.dataSeries} map to colours\r\n * @remarks See concrete types {@link SolidColorBrushPalette} and {@link GradientColorPalette} plus our examples for more information.\r\n */\r\n get: function () {\r\n return this.meshColorPaletteProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link MeshColorPalette}, which defines how values in the {@link SurfaceMeshRenderableSeries3D.dataSeries} map to colours\r\n * @remarks See concrete types {@link SolidColorBrushPalette} and {@link GradientColorPalette} plus our examples for more information.\r\n */\r\n set: function (meshColorPalette) {\r\n this.meshColorPaletteProperty = meshColorPalette;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.MESH_COLOR_PALETTE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"minimum\", {\r\n /**\r\n * Gets or sets the minimum value in the {@link SurfaceMeshRenderableSeries3D.dataSeries} that we want to map to colours in the\r\n * {@link SurfaceMeshRenderableSeries3D.meshColorPalette}\r\n * @remarks For example, if data contains values 0..100, and the meshColorPalette is a {@link GradientColorPalette} from red to blue, and you want\r\n * 0=red and blue=100 then you should set {@link SurfaceMeshRenderableSeries3D.minimum} = 0 and {@link SurfaceMeshRenderableSeries3D.maximum} = 1\r\n */\r\n get: function () {\r\n return this.minimumProperty;\r\n },\r\n /**\r\n * Gets or sets the minimum value in the {@link SurfaceMeshRenderableSeries3D.dataSeries} that we want to map to colours in the\r\n * {@link SurfaceMeshRenderableSeries3D.meshColorPalette}\r\n * @remarks For example, if data contains values 0..100, and the meshColorPalette is a {@link GradientColorPalette} from red to blue, and you want\r\n * 0=red and blue=100 then you should set {@link SurfaceMeshRenderableSeries3D.minimum} = 0 and {@link SurfaceMeshRenderableSeries3D.maximum} = 1\r\n */\r\n set: function (minimum) {\r\n this.minimumProperty = minimum;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.MINIMUM);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"maximum\", {\r\n /**\r\n * Gets or sets the maximum value in the {@link SurfaceMeshRenderableSeries3D.dataSeries} that we want to map to colours in the\r\n * {@link SurfaceMeshRenderableSeries3D.meshColorPalette}\r\n * @remarks For example, if data contains values 0..100, and the meshColorPalette is a {@link GradientColorPalette} from red to blue, and you want\r\n * 0=red and blue=100 then you should set {@link SurfaceMeshRenderableSeries3D.minimum} = 0 and {@link SurfaceMeshRenderableSeries3D.maximum} = 1\r\n */\r\n get: function () {\r\n return this.maximumProperty;\r\n },\r\n /**\r\n * Gets or sets the maximum value in the {@link SurfaceMeshRenderableSeries3D.dataSeries} that we want to map to colours in the\r\n * {@link SurfaceMeshRenderableSeries3D.meshColorPalette}\r\n * @remarks For example, if data contains values 0..100, and the meshColorPalette is a {@link GradientColorPalette} from red to blue, and you want\r\n * 0=red and blue=100 then you should set {@link SurfaceMeshRenderableSeries3D.minimum} = 0 and {@link SurfaceMeshRenderableSeries3D.maximum} = 1\r\n */\r\n set: function (maximum) {\r\n this.maximumProperty = maximum;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.MAXIMUM);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"meshPaletteMode\", {\r\n /**\r\n * Gets or sets the {@link EMeshPaletteMode}, which defines how heightmaps are treated.\r\n * @remarks Defaults to HEIGHT_MAP_INTERPOLATED\r\n */\r\n get: function () {\r\n return this.meshPaletteModeProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link EMeshPaletteMode}, which defines how heightmaps are treated.\r\n * @remarks Defaults to HEIGHT_MAP_INTERPOLATED\r\n */\r\n set: function (meshPaletteMode) {\r\n this.meshPaletteModeProperty = meshPaletteMode;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.MESH_PALETTE_MODE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"heightScaleFactor\", {\r\n /**\r\n * Gets or sets the height scale factor for the {@link SurfaceMeshRenderableSeries3D}.\r\n * @remarks Default value is 1. A height scale factor of 0 makes the mesh flat, and 0.5 means all heights are multiplied by 0.5 etc...\r\n */\r\n get: function () {\r\n return this.heightScaleFactorProperty;\r\n },\r\n /**\r\n * Gets or sets the height scale factor for the {@link SurfaceMeshRenderableSeries3D}.\r\n * @remarks Default value is 1. A height scale factor of 0 makes the mesh flat, and 0.5 means all heights are multiplied by 0.5 etc...\r\n */\r\n set: function (heightScaleFactor) {\r\n this.heightScaleFactorProperty = heightScaleFactor;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.HEIGHT_SCALE_FACTOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"meshResolution\", {\r\n /**\r\n * Gets or sets the {@link EMeshResolution}, the amount of oversampling when creating a mesh.\r\n * @remarks Defaults to 1x.\r\n */\r\n get: function () {\r\n return this.meshResolutionProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link EMeshResolution}, the amount of oversampling when creating a mesh.\r\n * @remarks Defaults to 1x.\r\n */\r\n set: function (meshResolution) {\r\n this.meshResolutionProperty = meshResolution;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.MESH_RESOLUTION);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"yOffset\", {\r\n /**\r\n * Gets or sets a Y-offset or height-offset in world coordinates.\r\n * @remarks Defaults to 0. When setting to a value such as 10, the entire {@link SurfaceMeshRenderableSeries3D} will be offset to height=10\r\n */\r\n get: function () {\r\n return this.yOffsetProperty;\r\n },\r\n /**\r\n * Gets or sets a Y-offset or height-offset in world coordinates.\r\n * @remarks Defaults to 0. When setting to a value such as 10, the entire {@link SurfaceMeshRenderableSeries3D} will be offset to height=10\r\n */\r\n set: function (yOffset) {\r\n this.yOffsetProperty = yOffset;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.Y_OFFSET);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"cellHardnessFactor\", {\r\n /**\r\n * Gets or sets the cell hardness factor, a number used to calculate lighting effects.\r\n * @remarks Defaults to 1\r\n */\r\n get: function () {\r\n return this.cellHardnessFactorProperty;\r\n },\r\n /**\r\n * Gets or sets the cell hardness factor, a number used to calculate lighting effects.\r\n * @remarks Defaults to 1\r\n */\r\n set: function (cellHardnessFactor) {\r\n this.cellHardnessFactorProperty = cellHardnessFactor;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CELL_HARDNESS_FACTOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"lightingFactor\", {\r\n /**\r\n * Gets or sets the lighting factor, a number used to calculate lighting effects.\r\n * @remarks Defaults to 0.8\r\n */\r\n get: function () {\r\n return this.lightingFactorProperty;\r\n },\r\n /**\r\n * Gets or sets the lighting factor, a number used to calculate lighting effects.\r\n * @remarks Defaults to 0.8\r\n */\r\n set: function (lightingFactor) {\r\n this.lightingFactorProperty = lightingFactor;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.LIGHTING_FACTOR);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"contourStrokeThickness\", {\r\n /**\r\n * Gets or sets the stroke thickness of contour lines on the {@link SurfaceMeshRenderableSeries3D}\r\n */\r\n get: function () {\r\n return this.contourStrokeThicknessProperty;\r\n },\r\n /**\r\n * Gets or sets the stroke thickness of contour lines on the {@link SurfaceMeshRenderableSeries3D}\r\n */\r\n set: function (contourStrokeThickness) {\r\n this.contourStrokeThicknessProperty = contourStrokeThickness;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CONTOUR_STROKE_THICKNESS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"contourInterval\", {\r\n /**\r\n * Gets or sets the contour interval, a value for the spacing between contour lines.\r\n * @description For example, if you have data in the {@link SurfaceMeshRenderableSeries3D.dataSeries} ranging from 0-100.0, and you\r\n * want to display contour lines every 1/10th then set {@link SurfaceMeshRenderableSeries3D.contourInterval} = 10\r\n * @remarks Defaults to 20, but must be set according to your data in the {@link SurfaceMeshRenderableSeries3D.dataSeries}\r\n */\r\n get: function () {\r\n return this.contourIntervalProperty;\r\n },\r\n /**\r\n * Gets or sets the contour interval, a value for the spacing between contour lines.\r\n * @description For example, if you have data in the {@link SurfaceMeshRenderableSeries3D.dataSeries} ranging from 0-100.0, and you\r\n * want to display contour lines every 1/10th then set {@link SurfaceMeshRenderableSeries3D.contourInterval} = 10\r\n * @remarks Defaults to 20, but must be set according to your data in the {@link SurfaceMeshRenderableSeries3D.dataSeries}\r\n */\r\n set: function (contourInterval) {\r\n this.contourIntervalProperty = contourInterval;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CONTOUR_INTERVAL);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"contourOffset\", {\r\n /**\r\n * Gets or sets the contour offset, a value for the offsetting contour lines\r\n * @description For example, if you have data in the {@link SurfaceMeshRenderableSeries3D.dataSeries} ranging from 0-100.0, and you\r\n * want to display the first contour line at value = 5, then set {@link SurfaceMeshRenderableSeries3D.contourOffset} = 5\r\n * @remarks Defaults to 0.1, but must be set according to your data in the {@link SurfaceMeshRenderableSeries3D.dataSeries}\r\n */\r\n get: function () {\r\n return this.contourOffsetProperty;\r\n },\r\n /**\r\n * Gets or sets the contour offset, a value for the offsetting contour lines\r\n * @description For example, if you have data in the {@link SurfaceMeshRenderableSeries3D.dataSeries} ranging from 0-100.0, and you\r\n * want to display the first contour line at value = 5, then set {@link SurfaceMeshRenderableSeries3D.contourOffset} = 5\r\n * @remarks Defaults to 0.1, but must be set according to your data in the {@link SurfaceMeshRenderableSeries3D.dataSeries}\r\n */\r\n set: function (contourOffset) {\r\n this.contourOffsetProperty = contourOffset;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CONTOUR_OFFSET);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"contourStroke\", {\r\n /**\r\n * Gets or sets the contour stroke as an HTML Color Code\r\n */\r\n get: function () {\r\n return this.contourStrokeProperty;\r\n },\r\n /**\r\n * Gets or sets the contour stroke as an HTML Color Code\r\n */\r\n set: function (contourStroke) {\r\n this.contourStrokeProperty = contourStroke;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.CONTOUR_STROKE);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SurfaceMeshRenderableSeries3D.prototype, \"highlight\", {\r\n /**\r\n * Gets or sets the highlight factor, a number used to calculate lighting effects.\r\n * @remarks Defaults to 0.05\r\n */\r\n get: function () {\r\n return this.highlightProperty;\r\n },\r\n /**\r\n * Gets or sets the highlight factor, a number used to calculate lighting effects.\r\n * @remarks Defaults to 0.05\r\n */\r\n set: function (highlight) {\r\n this.highlightProperty = highlight;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.HIGHLIGHT);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return SurfaceMeshRenderableSeries3D;\r\n}(BaseRenderableSeries3D_1.BaseRenderableSeries3D));\r\nexports.SurfaceMeshRenderableSeries3D = SurfaceMeshRenderableSeries3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SurfaceMeshSeriesInfo3D = void 0;\r\nvar pointUtil_1 = require(\"../../../utils/pointUtil\");\r\nvar BaseDataSeries3D_1 = require(\"../../Model/DataSeries/BaseDataSeries3D\");\r\nvar Vector3_1 = require(\"../../Vector3\");\r\nvar SeriesInfo3D_1 = require(\"./SeriesInfo3D\");\r\nvar SurfaceMeshSeriesInfo3D = /** @class */ (function (_super) {\r\n __extends(SurfaceMeshSeriesInfo3D, _super);\r\n function SurfaceMeshSeriesInfo3D(series, hitTestInfo) {\r\n var _this = _super.call(this, series, hitTestInfo) || this;\r\n _this.dataSeriesType = BaseDataSeries3D_1.EDataSeriesType3D.UniformGrid3D;\r\n _this.enrichSeriesInfo();\r\n return _this;\r\n }\r\n SurfaceMeshSeriesInfo3D.prototype.enrichSeriesInfo = function () {\r\n // We know the cell that was hit. We need to get the four corners of the cell in\r\n // data space. Then convert to world space. Then convert to screen space\r\n // Using this, figure out which corner the pointer was closest to and report that\r\n // as the hit-test value\r\n if (!this.isHit || !this.renderableSeries) {\r\n // console.log(`not a hit apparently`);\r\n return;\r\n }\r\n var ds = this.renderableSeries.dataSeries;\r\n if (!ds)\r\n return;\r\n // Get the x0z0 index of the cell that was hit\r\n var x0z0 = { x: this.hitTestInfo.selectionIjIndices.x, z: this.hitTestInfo.selectionIjIndices.y };\r\n // Convert x0z0 and four corners of quad-hit to data-values\r\n // nomenclature: d (data values at), x0 (x index + 0), z0 (z index + 0)\r\n var dx0z0 = { x: ds.getX(x0z0.x), y: ds.getYValue(x0z0.z, x0z0.x), z: ds.getZ(x0z0.z) };\r\n var dx1z0 = { x: ds.getX(x0z0.x + 1), y: ds.getYValue(x0z0.z, x0z0.x + 1), z: ds.getZ(x0z0.z) };\r\n var dx0z1 = { x: ds.getX(x0z0.x), y: ds.getYValue(x0z0.z + 1, x0z0.x), z: ds.getZ(x0z0.z + 1) };\r\n var dx1z1 = { x: ds.getX(x0z0.x + 1), y: ds.getYValue(x0z0.z + 1, x0z0.x + 1), z: ds.getZ(x0z0.z + 1) };\r\n var scs = this.renderableSeries.parentSurface;\r\n if (!scs || !scs.xAxis || !scs.yAxis || !scs.zAxis)\r\n return;\r\n var xCalc = scs.xAxis.getCurrentCoordinateCalculator();\r\n var yCalc = scs.yAxis.getCurrentCoordinateCalculator();\r\n var zCalc = scs.zAxis.getCurrentCoordinateCalculator();\r\n // convert data-values to world coordinates\r\n // nomenclature: w (world coord at), x0 (x index + 0), y, z0 (z index + 0)\r\n var wx0z0 = new Vector3_1.Vector3(xCalc.getCoordinate(dx0z0.x), yCalc.getCoordinate(dx0z0.y), zCalc.getCoordinate(dx0z0.z));\r\n var wx1z0 = new Vector3_1.Vector3(xCalc.getCoordinate(dx1z0.x), yCalc.getCoordinate(dx1z0.y), zCalc.getCoordinate(dx1z0.z));\r\n var wx0z1 = new Vector3_1.Vector3(xCalc.getCoordinate(dx0z1.x), yCalc.getCoordinate(dx0z1.y), zCalc.getCoordinate(dx0z1.z));\r\n var wx1z1 = new Vector3_1.Vector3(xCalc.getCoordinate(dx1z1.x), yCalc.getCoordinate(dx1z1.y), zCalc.getCoordinate(dx1z1.z));\r\n // Transform all to screen space\r\n // nomenclature: s (screenspace 2d coordinate) for data at x0 (x index + 0), z0 (z index + 0)\r\n var sx0z0 = scs.worldToScreenCoord(wx0z0);\r\n var sx1z0 = scs.worldToScreenCoord(wx1z0);\r\n var sx0z1 = scs.worldToScreenCoord(wx0z1);\r\n var sx1z1 = scs.worldToScreenCoord(wx1z1);\r\n // calculate euclidean distance from hit-test point to each corner in screen space\r\n var x0z0distance = (0, pointUtil_1.calcDistance)(sx0z0.x, sx0z0.y, this.hitTestInfo.hitTestPoint.x, this.hitTestInfo.hitTestPoint.y);\r\n var x1z0distance = (0, pointUtil_1.calcDistance)(sx1z0.x, sx1z0.y, this.hitTestInfo.hitTestPoint.x, this.hitTestInfo.hitTestPoint.y);\r\n var x0z1distance = (0, pointUtil_1.calcDistance)(sx0z1.x, sx0z1.y, this.hitTestInfo.hitTestPoint.x, this.hitTestInfo.hitTestPoint.y);\r\n var x1z1distance = (0, pointUtil_1.calcDistance)(sx1z1.x, sx1z1.y, this.hitTestInfo.hitTestPoint.x, this.hitTestInfo.hitTestPoint.y);\r\n var xOffset = scs.worldDimensions.x * 0.5;\r\n var zOffset = scs.worldDimensions.z * 0.5;\r\n var minDistance = Math.min(x0z0distance, x1z0distance, x0z1distance, x1z1distance);\r\n if (minDistance === x0z0distance) {\r\n this.xIndex = x0z0.x;\r\n this.zIndex = x0z0.z;\r\n this.xValue = dx0z0.x;\r\n this.yValue = dx0z0.y;\r\n this.zValue = dx0z0.z;\r\n this.hitWorldCoords = new Vector3_1.Vector3(wx0z0.x - xOffset, wx0z0.y, wx0z0.z - zOffset);\r\n }\r\n if (minDistance === x0z1distance) {\r\n this.xIndex = x0z0.x;\r\n this.zIndex = x0z0.z + 1;\r\n this.xValue = dx0z1.x;\r\n this.yValue = dx0z1.y;\r\n this.zValue = dx0z1.z;\r\n this.hitWorldCoords = new Vector3_1.Vector3(wx0z1.x - xOffset, wx0z1.y, wx0z1.z - zOffset);\r\n }\r\n if (minDistance === x1z0distance) {\r\n this.xIndex = x0z0.x + 1;\r\n this.zIndex = x0z0.z;\r\n this.xValue = dx1z0.x;\r\n this.yValue = dx1z0.y;\r\n this.zValue = dx1z0.z;\r\n this.hitWorldCoords = new Vector3_1.Vector3(wx1z0.x - xOffset, wx1z0.y, wx1z0.z - zOffset);\r\n }\r\n if (minDistance === x1z1distance) {\r\n this.xIndex = x0z0.x + 1;\r\n this.zIndex = x0z0.z + 1;\r\n this.xValue = dx1z1.x;\r\n this.yValue = dx1z1.y;\r\n this.zValue = dx1z1.z;\r\n this.hitWorldCoords = new Vector3_1.Vector3(wx1z1.x - xOffset, wx1z1.y, wx1z1.z - zOffset);\r\n }\r\n };\r\n return SurfaceMeshSeriesInfo3D;\r\n}(SeriesInfo3D_1.SeriesInfo3D));\r\nexports.SurfaceMeshSeriesInfo3D = SurfaceMeshSeriesInfo3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XyzSeriesInfo3D = void 0;\r\nvar BaseDataSeries3D_1 = require(\"../../Model/DataSeries/BaseDataSeries3D\");\r\nvar Vector3_1 = require(\"../../Vector3\");\r\nvar SeriesInfo3D_1 = require(\"./SeriesInfo3D\");\r\n/**\r\n * XyzSeriesInfo3D is a data-structure which provides enriched information about a hit-test operation on an XYZ series in SciChart 3D.\r\n * It's derived by calling {@link BaseRenderableSeries3D.hitTest}.\r\n */\r\nvar XyzSeriesInfo3D = /** @class */ (function (_super) {\r\n __extends(XyzSeriesInfo3D, _super);\r\n function XyzSeriesInfo3D(series, hitTestInfo) {\r\n var _this = _super.call(this, series, hitTestInfo) || this;\r\n _this.dataSeriesType = BaseDataSeries3D_1.EDataSeriesType3D.Xyz3D;\r\n _this.enrichSeriesInfo();\r\n return _this;\r\n }\r\n XyzSeriesInfo3D.prototype.enrichSeriesInfo = function () {\r\n if (!this.isHit || !this.renderableSeries)\r\n return;\r\n this.dataSeriesIndex = this.hitTestInfo.selectionIndex - 1;\r\n var xyzDataSeries = this.renderableSeries.dataSeries;\r\n if (xyzDataSeries) {\r\n this.xValue = xyzDataSeries.getNativeXValues().get(this.dataSeriesIndex);\r\n this.yValue = xyzDataSeries.getNativeYValues().get(this.dataSeriesIndex);\r\n this.zValue = xyzDataSeries.getNativeZValues().get(this.dataSeriesIndex);\r\n var metadatas = xyzDataSeries.getMetadataValues();\r\n if (metadatas && metadatas.length > this.dataSeriesIndex) {\r\n this.pointMetadata = metadatas[this.dataSeriesIndex];\r\n }\r\n var scs = this.renderableSeries.parentSurface;\r\n if (scs) {\r\n var xOffset = scs.worldDimensions.x * 0.5;\r\n var zOffset = scs.worldDimensions.z * 0.5;\r\n var x = scs.xAxis.getCurrentCoordinateCalculator().getCoordinate(this.xValue) - xOffset;\r\n var y = scs.yAxis.getCurrentCoordinateCalculator().getCoordinate(this.yValue);\r\n var z = scs.zAxis.getCurrentCoordinateCalculator().getCoordinate(this.zValue) - zOffset;\r\n this.hitWorldCoords = new Vector3_1.Vector3(x, y, z);\r\n }\r\n }\r\n };\r\n return XyzSeriesInfo3D;\r\n}(SeriesInfo3D_1.SeriesInfo3D));\r\nexports.XyzSeriesInfo3D = XyzSeriesInfo3D;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RootSceneEntity = void 0;\r\nvar SceneEntityType_1 = require(\"../../types/SceneEntityType\");\r\nvar BaseSceneEntity3D_1 = require(\"./Primitives/BaseSceneEntity3D\");\r\nvar EntityIdProvider_1 = require(\"./Primitives/EntityIdProvider\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\n/**\r\n * @summary Defines a special {@link BaseSceneEntity3D} type which is the root of the entire scene in\r\n * in SciChart's High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Charts}\r\n * @remarks\r\n * Add and remove entities to the scene using the property {@link SciChart3DSurface.rootEntity} and calling\r\n * {@link RootSceneEntity.children | SceneEntity.children.add}.\r\n *\r\n * When a {@link BaseRenderableSeries3D} is added to {@link SciChart3DSurface.renderableSeries}, it's entity is automatically added to the scene.\r\n */\r\nvar RootSceneEntity = /** @class */ (function (_super) {\r\n __extends(RootSceneEntity, _super);\r\n /**\r\n * Creates an instance of the {@link RootSceneEntity}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n */\r\n function RootSceneEntity(webAssemblyContext, parentSurface) {\r\n var _this = _super.call(this, webAssemblyContext) || this;\r\n /**\r\n * @inheritDoc\r\n */\r\n _this.type = SceneEntityType_1.ESceneEntityType.RootSceneEntity;\r\n Guard_1.Guard.notNull(parentSurface, \"parentSurface\");\r\n _this.parentSurface = parentSurface;\r\n _this.entityIdProvider = new EntityIdProvider_1.DefaultEntityIdProvider();\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n RootSceneEntity.prototype.attachChild = function (childEntity) {\r\n var parentEntity = this;\r\n if (childEntity === null || childEntity === void 0 ? void 0 : childEntity.nativeEntity) {\r\n this.world.AddEntity(childEntity.nativeEntity);\r\n }\r\n childEntity.entityIdProvider = this.entityIdProvider;\r\n childEntity.parent = parentEntity;\r\n childEntity.onAttached();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n RootSceneEntity.prototype.detachChild = function (childEntity) {\r\n if (childEntity === null || childEntity === void 0 ? void 0 : childEntity.nativeEntity) {\r\n this.world.RemoveEntity(childEntity.nativeEntity);\r\n }\r\n childEntity.onDetached();\r\n childEntity.parent = undefined;\r\n };\r\n return RootSceneEntity;\r\n}(BaseSceneEntity3D_1.BaseSceneEntity3D));\r\nexports.RootSceneEntity = RootSceneEntity;\r\n","\"use strict\";\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChart3DRenderer = void 0;\r\nvar IAnnotation_1 = require(\"../../Charting/Visuals/Annotations/IAnnotation\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar AutoRange_1 = require(\"../../types/AutoRange\");\r\nvar WatermarkPosition_1 = require(\"../../types/WatermarkPosition\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\nvar AxisCubeDescriptor_1 = require(\"./Primitives/AxisCubeDescriptor\");\r\nvar RenderPassInfo3D_1 = require(\"./Primitives/RenderPassInfo3D\");\r\nvar SceneDescriptor_1 = require(\"./Primitives/SceneDescriptor\");\r\n/**\r\n * A class used internally in SciChart to perform layout, arrangement, data-preparation and rendering on the Cartesian 3D {@link SciChart3DSurface}\r\n */\r\nvar SciChart3DRenderer = /** @class */ (function () {\r\n function SciChart3DRenderer(scs, wasmContext) {\r\n this.isInvalidated = false;\r\n Guard_1.Guard.notNull(scs, \"scs\");\r\n this.scs = scs;\r\n this.wasmContext = wasmContext;\r\n }\r\n /**\r\n * get the {@link SceneDescriptor} to define the look & styling of the scene in the current render pass\r\n * @param scs the {@link SciChart3DSurface} we are drawing\r\n */\r\n SciChart3DRenderer.getSceneDescriptor = function (scs) {\r\n var _a, _b, _c;\r\n // Collect info from axis and scene how to draw / what to draw\r\n var scene = new SceneDescriptor_1.SceneDescriptor();\r\n scene.axisCubeDescriptor = new AxisCubeDescriptor_1.AxisCubeDescriptor();\r\n scene.axisCubeDescriptor.dimensions = scs.worldDimensions;\r\n scene.axisCubeDescriptor.isVisible = true;\r\n scene.axisCubeDescriptor.xAxisDescriptor = (_a = scs.xAxis) === null || _a === void 0 ? void 0 : _a.toAxisDescriptor();\r\n scene.axisCubeDescriptor.yAxisDescriptor = (_b = scs.yAxis) === null || _b === void 0 ? void 0 : _b.toAxisDescriptor();\r\n scene.axisCubeDescriptor.zAxisDescriptor = (_c = scs.zAxis) === null || _c === void 0 ? void 0 : _c.toAxisDescriptor();\r\n return scene;\r\n };\r\n /**\r\n * Prepares render data and returns a {@link RenderPassInfo3D} for the current render pass\r\n * @param scs the {@link SciChart3DSurface} we are drawing\r\n */\r\n SciChart3DRenderer.prepareRenderData = function (scs) {\r\n var rpd = new RenderPassInfo3D_1.RenderPassInfo3D();\r\n rpd.xCalc = scs.xAxis.getCurrentCoordinateCalculator();\r\n rpd.yCalc = scs.yAxis.getCurrentCoordinateCalculator();\r\n rpd.zCalc = scs.zAxis.getCurrentCoordinateCalculator();\r\n rpd.worldDimensions = scs.worldDimensions;\r\n rpd.sceneDescriptor = SciChart3DRenderer.getSceneDescriptor(scs);\r\n return rpd;\r\n };\r\n /**\r\n * Performs autorange on the {@link AxisBase3D} depending on flags such as {@link AxisBase3D.autoRange}\r\n * @param axis The {@link AxisBase3D} we are auto-ranging\r\n * @param scs the {@link SciChart3DSurface} we are drawing\r\n */\r\n SciChart3DRenderer.tryPerformAutoRangeOn = function (axis, scs) {\r\n var shouldAutoRange = ((!axis.hasValidVisibleRange() || axis.hasDefaultVisibleRange()) && axis.autoRange === AutoRange_1.EAutoRange.Once) ||\r\n axis.autoRange === AutoRange_1.EAutoRange.Always;\r\n if (shouldAutoRange) {\r\n var newRange = scs.viewportManager.calculateAutoRange(axis);\r\n if (newRange && !(newRange === axis.visibleRange) && axis.isValidRange(newRange)) {\r\n axis.visibleRange = newRange;\r\n }\r\n }\r\n };\r\n /**\r\n * The main render loop\r\n */\r\n SciChart3DRenderer.prototype.render = function () {\r\n var _a;\r\n if (this.scs.isDeleted || !this.scs.isInitialized) {\r\n return;\r\n }\r\n // Step 1: Sanity checks\r\n if (!this.isSurfaceValid(this.scs)) {\r\n throw Error(\"SciChart3DSurface is not valid\");\r\n }\r\n var mark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.RenderStart, { contextId: this.scs.id });\r\n this.isInvalidated = false;\r\n // Enable/disable hit test as required.\r\n this.scs.webAssemblyContext3D.SCRTSetIsSelectionBufferEnabled(this.scs.isHitTestEnabled);\r\n // Step 1: Update the current active SceneWorld and camera\r\n var sceneWorld = this.scs.getSceneWorld();\r\n if (!sceneWorld) {\r\n console.warn(\"SciChart3DRenderer: Undefined scene world!\");\r\n return;\r\n }\r\n this.scs.preRender.raiseEvent();\r\n this.wasmContext.SCRTSetActiveWorld(sceneWorld);\r\n this.updateWorldDimensions(sceneWorld, this.scs.worldDimensions);\r\n var tsrCamera = sceneWorld.GetMainCamera();\r\n var typescriptCamera = this.scs.camera;\r\n typescriptCamera.updateEngineCamera(tsrCamera);\r\n var _b = this.scs.viewportManager, width = _b.width, height = _b.height;\r\n var viewRect = new Rect_1.Rect(0, 0, width, height);\r\n this.scs.setSeriesViewRect(viewRect);\r\n // Animation Step\r\n var timeElapsed = this.previousTime ? Date.now() - this.previousTime : undefined;\r\n this.previousTime = Date.now();\r\n this.scs.onAnimate(timeElapsed);\r\n // Step 2: Update background of the chart\r\n this.scs.updateBackground();\r\n // Step 3: Prepare the Axes\r\n this.prepareAxes(this.scs.xAxis, this.scs.yAxis, this.scs.zAxis);\r\n // Step 4: Prepare the RenderPassData\r\n var rpd = SciChart3DRenderer.prepareRenderData(this.scs);\r\n // Step 5: Prepare the Axis Cube\r\n // Viewport3D already checked to be not null in IsSurfaceValid\r\n this.scs.rootEntity.visitEntities(function (e) { return e.setRenderPassData(rpd); });\r\n var userAnnotations = this.scs.annotations.asArray();\r\n var modifierAnnotations = this.scs.modifierAnnotations.asArray();\r\n var annotations = __spreadArray(__spreadArray([], userAnnotations, true), modifierAnnotations, true);\r\n var svgAnnotations = annotations.filter(function (el) {\r\n return el.type === IAnnotation_1.EAnnotationType.SVG ||\r\n el.type === IAnnotation_1.EAnnotationType.SVGTextAnnotation ||\r\n el.type === IAnnotation_1.EAnnotationType.SVGCustomAnnotation;\r\n });\r\n svgAnnotations.forEach(function (svg) { return svg.update(undefined, undefined, 0, 0); });\r\n // We add the same padding as we have for 2D 6px\r\n this.updateWatermark();\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.RenderEnd, {\r\n contextId: this.scs.id,\r\n relatedId: (_a = mark === null || mark === void 0 ? void 0 : mark.detail) === null || _a === void 0 ? void 0 : _a.relatedId\r\n });\r\n // Step 6: Notify that scene is about to be drawn\r\n this.scs.onSciChartRendered();\r\n // Invalidate for the animations\r\n if (this.scs.isRunningAnimation) {\r\n setTimeout(this.scs.invalidateElement, 0);\r\n }\r\n };\r\n SciChart3DRenderer.prototype.updateWatermark = function () {\r\n var chartHeight = this.scs.getMainCanvas().clientHeight;\r\n var chartWidth = this.scs.getMainCanvas().clientWidth;\r\n var left = 5;\r\n var bottom = chartHeight - 10;\r\n var wmWidth = Math.max(72, Math.min(0.25 * chartWidth, 256));\r\n var wmHeight = (42 * wmWidth) / 256;\r\n switch (this.scs.watermarkPosition) {\r\n case WatermarkPosition_1.EWatermarkPosition.BottomRight:\r\n left = chartWidth - wmWidth - 5;\r\n bottom = 12;\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.TopLeft:\r\n left = 5;\r\n bottom = chartHeight - (5 + wmHeight);\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.TopRight:\r\n left = chartWidth - wmWidth - 5;\r\n bottom = chartHeight - (5 + wmHeight);\r\n break;\r\n case WatermarkPosition_1.EWatermarkPosition.BottomLeft:\r\n left = 5;\r\n bottom = 12;\r\n break;\r\n }\r\n this.scs.updateWatermark(left, bottom);\r\n };\r\n SciChart3DRenderer.prototype.isSurfaceValid = function (sciChartSurface, viewportSize) {\r\n if (!sciChartSurface.xAxis) {\r\n throw new Error(\"Unable to draw SciChart3DSurface as the xAxis is undefined\");\r\n }\r\n if (!sciChartSurface.yAxis) {\r\n throw new Error(\"Unable to draw SciChart3DSurface as the yAxis is undefined\");\r\n }\r\n if (!sciChartSurface.zAxis) {\r\n throw new Error(\"Unable to draw SciChart3DSurface as the zAxis is undefined\");\r\n }\r\n return true;\r\n };\r\n SciChart3DRenderer.prototype.prepareAxes = function () {\r\n var _this = this;\r\n var axis = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n axis[_i] = arguments[_i];\r\n }\r\n axis.forEach(function (el) {\r\n el.validateAxis();\r\n SciChart3DRenderer.tryPerformAutoRangeOn(el, _this.scs);\r\n el.isMeasured = true;\r\n });\r\n };\r\n SciChart3DRenderer.prototype.updateWorldDimensions = function (sceneWorld, worldDimensions) {\r\n Guard_1.Guard.notNull(worldDimensions, \"worldDimensions\");\r\n var worldDimensionsVector4;\r\n try {\r\n worldDimensionsVector4 = this.scs.worldDimensions.toTsrVector3(this.wasmContext);\r\n sceneWorld.SetWorldDimensions(worldDimensionsVector4);\r\n }\r\n finally {\r\n (0, Deleter_1.deleteSafe)(worldDimensionsVector4);\r\n }\r\n };\r\n return SciChart3DRenderer;\r\n}());\r\nexports.SciChart3DRenderer = SciChart3DRenderer;\r\n/** @ignore */\r\nvar toString = function (vector) {\r\n return \"TSRVector3 (\".concat(vector.x.toFixed(2), \", \").concat(vector.y.toFixed(2), \", \").concat(vector.z.toFixed(2), \")\");\r\n};\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SciChart3DSurface = exports.sciChartConfig3D = void 0;\r\nvar SciChartSurfaceBase_1 = require(\"../../Charting/Visuals/SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../../Charting/Visuals/TextureManager/DpiHelper\");\r\nvar app_1 = require(\"../../constants/app\");\r\nvar Deleter_1 = require(\"../../Core/Deleter\");\r\nvar ObservableArray_1 = require(\"../../Core/ObservableArray\");\r\nvar Point_1 = require(\"../../Core/Point\");\r\nvar CameraController_1 = require(\"../CameraController\");\r\nvar Vector3_1 = require(\"../Vector3\");\r\nvar AxisCubeEntity_1 = require(\"./Axis/AxisCubeEntity\");\r\nvar Constants_1 = require(\"./Constants\");\r\nvar createMaster3d_1 = require(\"./createMaster3d\");\r\nvar createSingle3d_1 = require(\"./createSingle3d\");\r\nvar DefaultViewportManager3D_1 = require(\"./DefaultViewportManager3D\");\r\nvar GizmoEntity_1 = require(\"./GizmoEntity\");\r\nvar RootSceneEntity_1 = require(\"./RootSceneEntity\");\r\nvar SciChart3DRenderer_1 = require(\"./SciChart3DRenderer\");\r\nvar BuildStamp_1 = require(\"../../Core/BuildStamp\");\r\nvar SciChartDefaults_1 = require(\"../../Charting/Visuals/SciChartDefaults\");\r\nvar WebGlHelper_1 = require(\"../../Core/WebGlHelper\");\r\nvar Globals_1 = require(\"../../Core/Globals\");\r\nvar createMaster_1 = require(\"../../Charting/Visuals/createMaster\");\r\nvar EventHandler_1 = require(\"../../Core/EventHandler\");\r\nvar Thickness_1 = require(\"../../Core/Thickness\");\r\nvar perfomance_1 = require(\"../../utils/perfomance\");\r\nvar Rect_1 = require(\"../../Core/Rect\");\r\nvar translate_1 = require(\"../../utils/translate\");\r\nvar logger_1 = require(\"../../utils/logger\");\r\nexports.sciChartConfig3D = {};\r\n/**\r\n * @summary The {@link SciChart3DSurface} is the root 3D Chart control in SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript 3D Chart Library}\r\n * @description\r\n * To create a 3D chart using SciChart, declare a {@link SciChart3DSurface} using {@link SciChart3DSurface.create},\r\n * add X,Y,Z axis via the {@link SciChart3DSurface.xAxis} {@link SciChart3DSurface.yAxis} and {@link SciChart3DSurface.zAxis} properties.\r\n *\r\n * Next, add a series or chart type by adding a {@link BaseRenderableSeries3D} to the {@link SciChart3DSurface.renderableSeries} collection.\r\n *\r\n * Position the camera in the 3D scene by adjusting the {@link SciChart3DSurface.camera} property.\r\n *\r\n * To redraw a {@link SciChart3DSurface} at any time, call {@link SciChart3DSurface.invalidateElement}, however all properties are reactive and the\r\n * chart will automatically redraw if data or properties change.\r\n * @remarks\r\n * {@link SciChart3DSurface | SciChartSurfaces} scale to fit the parent DIV where they are hosted. Use CSS to position the DIV.\r\n */\r\nvar SciChart3DSurface = /** @class */ (function (_super) {\r\n __extends(SciChart3DSurface, _super);\r\n /**\r\n * Creates an instance of {@link SciChart3DSurface}\r\n * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and\r\n * access to our WebGL2 Engine and WebAssembly numerical methods\r\n * @param options Optional parameters of type {@link ISciChart3DSurfaceOptions} to configure the chart\r\n */\r\n function SciChart3DSurface(webAssemblyContext, options) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n _this = _super.call(this, webAssemblyContext, options === null || options === void 0 ? void 0 : options.canvases) || this;\r\n /** The position of the watermark for trials and community licenses */\r\n _this.watermarkPosition = SciChartDefaults_1.SciChartDefaults.watermarkPosition;\r\n /**\r\n * An event handler which notifies its subscribers when a render operation starts. Use this\r\n * to update elements of the chart for the current render. Any updates made here will not trigger a subsequent render.\r\n */\r\n _this.preRender = new EventHandler_1.EventHandler();\r\n _this.animationList = [];\r\n _this.isAxisCubeRenderedProperty = false;\r\n _this.isHitTestEnabledProperty = false;\r\n var canvasWidth = (_b = (_a = _this.domCanvas2D) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : app_1.DEFAULT_WIDTH;\r\n var canvasHeight = (_d = (_c = _this.domCanvas2D) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : app_1.DEFAULT_HEIGHT;\r\n _this.webAssemblyContext3D = webAssemblyContext;\r\n if (!app_1.IS_TEST_ENV) {\r\n var canvasPixelWidth = canvasWidth / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var canvasPixelHeight = canvasHeight / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n if (_this.isCopyCanvasSurface) {\r\n _this.changeMasterCanvasViewportSize(webAssemblyContext, canvasPixelWidth, canvasPixelHeight);\r\n }\r\n else {\r\n _this.changeWebGLCanvasViewportSize(webAssemblyContext, canvasPixelWidth, canvasPixelHeight);\r\n }\r\n }\r\n _this.invalidateElement = _this.invalidateElement.bind(_this);\r\n _this.sciChart3DRenderer = new SciChart3DRenderer_1.SciChart3DRenderer(_this, webAssemblyContext);\r\n // Set default viewportManager\r\n _this.viewportManager = new DefaultViewportManager3D_1.DefaultViewportManager3D(canvasWidth, canvasHeight);\r\n // Set default WorldDimensions\r\n _this.worldDimensionsProperty = (options === null || options === void 0 ? void 0 : options.worldDimensions) || new Vector3_1.Vector3(300, 200, 300);\r\n // Setup series\r\n _this.detachSeries = _this.detachSeries.bind(_this);\r\n _this.attachSeries = _this.attachSeries.bind(_this);\r\n _this.renderableSeries = new ObservableArray_1.ObservableArray();\r\n _this.renderableSeries.collectionChanged.subscribe(function (args) {\r\n var _a, _b;\r\n (_a = args.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(function (rs) { return _this.detachSeries(rs); });\r\n (_b = args.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(function (rs) { return _this.attachSeries(rs); });\r\n });\r\n // Set default scene\r\n _this.childPropertyChanged = _this.childPropertyChanged.bind(_this);\r\n _this.sceneWorldProperty = new _this.webAssemblyContext3D.SCRTSceneWorld();\r\n _this.sceneWorldProperty.Init();\r\n _this.rootEntity = new RootSceneEntity_1.RootSceneEntity(webAssemblyContext, _this);\r\n _this.axisCubeEntity = new AxisCubeEntity_1.AxisCubeEntity(webAssemblyContext, _this);\r\n _this.rootEntity.children.add(_this.axisCubeEntity);\r\n _this.gizmoEntity = new GizmoEntity_1.GizmoEntity(webAssemblyContext);\r\n _this.gizmoEntity.enableGizmo = true;\r\n _this.rootEntity.children.add(_this.gizmoEntity);\r\n // Watermark\r\n if (!app_1.IS_TEST_ENV) {\r\n _this.watermarkProperties = new webAssemblyContext.SCRTWaterMarkProperties();\r\n _this.watermarkProperties.m_fCanvasWidth = canvasWidth;\r\n _this.watermarkPropertyPosition = new webAssemblyContext.TSRVector2(0, 0);\r\n _this.watermarkProperties.SetPosition(_this.watermarkPropertyPosition);\r\n _this.watermarkProperties.SetOpacity(0.5);\r\n webAssemblyContext.SCRT3DSetWaterMarkProperties(_this.watermarkProperties);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * USED INTERNALLY - performs a similar operation to {@link SciChart3DSurface.create} but used internally for testing\r\n * @param divElement The Div Element ID or reference where the {@link SciChartSurface} will reside\r\n * @param options Optional parameters of type {@link I3DSurfaceOptions}\r\n */\r\n SciChart3DSurface.createSingle = function (divElement, options) {\r\n var startMark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.InitializationStart, {\r\n contextId: options === null || options === void 0 ? void 0 : options.id\r\n });\r\n return (0, createSingle3d_1.createSingle3dInternal)(divElement, options).then(function (result) {\r\n var _a;\r\n result.sciChart3DSurface.applyOptions(options);\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.InitializationEnd, {\r\n contextId: result.sciChart3DSurface.id,\r\n relatedId: (_a = startMark === null || startMark === void 0 ? void 0 : startMark.detail) === null || _a === void 0 ? void 0 : _a.relatedId\r\n });\r\n return result;\r\n });\r\n };\r\n /**\r\n * Allows setting of web URL for Wasm and Data files, in the case you are loading SciChart outside of npm/webpack environment.\r\n * Note if loading from CDN the version number of data/wasm Urls must match the version number of SciChart.js you are using.\r\n * @example\r\n * ```ts\r\n * // 3D Charts\r\n * SciChart.SciChart3DSurface.configure({\r\n * dataUrl: \"https://cdn.jsdelivr.net/npm/scichart@2.2.2378/_wasm/scichart3d.data\",\r\n * wasmUrl: \"https://cdn.jsdelivr.net/npm/scichart@2.2.2378/_wasm/scichart3d.wasm\"\r\n * });\r\n * ```\r\n * @param config\r\n */\r\n SciChart3DSurface.configure = function (config) {\r\n var _a, _b;\r\n exports.sciChartConfig3D.dataUrl = (_a = config === null || config === void 0 ? void 0 : config.dataUrl) !== null && _a !== void 0 ? _a : undefined;\r\n exports.sciChartConfig3D.wasmUrl = (_b = config === null || config === void 0 ? void 0 : config.wasmUrl) !== null && _b !== void 0 ? _b : undefined;\r\n };\r\n /**\r\n * Tell SciChart to load the Wasm and Data files from CDN, rather than expecting them to be served by the host server.\r\n * @deprecated the method name breaks [eslint react-hooks/rules-of-hooks](https://legacy.reactjs.org/docs/hooks-rules.html).\r\n * To avoid this error in React, use {@link loadWasmFromCDN} instead.\r\n */\r\n SciChart3DSurface.useWasmFromCDN = function () {\r\n exports.sciChartConfig3D.dataUrl = \"https://cdn.jsdelivr.net/npm/scichart@\".concat(BuildStamp_1.libraryVersion, \"/_wasm/scichart3d.data\");\r\n exports.sciChartConfig3D.wasmUrl = \"https://cdn.jsdelivr.net/npm/scichart@\".concat(BuildStamp_1.libraryVersion, \"/_wasm/scichart3d.wasm\");\r\n };\r\n /**\r\n * Tell SciChart to load the Wasm and Data files from CDN, rather than expecting them to be served by the host server.\r\n */\r\n SciChart3DSurface.loadWasmFromCDN = function () {\r\n return SciChart3DSurface.useWasmFromCDN();\r\n };\r\n /**\r\n * Tell SciChart to load the Wasm and Data files from the local server, rather than from CDN.\r\n */\r\n SciChart3DSurface.loadWasmLocal = function () {\r\n return SciChart3DSurface.configure(undefined);\r\n };\r\n /**\r\n * Creates a {@link SciChart3DSurface} and {@link TSciChart3D | WebAssembly Context} to occupy the div by element ID in your DOM.\r\n * @remarks This method is async and must be awaited\r\n * @param divElementId The ID or reference of Div Element where the {@link SciChart3DSurface} will reside\r\n * @param options Optional parameters of type {@link I3DSurfaceOptions}\r\n */\r\n SciChart3DSurface.create = function (divElementId, options) {\r\n var mark = perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.InitializationStart, { contextId: options === null || options === void 0 ? void 0 : options.id });\r\n return (0, createMaster3d_1.createMultichart3d)(divElementId, options).then(function (result) {\r\n var _a, _b;\r\n result.sciChart3DSurface.applyOptions(options);\r\n perfomance_1.PerformanceDebugHelper.mark(perfomance_1.EPerformanceMarkType.InitializationEnd, {\r\n contextId: (_a = result.sciChart3DSurface) === null || _a === void 0 ? void 0 : _a.id,\r\n relatedId: (_b = mark === null || mark === void 0 ? void 0 : mark.detail) === null || _b === void 0 ? void 0 : _b.relatedId\r\n });\r\n return result;\r\n });\r\n };\r\n SciChart3DSurface.disposeSharedWasmContext = function () {\r\n if (Globals_1.sciChart3DDestinations.length === 0 && Globals_1.sciChartDestinations.length === 0) {\r\n (0, createMaster_1.disposeMultiChart)();\r\n (0, createMaster3d_1.disposeMultiChart3d)();\r\n }\r\n _super.disposeSharedWasmContext.call(this);\r\n };\r\n /**\r\n * Used internally: Gets the {@link SCRTSceneWorld} object at the root of the 3d scene graph\r\n */\r\n SciChart3DSurface.prototype.getSceneWorld = function () {\r\n return this.sceneWorldProperty;\r\n };\r\n /**\r\n * Converts a 3D Xyz coordinate in world coordinates space to a screen coordinate (2d) in pixels.\r\n * This allows you to get the 2D screen coordinate of any object or vertex in the 3D scene.\r\n * @remarks Note: Conversions to/from world/data space must be performed using the {@link AxisBase3D.getCurrentCoordinateCalculator()}\r\n * API, which returns {@link CoordinateCalculatorBase}. Functions {@link CoordinateCalculatorBase.getDataValue} and\r\n * {@link CoordinateCalculatorBase.getCoordinate} convert to/from world coords/data space\r\n * @param worldCoordXyz The 3D Xyz coordinate\r\n * @returns The 2D screen coordinate in pixels\r\n */\r\n SciChart3DSurface.prototype.worldToScreenCoord = function (worldCoordXyz) {\r\n var sceneWorld = this.getSceneWorld();\r\n if (!sceneWorld)\r\n return undefined;\r\n var tsrWorldXyz = worldCoordXyz.toTsrVector3(this.webAssemblyContext3D);\r\n var tsrScreen2D = sceneWorld.TransformWorldToScreenCoords(tsrWorldXyz);\r\n var screen2D = new Point_1.Point(tsrScreen2D.x, tsrScreen2D.y);\r\n tsrScreen2D.delete();\r\n tsrWorldXyz.delete();\r\n return screen2D;\r\n };\r\n /**\r\n * @inheritdoc\r\n */\r\n SciChart3DSurface.prototype.delete = function (clearHtml) {\r\n if (clearHtml === void 0) { clearHtml = true; }\r\n this.renderableSeries.asArray().forEach(function (el) { return el.delete(); });\r\n this.renderableSeries.clear();\r\n this.xAxis = (0, Deleter_1.deleteSafe)(this.xAxis);\r\n this.yAxis = (0, Deleter_1.deleteSafe)(this.yAxis);\r\n this.zAxis = (0, Deleter_1.deleteSafe)(this.zAxis);\r\n this.rootEntity = (0, Deleter_1.deleteSafe)(this.rootEntity);\r\n this.watermarkProperties = (0, Deleter_1.deleteSafe)(this.watermarkProperties);\r\n this.watermarkPropertyPosition = (0, Deleter_1.deleteSafe)(this.watermarkPropertyPosition);\r\n this.sceneWorldProperty = (0, Deleter_1.deleteSafe)(this.sceneWorldProperty);\r\n if (!app_1.IS_TEST_ENV) {\r\n this.webAssemblyContext3D.SCRTSetActiveWorld(null);\r\n }\r\n this.clearRootElement(clearHtml);\r\n _super.prototype.delete.call(this);\r\n };\r\n Object.defineProperty(SciChart3DSurface.prototype, \"enableGizmo\", {\r\n /**\r\n * Gets or sets whether the Xyz gizmo is enabled - a small 3D Xyz axis on the bottom left of the 3D Chart\r\n */\r\n get: function () {\r\n return this.gizmoEntity.enableGizmo;\r\n },\r\n /**\r\n * Gets or sets whether the Xyz gizmo is enabled - a small 3D Xyz axis on the bottom left of the 3D Chart\r\n */\r\n set: function (isEnabled) {\r\n this.gizmoEntity.enableGizmo = isEnabled;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChart3DSurface.prototype, \"viewportManager\", {\r\n /**\r\n * Gets or sets the {@link ViewportManager3DBase | Viewport Manager} - a class that allows managing of viewport axis ranges\r\n */\r\n get: function () {\r\n return this.viewportManagerProperty;\r\n },\r\n /**\r\n * Gets or sets the {@link ViewportManager3DBase | Viewport Manager} - a class that allows managing of viewport axis ranges\r\n */\r\n set: function (viewportManager) {\r\n var _a, _b;\r\n (_a = this.viewportManagerProperty) === null || _a === void 0 ? void 0 : _a.detachSciChartSurface();\r\n this.viewportManagerProperty = viewportManager;\r\n (_b = this.viewportManagerProperty) === null || _b === void 0 ? void 0 : _b.attachSciChartSurface(this);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SURFACE_VIEWPORT_MANAGER);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChart3DSurface.prototype, \"worldDimensions\", {\r\n /**\r\n * The WorldDimensions defines the size of the world in 3D space. Series and objects can exist outside of this world\r\n * however the Axis cube will conform to this size.\r\n * @remarks See our {@link https://www.scichart.com/javascript-chart-documentation | Documentation} online to see\r\n * how the World Dimensions property configures the size of the chart.\r\n */\r\n get: function () {\r\n return this.worldDimensionsProperty;\r\n },\r\n /**\r\n * The WorldDimensions defines the size of the world in 3D space. Series and objects can exist outside of this world\r\n * however the Axis cube will conform to this size.\r\n * @remarks See our {@link https://www.scichart.com/javascript-chart-documentation | Documentation} online to see\r\n * how the World Dimensions property configures the size of the chart.\r\n */\r\n set: function (worldDimensions) {\r\n this.worldDimensionsProperty = worldDimensions;\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SURFACE_WORLD_DIMENSIONS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChart3DSurface.prototype, \"camera\", {\r\n /**\r\n * The {@link ICameraController} is a 3D Camera which allows choosing perspective, orthogonal projections,\r\n * camera position, target, orientation such as Pitch, Yaw and Roll etc...\r\n * @remarks See {@link CameraController} for a concrete implementation of {@link ICameraController}\r\n */\r\n get: function () {\r\n return this.cameraProperty;\r\n },\r\n /**\r\n * The {@link ICameraController} is a 3D Camera which allows choosing perspective, orthogonal projections,\r\n * camera position, target, orientation such as Pitch, Yaw and Roll etc...\r\n * @remarks See {@link CameraController} for a concrete implementation of {@link ICameraController}\r\n */\r\n set: function (value) {\r\n var _a, _b;\r\n (_a = this.cameraProperty) === null || _a === void 0 ? void 0 : _a.propertyChanged.unsubscribe(this.childPropertyChanged);\r\n this.cameraProperty = value;\r\n (_b = this.cameraProperty) === null || _b === void 0 ? void 0 : _b.propertyChanged.subscribe(this.childPropertyChanged);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SURFACE_CAMERA);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChart3DSurface.prototype, \"xAxis\", {\r\n /**\r\n * Gets or sets the XAxis in the 3D Chart.\r\n * @remarks Axis types which derive from {@link AxisBase3D} or concrete type {@link NumericAxis3D} are valid\r\n */\r\n get: function () {\r\n return this.xAxisProperty;\r\n },\r\n /**\r\n * Gets or sets the XAxis in the 3D Chart.\r\n * @remarks Axis types which derive from {@link AxisBase3D} or concrete type {@link NumericAxis3D} are valid\r\n */\r\n set: function (xAxis) {\r\n this.detachAxis(this.xAxisProperty);\r\n this.xAxisProperty = xAxis;\r\n this.attachAxis(this.xAxisProperty);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SURFACE_XAXIS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChart3DSurface.prototype, \"yAxis\", {\r\n /**\r\n * Gets or sets the YAxis in the 3D Chart.\r\n * @remarks Axis types which derive from {@link AxisBase3D} or concrete type {@link NumericAxis3D} are valid\r\n */\r\n get: function () {\r\n return this.yAxisProperty;\r\n },\r\n /**\r\n * Gets or sets the YAxis in the 3D Chart.\r\n * @remarks Axis types which derive from {@link AxisBase3D} or concrete type {@link NumericAxis3D} are valid\r\n */\r\n set: function (yAxis) {\r\n this.detachAxis(this.yAxisProperty);\r\n this.yAxisProperty = yAxis;\r\n this.attachAxis(this.yAxisProperty);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SURFACE_YAXIS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChart3DSurface.prototype, \"zAxis\", {\r\n /**\r\n * Gets or sets the ZAxis in the 3D Chart.\r\n * @remarks Axis types which derive from {@link AxisBase3D} or concrete type {@link NumericAxis3D} are valid\r\n */\r\n get: function () {\r\n return this.zAxisProperty;\r\n },\r\n /**\r\n * Gets or sets the ZAxis in the 3D Chart.\r\n * @remarks Axis types which derive from {@link AxisBase3D} or concrete type {@link NumericAxis3D} are valid\r\n */\r\n set: function (zAxis) {\r\n this.detachAxis(this.zAxisProperty);\r\n this.zAxisProperty = zAxis;\r\n this.attachAxis(this.zAxisProperty);\r\n this.notifyPropertyChanged(Constants_1.PROPERTY.SURFACE_ZAXIS);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChart3DSurface.prototype, \"isHitTestEnabled\", {\r\n /**\r\n * Required to enable Hit-Test if any of the following functions are needed in SciChart3DSurface:\r\n * - {@link BaseRenderableSeries3D.hitTest}\r\n * - {@link TooltipModiifer3D}\r\n *\r\n * Enabling hit-test adds minor a performance overhead for drawing and should be disabled if not required.\r\n * @param isEnabled\r\n */\r\n get: function () {\r\n return this.isHitTestEnabledProperty;\r\n },\r\n /**\r\n * Required to enable Hit-Test if any of the following functions are needed in SciChart3DSurface:\r\n * - {@link BaseRenderableSeries3D.hitTest}\r\n * - {@link TooltipModiifer3D}\r\n *\r\n * Enabling hit-test adds minor a performance overhead for drawing and should be disabled if not required.\r\n * @param isEnabled\r\n */\r\n set: function (isEnabled) {\r\n if (isEnabled !== this.isHitTestEnabledProperty) {\r\n this.isHitTestEnabledProperty = isEnabled;\r\n this.invalidateElement();\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Called internally\r\n * Sets isAxisCubeRenderedProperty flag after Axis Cube is rendered\r\n */\r\n SciChart3DSurface.prototype.setIsAxisCubeRendered = function () {\r\n this.isAxisCubeRenderedProperty = true;\r\n };\r\n Object.defineProperty(SciChart3DSurface.prototype, \"isAxisCubeRendered\", {\r\n /**\r\n * Called internally\r\n * Gets isAxisCubeRenderedProperty flag\r\n */\r\n get: function () {\r\n return this.isAxisCubeRenderedProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.invalidateElement = function (options) {\r\n var _a, _b, _c;\r\n // TODO refactor duplication of 2D Surface logic\r\n logger_1.Logger.debug(\"Invalidating \".concat((_b = (_a = this.domChartRoot) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.id, \": force=\").concat(options === null || options === void 0 ? void 0 : options.force, \" isSuspended=\").concat(this.isSuspended, \" isInitialized=\").concat(this.isInitialized, \".\"));\r\n // When isSuspended (see suspendUpdates() function) ignore drawing\r\n if (!(options === null || options === void 0 ? void 0 : options.force) && (this.isSuspended || this.isDeleted || !this.isInitialized)) {\r\n return;\r\n }\r\n perfomance_1.PerformanceDebugHelper.mark(this.sciChart3DRenderer.isInvalidated\r\n ? perfomance_1.EPerformanceMarkType.Invalidate\r\n : perfomance_1.EPerformanceMarkType.LeadingInvalidate, { contextId: this.id });\r\n // Prevent drawing request when WebGL context is lost\r\n if ((_c = WebGlHelper_1.WebGlHelper.getContext(this.webAssemblyContext3D.canvas)) === null || _c === void 0 ? void 0 : _c.isContextLost()) {\r\n return;\r\n }\r\n this.sciChart3DRenderer.isInvalidated = true;\r\n var canvasId = this.domCanvas2D ? this.domCanvas2D.id : \"undefinedCanvasId\";\r\n this.webAssemblyContext3D.TSRRequestCanvasDraw(canvasId);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.onDpiChanged = function (args) {\r\n var _a, _b;\r\n this.renderableSeries.asArray().forEach(function (rs) { return rs.onDpiChanged(args); });\r\n // Force a viewport size change as size-changed may not fire when parent div has width, height\r\n this.changeViewportSize((_a = this.getMainCanvas()) === null || _a === void 0 ? void 0 : _a.clientWidth, (_b = this.getMainCanvas()) === null || _b === void 0 ? void 0 : _b.clientHeight);\r\n _super.prototype.onDpiChanged.call(this, args);\r\n };\r\n Object.defineProperty(SciChart3DSurface.prototype, \"surfaceType\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return SciChartSurfaceBase_1.ESurfaceType.SciChart3DSurfaceType;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SciChart3DSurface.prototype, \"isInvalidated\", {\r\n get: function () {\r\n var _a;\r\n return (_a = this.sciChart3DRenderer) === null || _a === void 0 ? void 0 : _a.isInvalidated;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Called after the {@link SciChart3DSurface} has rendered.\r\n */\r\n SciChart3DSurface.prototype.onSciChartRendered = function () {\r\n this.chartModifiers.asArray().forEach(function (cm) {\r\n cm.onParentSurfaceRendered();\r\n });\r\n if (!this.isCopyCanvasSurface) {\r\n this.rendered.raiseEvent(this.sciChart3DRenderer.isInvalidated);\r\n }\r\n };\r\n /**\r\n * Called internally - the main drawing loop\r\n */\r\n SciChart3DSurface.prototype.doDrawingLoop = function () {\r\n this.sciChart3DRenderer.render();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.applyTheme = function (themeProvider) {\r\n var _a, _b, _c;\r\n _super.prototype.applyTheme.call(this, themeProvider);\r\n this.renderableSeries.asArray().forEach(function (rs) { return rs.applyTheme(themeProvider); });\r\n (_a = this.xAxis) === null || _a === void 0 ? void 0 : _a.applyTheme(themeProvider);\r\n (_b = this.yAxis) === null || _b === void 0 ? void 0 : _b.applyTheme(themeProvider);\r\n (_c = this.zAxis) === null || _c === void 0 ? void 0 : _c.applyTheme(themeProvider);\r\n this.invalidateElement();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.changeViewportSize = function (pixelWidth, pixelHeight) {\r\n if (!pixelWidth || !pixelHeight || this.isDeleted) {\r\n return;\r\n }\r\n var backBufferWidth = pixelWidth * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var backBufferHeight = pixelHeight * DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n this.viewportManager.setSize(backBufferWidth, backBufferHeight);\r\n if (this.isCopyCanvasSurface) {\r\n this.changeMasterCanvasViewportSize(this.webAssemblyContext3D, pixelWidth, pixelHeight);\r\n if (this.domCanvas2D) {\r\n DpiHelper_1.DpiHelper.setSize(this.domCanvas2D, pixelWidth, pixelHeight);\r\n }\r\n }\r\n else {\r\n this.changeWebGLCanvasViewportSize(this.webAssemblyContext3D, pixelWidth, pixelHeight);\r\n }\r\n var svgRootElement = this.domSvgContainer;\r\n if (svgRootElement) {\r\n (0, translate_1.fitSvgToViewRect)(svgRootElement, new Rect_1.Rect(0, 0, pixelWidth, pixelHeight));\r\n }\r\n var backgroundSvgRootElement = this.domBackgroundSvgContainer;\r\n if (backgroundSvgRootElement) {\r\n (0, translate_1.fitSvgToViewRect)(backgroundSvgRootElement, new Rect_1.Rect(0, 0, pixelWidth, pixelHeight));\r\n }\r\n var backgroundDivRootElement = this.domSeriesBackground;\r\n if (backgroundDivRootElement) {\r\n (0, translate_1.fitElementToViewRect)(backgroundDivRootElement, new Rect_1.Rect(0, 0, pixelWidth, pixelHeight));\r\n }\r\n if (this.domSvgAdornerLayer) {\r\n this.domSvgAdornerLayer.setAttribute(\"width\", pixelWidth.toString());\r\n this.domSvgAdornerLayer.setAttribute(\"height\", pixelHeight.toString());\r\n }\r\n this.invalidateElement();\r\n };\r\n /**\r\n * Gets the generic animations currently on the surface. Do not manipulate this array directly.\r\n * To add, use addAnimation. To remove, find an animation and call .cancel() on it.\r\n */\r\n SciChart3DSurface.prototype.getAnimations = function () {\r\n return this.animationList;\r\n };\r\n /**\r\n * Add a {@link GenericAnimation} to the surface.\r\n * Multiple animations will be run in parallel, so if you want to run one after another, use the onCompleted callback\r\n * to add another animation after the first completes\r\n */\r\n SciChart3DSurface.prototype.addAnimation = function () {\r\n var _this = this;\r\n var animations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n animations[_i] = arguments[_i];\r\n }\r\n if (animations === undefined)\r\n return;\r\n animations.forEach(function (a) { return _this.animationList.push(a); });\r\n this.invalidateElement();\r\n };\r\n Object.defineProperty(SciChart3DSurface.prototype, \"isRunningAnimation\", {\r\n /**\r\n * Returns true if an animation is running\r\n */\r\n get: function () {\r\n return this.animationList.some(function (a) { return !a.isComplete; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Is being called on each render, to run animations\r\n * @param timeElapsed\r\n */\r\n SciChart3DSurface.prototype.onAnimate = function (timeElapsed) {\r\n if (timeElapsed) {\r\n // advance all animations in queue\r\n var remainingAnimations = [];\r\n for (var i = 0; i < this.animationList.length; i++) {\r\n var animation = this.animationList[i];\r\n if (!animation.isComplete) {\r\n animation.update(timeElapsed);\r\n if (!animation.isComplete) {\r\n // Request another draw to advance animation\r\n this.invalidateElement();\r\n remainingAnimations.push(animation);\r\n }\r\n }\r\n }\r\n this.animationList = remainingAnimations;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.getXAxisById = function (axisId) {\r\n return this.xAxis;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.getYAxisById = function (axisId) {\r\n return this.yAxis;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.updateWatermark = function (left, bottom) {\r\n var _a, _b;\r\n if (!app_1.IS_TEST_ENV) {\r\n this.watermarkPropertyPosition.x = left;\r\n this.watermarkPropertyPosition.y = bottom;\r\n this.watermarkProperties.m_fCanvasWidth = (_a = this.getMainCanvas()) === null || _a === void 0 ? void 0 : _a.clientWidth;\r\n this.watermarkProperties.SetPosition(this.watermarkPropertyPosition);\r\n var isLightBackground = (_b = this.themeProvider) === null || _b === void 0 ? void 0 : _b.isLightBackground;\r\n this.watermarkProperties.m_bIsDarkBackground = isLightBackground !== undefined ? !isLightBackground : false;\r\n this.webAssemblyContext3D.SCRT3DSetWaterMarkProperties(this.watermarkProperties);\r\n }\r\n };\r\n SciChart3DSurface.prototype.getSeriesViewRectPadding = function (scaled) {\r\n return Thickness_1.Thickness.fromNumber(0);\r\n };\r\n SciChart3DSurface.prototype.applyOptions = function (options) {\r\n _super.prototype.applyOptions.call(this, options);\r\n this.camera = new CameraController_1.CameraController(this.webAssemblyContext3D, options === null || options === void 0 ? void 0 : options.cameraOptions);\r\n if (options === null || options === void 0 ? void 0 : options.worldDimensions) {\r\n this.worldDimensions = options.worldDimensions;\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.attachChartModifier = function (chartModifier) {\r\n _super.prototype.attachChartModifier.call(this, chartModifier);\r\n chartModifier.setParentSurface(this);\r\n chartModifier.invalidateParentCallback = this.invalidateElement;\r\n chartModifier.onAttach();\r\n this.invalidateElement();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SciChart3DSurface.prototype.applySciChartBackground = function (background, alphaEnabled) {\r\n if (alphaEnabled === void 0) { alphaEnabled = true; }\r\n this.backgroundProperty = background;\r\n if (this.domChartRoot) {\r\n this.domChartRoot.style.background = background;\r\n }\r\n this.webAssemblyContext3D.SCRT3DSetClearColor(0, 0, 0, 0);\r\n };\r\n SciChart3DSurface.prototype.detachSeries = function (renderableSeries) {\r\n if (this.rootEntity) {\r\n this.rootEntity.children.remove(renderableSeries.sceneEntity);\r\n }\r\n renderableSeries.onDetach();\r\n this.invalidateElement();\r\n };\r\n SciChart3DSurface.prototype.attachSeries = function (renderableSeries) {\r\n renderableSeries.onAttach(this);\r\n if (!renderableSeries.sceneEntity) {\r\n throw new Error(\"IRenderableSeries3D.sceneEntity must be set before attaching to SciChart3DSurface\");\r\n }\r\n if (this.rootEntity) {\r\n this.rootEntity.children.add(renderableSeries.sceneEntity);\r\n }\r\n this.invalidateElement();\r\n };\r\n SciChart3DSurface.prototype.detachAxis = function (axis) {\r\n if (axis) {\r\n axis.invalidateParentCallback = undefined;\r\n axis.parentSurface = undefined;\r\n }\r\n };\r\n SciChart3DSurface.prototype.attachAxis = function (axis) {\r\n if (axis) {\r\n if (axis.invalidateParentCallback) {\r\n throw new Error(\"Invalid operation in sciChart3DSurface.attachAxis, this axis has already been attached to a SciChart3DSurface. Please detach it from a SciChart3DSurface before attaching to another\");\r\n }\r\n axis.onAttach(this, axis === this.xAxis, axis === this.yAxis, axis === this.zAxis);\r\n if (this.themeProviderProperty) {\r\n axis.applyTheme(this.themeProviderProperty);\r\n }\r\n axis.invalidateParentCallback = this.invalidateElement;\r\n }\r\n };\r\n SciChart3DSurface.prototype.childPropertyChanged = function (args) {\r\n this.invalidateElement();\r\n };\r\n return SciChart3DSurface;\r\n}(SciChartSurfaceBase_1.SciChartSurfaceBase));\r\nexports.SciChart3DSurface = SciChart3DSurface;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ViewportManager3DBase = void 0;\r\nvar AutoRange_1 = require(\"../../types/AutoRange\");\r\n/**\r\n * The Viewport Manager performs certain functions such as axis ranging and viewport manipulation\r\n * on a {@link SciChart3DSurface}\r\n */\r\nvar ViewportManager3DBase = /** @class */ (function () {\r\n function ViewportManager3DBase(width, height) {\r\n this.width = width;\r\n this.height = height;\r\n }\r\n ViewportManager3DBase.prototype.setSize = function (width, height) {\r\n this.width = width;\r\n this.height = height;\r\n };\r\n /**\r\n * Called when attached to a {@link SciChart3DSurface}\r\n * @param scs The {@link SciChart3DSurface}\r\n */\r\n ViewportManager3DBase.prototype.attachSciChartSurface = function (scs) {\r\n if (this.isAttached) {\r\n throw Error(\"This ViewportManager instance is already attached to a SciChart3DSurface. Detach it before attaching to another\");\r\n }\r\n this.parentSurface = scs;\r\n this.isAttached = true;\r\n };\r\n /**\r\n * Called when detached from a {@link SciChart3DSurface}\r\n */\r\n ViewportManager3DBase.prototype.detachSciChartSurface = function () {\r\n this.isAttached = false;\r\n this.parentSurface = undefined;\r\n };\r\n /**\r\n * Calculates the visibleRange for an {@link AxisBase3D} depending on the current parameters\r\n * such as {@link AxisCore.autoRange} and data on the axis.\r\n * @param axis The {@link AxisBase3D} we are calculating for\r\n * @returns The auto-fitted range\r\n */\r\n ViewportManager3DBase.prototype.calculateAutoRange = function (axis) {\r\n if (axis.autoRange === AutoRange_1.EAutoRange.Always || axis.autoRange === AutoRange_1.EAutoRange.Once) {\r\n var newRange = axis.getMaximumRange();\r\n if (newRange && newRange.isDefined) {\r\n return newRange;\r\n }\r\n }\r\n return axis.visibleRange;\r\n };\r\n return ViewportManager3DBase;\r\n}());\r\nexports.ViewportManager3DBase = ViewportManager3DBase;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.disposeMultiChart3d = exports.createMultichart3d = void 0;\r\n// @ts-ignore\r\nvar WasmModule3D = require(\"../../_wasm/scichart3d\");\r\nvar chartBuilder_1 = require(\"../../Builder/chartBuilder\");\r\nvar copyCanvasUtils_1 = require(\"../../Charting/Visuals/copyCanvasUtils\");\r\nvar licenseManager2D_1 = require(\"../../Charting/Visuals/licenseManager2D\");\r\nvar loader_1 = require(\"../../Charting/Visuals/loader\");\r\nvar SciChartDefaults_1 = require(\"../../Charting/Visuals/SciChartDefaults\");\r\nvar sciChartInitCommon_1 = require(\"../../Charting/Visuals/sciChartInitCommon\");\r\nvar SciChartSurfaceBase_1 = require(\"../../Charting/Visuals/SciChartSurfaceBase\");\r\nvar BuildStamp_1 = require(\"../../Core/BuildStamp\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar Globals_1 = require(\"../../Core/Globals\");\r\nvar MemoryUsageHelper_1 = require(\"../../utils/MemoryUsageHelper\");\r\nvar licenseManager3D_1 = require(\"./licenseManager3D\");\r\nvar SciChart3DSurface_1 = require(\"./SciChart3DSurface\");\r\n/** @ignore */\r\nvar sciChartMaster3D = {\r\n wasmContext: undefined,\r\n getChildSurfaces: undefined,\r\n createChildSurface: undefined\r\n};\r\n/** @ignore */\r\nvar sciChartMaster3DPromise;\r\n/** @ignore */\r\nvar createMultichart3d = function (divElement, options) { return __awaiter(void 0, void 0, void 0, function () {\r\n var canvases, loader, loaderDiv, master, createChildSurface, wasmContext_1, divElementId, sciChart3DSurface_1, err_1;\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n return __generator(this, function (_h) {\r\n switch (_h.label) {\r\n case 0:\r\n (0, chartBuilder_1.ensureRegistrations)();\r\n sciChartInitCommon_1.default.checkChartDivExists(divElement);\r\n canvases = sciChartInitCommon_1.default.initCanvas(divElement, (_a = options === null || options === void 0 ? void 0 : options.widthAspect) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.heightAspect) !== null && _b !== void 0 ? _b : 0, sciChartInitCommon_1.default.ECanvasType.canvas2D, undefined, options === null || options === void 0 ? void 0 : options.touchAction);\r\n loader = (_c = options === null || options === void 0 ? void 0 : options.loader) !== null && _c !== void 0 ? _c : new loader_1.DefaultSciChartLoader();\r\n loaderDiv = (_d = loader.addChartLoader) === null || _d === void 0 ? void 0 : _d.call(loader, canvases.domDivContainer, (_e = options === null || options === void 0 ? void 0 : options.theme) !== null && _e !== void 0 ? _e : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME);\r\n _h.label = 1;\r\n case 1:\r\n _h.trys.push([1, 4, , 5]);\r\n if (!(!sciChartMaster3D.wasmContext ||\r\n !sciChartMaster3D.createChildSurface ||\r\n !sciChartMaster3D.getChildSurfaces)) return [3 /*break*/, 3];\r\n if (!sciChartMaster3DPromise) {\r\n (0, licenseManager3D_1.forceReapplyLicense3D)();\r\n sciChartMaster3DPromise = createMaster();\r\n }\r\n return [4 /*yield*/, sciChartMaster3DPromise];\r\n case 2:\r\n master = _h.sent();\r\n (0, BuildStamp_1.checkBuildStamp)(master.wasmContext);\r\n sciChartMaster3D.wasmContext = master.wasmContext;\r\n sciChartMaster3D.createChildSurface = master.createChildSurface;\r\n sciChartMaster3D.getChildSurfaces = master.getChildSurfaces;\r\n _h.label = 3;\r\n case 3:\r\n createChildSurface = sciChartMaster3D.createChildSurface, wasmContext_1 = sciChartMaster3D.wasmContext;\r\n divElementId = canvases.domChartRoot.id;\r\n sciChart3DSurface_1 = createChildSurface(divElementId, canvases, (_f = options === null || options === void 0 ? void 0 : options.theme) !== null && _f !== void 0 ? _f : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME);\r\n return [2 /*return*/, new Promise(function (resolve) {\r\n setTimeout(function () {\r\n var _a;\r\n (_a = loader.removeChartLoader) === null || _a === void 0 ? void 0 : _a.call(loader, canvases.domDivContainer, loaderDiv);\r\n sciChart3DSurface_1.setIsInitialized();\r\n resolve({ wasmContext: wasmContext_1, sciChart3DSurface: sciChart3DSurface_1 });\r\n }, 0);\r\n })];\r\n case 4:\r\n err_1 = _h.sent();\r\n console.error(err_1);\r\n // replace with div with error message\r\n (_g = loader.removeChartLoader) === null || _g === void 0 ? void 0 : _g.call(loader, canvases.domDivContainer, loaderDiv);\r\n return [2 /*return*/, Promise.reject(err_1)];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nexports.createMultichart3d = createMultichart3d;\r\nvar cleanupWasmContext;\r\n/** @ignore */\r\nvar disposeMultiChart3d = function () {\r\n if (cleanupWasmContext) {\r\n cleanupWasmContext();\r\n }\r\n sciChartMaster3D.createChildSurface = undefined;\r\n sciChartMaster3D.getChildSurfaces = undefined;\r\n sciChartMaster3D.wasmContext = undefined;\r\n sciChartMaster3DPromise = undefined;\r\n licenseManager2D_1.licenseManager.clear();\r\n};\r\nexports.disposeMultiChart3d = disposeMultiChart3d;\r\n/** @ignore */\r\nvar createMaster = function () {\r\n var createChildSurfaceInner = function (wasmContext, divElementId, canvases, theme) {\r\n var sciChart3DSurface = new SciChart3DSurface_1.SciChart3DSurface(wasmContext, { canvases: canvases });\r\n sciChart3DSurface.applyTheme(theme);\r\n sciChart3DSurface.setDestinations(Globals_1.sciChart3DDestinations);\r\n var unsub = sciChartInitCommon_1.default.subscribeToResize(canvases.domChartRoot, canvases.aspect, sciChart3DSurface);\r\n sciChart3DSurface.addDeletable(unsub);\r\n return sciChart3DSurface;\r\n };\r\n var addDestination = function (wasmContext, canvasElementId, sciChartSurface, width, height, chartInitObj3D) {\r\n var newDestination = (0, SciChartSurfaceBase_1.createChartDestination)(sciChartSurface.domCanvas2D);\r\n if (!newDestination) {\r\n sciChartSurface.delete();\r\n return;\r\n }\r\n var dest = wasmContext.SCRTSurfaceDestination.implement(newDestination);\r\n chartInitObj3D.AddDestination(dest);\r\n Globals_1.sciChart3DDestinations.push({ canvasElementId: canvasElementId, sciChartSurface: sciChartSurface, width: width, height: height });\r\n };\r\n return new Promise(function (resolve, reject) {\r\n var locateFile = (0, SciChartSurfaceBase_1.getLocateFile)(SciChart3DSurface_1.sciChartConfig3D);\r\n // @ts-ignore\r\n new WasmModule3D({ locateFile: locateFile, noInitialRun: true })\r\n .then(function (originalWasmContext) {\r\n var revocable = (0, DeletableEntity_1.createWasmContextRevocableProxy)(originalWasmContext);\r\n var wasmContext = revocable.proxy;\r\n cleanupWasmContext = function () {\r\n // Halt the engine\r\n wasmContext.TSRRequestExit();\r\n frameRenderer3D.delete();\r\n // wasmContext.SCRTGetGlobalSampleChartInterface().GetFrameRenderer().delete();\r\n wasmContext.SCRTGetGlobalSampleChartInterface().SetFrameRenderer(null);\r\n wasmContext.SCRTGetGlobalSampleChartInterface().delete();\r\n wasmContext.SCRTSetGlobalSampleChartInterface(null);\r\n // deleteCache(wasmContext);\r\n canvasCopyObj.delete();\r\n wasmContext.SCRTSetGlobalCopyToDestinationInterface(null);\r\n revocable.revoke();\r\n revocable = undefined;\r\n cleanupWasmContext = undefined;\r\n };\r\n var getChildSurfaces = function () {\r\n return Globals_1.sciChart3DDestinations.map(function (el) { return el.sciChartSurface; });\r\n };\r\n // Create of replace child surface\r\n var createChildSurface = function (divElementId, canvases, theme) {\r\n var canvas2dId = sciChartInitCommon_1.default.getCanvas2dId(divElementId);\r\n var otherDestinations = Globals_1.sciChart3DDestinations.filter(function (el) { return el.canvasElementId !== canvas2dId; });\r\n chartInitObj.ClearDestinations();\r\n var sameIdDestination = Globals_1.sciChart3DDestinations.filter(function (el) { return el.canvasElementId === canvas2dId; });\r\n sameIdDestination.forEach(function (el) { return el.sciChartSurface.delete(); });\r\n while (Globals_1.sciChart3DDestinations.length > 0) {\r\n Globals_1.sciChart3DDestinations.pop();\r\n }\r\n otherDestinations.forEach(function (el) {\r\n return addDestination(wasmContext, el.canvasElementId, el.sciChartSurface, el.width, el.height, chartInitObj);\r\n });\r\n var sciChart3DSurface = createChildSurfaceInner(wasmContext, divElementId, canvases, theme);\r\n sciChart3DSurface.addDeletable({\r\n delete: function () {\r\n if (SciChart3DSurface_1.SciChart3DSurface.autoDisposeWasmContext &&\r\n sciChart3DSurface.otherSurfaces.length === 0) {\r\n if (SciChart3DSurface_1.SciChart3DSurface.wasmContextDisposeTimeout) {\r\n setTimeout(function () {\r\n if (Globals_1.sciChart3DDestinations.length === 0) {\r\n SciChart3DSurface_1.SciChart3DSurface.disposeSharedWasmContext();\r\n }\r\n }, SciChart3DSurface_1.SciChart3DSurface.wasmContextDisposeTimeout);\r\n }\r\n else {\r\n SciChart3DSurface_1.SciChart3DSurface.disposeSharedWasmContext();\r\n }\r\n }\r\n else {\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled &&\r\n sciChart3DSurface.otherSurfaces.length === 0) {\r\n console.warn(\"SciChart3DSurface.autoDisposeWasmContext is disabled, thus wasmContext should be disposed explicitly using \\\"SciChartSurface.disposeSharedWasmContext()\\\".\");\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n }\r\n }\r\n });\r\n addDestination(wasmContext, canvas2dId, sciChart3DSurface, canvases.domCanvas2D.width, canvases.domCanvas2D.height, chartInitObj);\r\n (0, licenseManager3D_1.applyLicense3D)(wasmContext, sciChart3DSurface, false);\r\n return sciChart3DSurface;\r\n };\r\n wasmContext.canvas = (0, SciChartSurfaceBase_1.getMasterCanvas)();\r\n var chartInitializer = {\r\n InitializeChart: function () {\r\n resolve({ getChildSurfaces: getChildSurfaces, createChildSurface: createChildSurface, wasmContext: wasmContext });\r\n },\r\n Draw: function (canvasId) {\r\n var dest = Globals_1.sciChart3DDestinations.find(function (d) { return d.canvasElementId === canvasId; });\r\n if (dest) {\r\n dest.sciChartSurface.doDrawingLoop();\r\n }\r\n },\r\n Update: function (deltaTime) {\r\n // console.log(\"Update\");\r\n },\r\n ShutDownChart: function () {\r\n // console.log(\"ShutDownChart\");\r\n }\r\n };\r\n var chartInitObj = wasmContext.SCRTSampleChartInterface.implement(chartInitializer);\r\n var frameRenderer3D = new wasmContext.SCRTFrameRenderer3D();\r\n chartInitObj.SetFrameRenderer(frameRenderer3D);\r\n chartInitObj.SetFPSCounterEnabled(false);\r\n // This may not be used in the case of 3D charts, but we set the property anyway as its passed down to TSR engine when initialising\r\n chartInitObj.SetWasmBufferSizesKb(SciChartDefaults_1.SciChartDefaults.wasmBufferSizesKb);\r\n wasmContext.SCRTSetGlobalSampleChartInterface(chartInitObj);\r\n // create an object that native side can trigger the copy to from...\r\n var canvasCopyObj = wasmContext.SCRTCopyToDestinationInterface.implement({\r\n CopyToDestination: (0, copyCanvasUtils_1.copyToCanvas)(SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas, getDestinationById)\r\n });\r\n wasmContext.SCRTSetGlobalCopyToDestinationInterface(canvasCopyObj);\r\n wasmContext.TSRSetDrawRequestsEnabled(true);\r\n // SCJS-1321 fixes cutting 3d chart issue. 3D wasm and vice versa doesn't know about domMasterCanvas width/height\r\n // when creating one 3d chart and one 2d chart on the same screen. So we tell the other wasm about existing master canvas size\r\n if (SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas) {\r\n wasmContext.SCRTSetMainWindowSize(SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width, SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height);\r\n }\r\n // @ts-ignore\r\n wasmContext.callMain();\r\n })\r\n .catch(function () {\r\n reject(\"Could not load SciChart WebAssembly module.\\n Check your build process and ensure that your scichart3d.wasm, scichart3d.data and scichart3d.js files are from the same version\");\r\n });\r\n });\r\n};\r\n/** @ignore */\r\nvar getDestinationById = function (destinationId) {\r\n return Globals_1.sciChart3DDestinations.find(function (dest) { return dest.canvasElementId === destinationId; });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createSingle3dInternal = void 0;\r\n// @ts-ignore\r\nvar WasmModule3D = require(\"../../_wasm/scichart3d\");\r\nvar chartBuilder_1 = require(\"../../Builder/chartBuilder\");\r\nvar licenseManager2D_1 = require(\"../../Charting/Visuals/licenseManager2D\");\r\nvar loader_1 = require(\"../../Charting/Visuals/loader\");\r\nvar SciChartDefaults_1 = require(\"../../Charting/Visuals/SciChartDefaults\");\r\nvar sciChartInitCommon_1 = require(\"../../Charting/Visuals/sciChartInitCommon\");\r\nvar SciChartSurfaceBase_1 = require(\"../../Charting/Visuals/SciChartSurfaceBase\");\r\nvar BuildStamp_1 = require(\"../../Core/BuildStamp\");\r\nvar DeletableEntity_1 = require(\"../../Core/DeletableEntity\");\r\nvar WebGlHelper_1 = require(\"../../Core/WebGlHelper\");\r\nvar licenseManager3D_1 = require(\"./licenseManager3D\");\r\nvar SciChart3DSurface_1 = require(\"./SciChart3DSurface\");\r\nvar createSingle3dInternal = function (divElement, options) {\r\n (0, chartBuilder_1.ensureRegistrations)();\r\n return new Promise(function (resolve, reject) {\r\n var _a, _b, _c, _d, _e;\r\n var canvases = sciChartInitCommon_1.default.initCanvas(divElement, (_a = options === null || options === void 0 ? void 0 : options.widthAspect) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.heightAspect) !== null && _b !== void 0 ? _b : 0, undefined, undefined, options === null || options === void 0 ? void 0 : options.touchAction);\r\n var loader = (_c = options === null || options === void 0 ? void 0 : options.loader) !== null && _c !== void 0 ? _c : new loader_1.DefaultSciChartLoader();\r\n var loaderDiv = (_d = loader.addChartLoader) === null || _d === void 0 ? void 0 : _d.call(loader, canvases.domDivContainer, (_e = options === null || options === void 0 ? void 0 : options.theme) !== null && _e !== void 0 ? _e : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME);\r\n var webGLSupport = WebGlHelper_1.WebGlHelper.getWebGlSupport();\r\n // console.log(\"webGLSupport\", webGLSupport);\r\n if (webGLSupport === WebGlHelper_1.EWebGLSupport.WebGL2 || webGLSupport === WebGlHelper_1.EWebGLSupport.WebGL1) {\r\n var locateFile = (0, SciChartSurfaceBase_1.getLocateFile)(SciChart3DSurface_1.sciChartConfig3D);\r\n // @ts-ignore\r\n new WasmModule3D({ locateFile: locateFile, noInitialRun: true })\r\n .then(function (wasmContext) {\r\n var _a, _b;\r\n (_a = loader.removeChartLoader) === null || _a === void 0 ? void 0 : _a.call(loader, canvases.domDivContainer, loaderDiv);\r\n // @ts-ignore\r\n wasmContext.doNotCaptureKeyboard = true;\r\n var revocable = (0, DeletableEntity_1.createWasmContextRevocableProxy)(wasmContext);\r\n var customResolve = function (res) {\r\n res.sciChart3DSurface.addDeletable({\r\n delete: function () {\r\n revocable.revoke();\r\n revocable = undefined;\r\n }\r\n });\r\n resolve(res);\r\n };\r\n initDrawEngineSingleChart(revocable.proxy, canvases, customResolve, (_b = options === null || options === void 0 ? void 0 : options.theme) !== null && _b !== void 0 ? _b : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME);\r\n // initDrawEngineSingleChart(\r\n // wasmContext,\r\n // canvases,\r\n // resolve,\r\n // (options?.theme as IThemeProvider) ?? SciChartSurfaceBase.DEFAULT_THEME\r\n // );\r\n (0, BuildStamp_1.checkBuildStamp)(wasmContext);\r\n })\r\n .catch(function (ex) {\r\n var _a;\r\n (_a = loader.removeChartLoader) === null || _a === void 0 ? void 0 : _a.call(loader, canvases.domDivContainer, loaderDiv);\r\n throw ex;\r\n reject(\"Could not load SciChart WebAssembly module.\\n Check your build process and ensure that your scichart3d.wasm, scichart3d.data and scichart3d.js files are from the same version\");\r\n });\r\n }\r\n else {\r\n throw Error(\"Sorry Your browser does not support WebGL.\");\r\n }\r\n });\r\n};\r\nexports.createSingle3dInternal = createSingle3dInternal;\r\n// SINGLE CHART FUNCTIONS\r\n/** @ignore */\r\nvar initDrawEngineSingleChart = function (wasmContext, canvases, resolve, theme) {\r\n // @ts-ignore\r\n wasmContext.preRun.push(function () { return (ENV.SDL_EMSCRIPTEN_KEYBOARD_ELEMENT = \"#chart_WebGL\"); });\r\n var scs;\r\n wasmContext.canvas = canvases.domCanvasWebGL;\r\n var chartInitializer = {\r\n InitializeChart: function () {\r\n scs = new SciChart3DSurface_1.SciChart3DSurface(wasmContext, { canvases: canvases });\r\n scs.applyTheme(theme);\r\n scs.addDeletable({\r\n delete: function () {\r\n // Halt the engine\r\n wasmContext.TSRRequestExit();\r\n frameRenderer3D.delete();\r\n wasmContext.SCRTGetGlobalSampleChartInterface().SetFrameRenderer(null);\r\n wasmContext.SCRTGetGlobalSampleChartInterface().delete();\r\n wasmContext.SCRTSetGlobalSampleChartInterface(null);\r\n licenseManager2D_1.licenseManager.clear();\r\n }\r\n });\r\n setTimeout(function () {\r\n scs.invalidateElement();\r\n (0, licenseManager3D_1.applyLicense3D)(wasmContext, scs, true);\r\n var unsub = sciChartInitCommon_1.default.subscribeToResize(canvases.domChartRoot, canvases.aspect, scs);\r\n scs.addDeletable(unsub);\r\n scs.setIsInitialized();\r\n resolve({ wasmContext: wasmContext, sciChart3DSurface: scs });\r\n }, 0);\r\n },\r\n Draw: function (canvasId) {\r\n if (scs.isInitialized) {\r\n scs.doDrawingLoop();\r\n }\r\n },\r\n Update: function (deltaTime) {\r\n //Logger.log(\"SciChart3DSurface.ts Update()\");\r\n },\r\n ShutDownChart: function () {\r\n //Logger.log(\"SciChart3DSurface.ts ShutDownChart\");\r\n }\r\n };\r\n var chartInitObj = wasmContext.SCRTSampleChartInterface.implement(chartInitializer);\r\n var frameRenderer3D = new wasmContext.SCRTFrameRenderer3D();\r\n chartInitObj.SetFrameRenderer(frameRenderer3D);\r\n chartInitObj.SetFPSCounterEnabled(false);\r\n // This may not be used in the case of 3D charts, but we set the property anyway as its passed down to TSR engine when initialising\r\n chartInitObj.SetWasmBufferSizesKb(SciChartDefaults_1.SciChartDefaults.wasmBufferSizesKb);\r\n wasmContext.SCRTSetGlobalSampleChartInterface(chartInitObj);\r\n // @ts-ignore\r\n wasmContext.callMain();\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.applyLicense3D = exports.forceReapplyLicense3D = void 0;\r\nvar licenseManager2D_1 = require(\"../../Charting/Visuals/licenseManager2D\");\r\n// tslint:disable: no-console\r\nvar getCallbacks3D = function (licenseContext3D, sciChartSurface) {\r\n return {\r\n getLicenseChallenge3D: function () {\r\n var challenge = licenseContext3D.SCRTCredentials.GetLicenseChallenge();\r\n var orderId = licenseContext3D.SCRTCredentials.GetOrderId();\r\n return { challenge: challenge, orderId: orderId };\r\n },\r\n setChallengeResponse3D: function (token) { return licenseContext3D.SCRTCredentials.ApplyLicenseResponse(token); },\r\n setNewLicense3D: function (keyCode) {\r\n var requiresValidation = false;\r\n var trialExpired;\r\n licenseContext3D.SCRTCredentials.SetRuntimeLicenseKeyW(keyCode);\r\n requiresValidation = licenseContext3D.SCRTCredentials.RequiresValidation();\r\n trialExpired =\r\n licenseContext3D.SCRTCredentials.GetLicenseType() ===\r\n licenseContext3D.SCRTLicenseType.LICENSE_TYPE_TRIAL_EXPIRED;\r\n (0, licenseManager2D_1.updateLicenseDisplay)((0, licenseManager2D_1.getLicenseInfo)(licenseContext3D), sciChartSurface, false, true);\r\n return { requiresValidation: requiresValidation, trialExpired: trialExpired };\r\n },\r\n updateLicenseDisplay3D: function () {\r\n return (0, licenseManager2D_1.updateLicenseDisplay)((0, licenseManager2D_1.getLicenseInfo)(licenseContext3D), sciChartSurface, false, true);\r\n }\r\n };\r\n};\r\nvar forceReapplyLicense3D = function () {\r\n shouldApplyLicense3D = true;\r\n};\r\nexports.forceReapplyLicense3D = forceReapplyLicense3D;\r\nvar shouldApplyLicense3D = true;\r\n// let licenseContext3D: TSciChart3D;\r\n// let sciChartSurface3D: SciChart3DSurface;\r\nvar applyLicense3D = function (licenseContext, sciChartSurface, isSingle) {\r\n if (isSingle || shouldApplyLicense3D) {\r\n // licenseContext3D = licenseContext as TSciChart3D;\r\n // sciChartSurface3D = sciChartSurface as SciChart3DSurface;\r\n // set up callbacks\r\n (0, licenseManager2D_1.setCallbacks3D)(getCallbacks3D(licenseContext, sciChartSurface));\r\n (0, licenseManager2D_1.applyLicense)(licenseContext, sciChartSurface);\r\n }\r\n else {\r\n (0, licenseManager2D_1.updateLicenseDisplay)((0, licenseManager2D_1.getLicenseInfo)(licenseContext), sciChartSurface, false, false);\r\n }\r\n if (!isSingle)\r\n shouldApplyLicense3D = false;\r\n};\r\nexports.applyLicense3D = applyLicense3D;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AnimationToken = void 0;\r\nvar AnimationToken = /** @class */ (function () {\r\n function AnimationToken(token, onCompleted) {\r\n this.token = token;\r\n this.onCompleted = onCompleted;\r\n }\r\n AnimationToken.prototype.cancelAnimation = function () {\r\n if (this.token) {\r\n clearInterval(this.token);\r\n this.token = undefined;\r\n }\r\n };\r\n AnimationToken.prototype.completeAnimation = function () {\r\n if (this.token) {\r\n clearInterval(this.token);\r\n this.token = undefined;\r\n }\r\n if (this.onCompleted) {\r\n this.onCompleted();\r\n }\r\n };\r\n return AnimationToken;\r\n}());\r\nexports.AnimationToken = AnimationToken;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SeriesAnimationFiniteStateMachine = exports.AnimationFiniteStateMachine = exports.EAnimationStateTransition = exports.EAnimationState = void 0;\r\nvar NumberUtil_1 = require(\"../NumberUtil\");\r\nvar EAnimationState;\r\n(function (EAnimationState) {\r\n EAnimationState[\"InitialState\"] = \"InitialState\";\r\n EAnimationState[\"Delayed\"] = \"Delayed\";\r\n EAnimationState[\"Running\"] = \"Running\";\r\n EAnimationState[\"Completed\"] = \"Completed\";\r\n})(EAnimationState = exports.EAnimationState || (exports.EAnimationState = {}));\r\nvar EAnimationStateTransition;\r\n(function (EAnimationStateTransition) {\r\n EAnimationStateTransition[\"NoChange\"] = \"NoChange\";\r\n EAnimationStateTransition[\"InitialState_Delayed\"] = \"InitialState_Delayed\";\r\n EAnimationStateTransition[\"InitialState_Running\"] = \"InitialState_Running\";\r\n EAnimationStateTransition[\"InitialState_Completed\"] = \"InitialState_Completed\";\r\n EAnimationStateTransition[\"Delayed_Running\"] = \"Delayed_Running\";\r\n EAnimationStateTransition[\"Running_Completed\"] = \"Running_Completed\";\r\n})(EAnimationStateTransition = exports.EAnimationStateTransition || (exports.EAnimationStateTransition = {}));\r\nvar AnimationFiniteStateMachine = /** @class */ (function () {\r\n function AnimationFiniteStateMachine(animation) {\r\n this.stateProperty = EAnimationState.InitialState;\r\n this.animationProperty = animation;\r\n }\r\n Object.defineProperty(AnimationFiniteStateMachine.prototype, \"state\", {\r\n /**\r\n * Gets the current state\r\n */\r\n get: function () {\r\n return this.stateProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AnimationFiniteStateMachine.prototype, \"animation\", {\r\n /**\r\n * Gets the animation property\r\n */\r\n get: function () {\r\n return this.animationProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Checks the current state\r\n * @param states\r\n */\r\n AnimationFiniteStateMachine.prototype.is = function (states) {\r\n return states.includes(this.stateProperty);\r\n };\r\n /**\r\n * Updates the state\r\n * @param timeElapsed\r\n */\r\n AnimationFiniteStateMachine.prototype.update = function (timeElapsed) {\r\n if (this.stateProperty === EAnimationState.InitialState) {\r\n if (this.animationProperty.delay) {\r\n this.toDelayed();\r\n return EAnimationStateTransition.InitialState_Delayed;\r\n }\r\n if (!this.animationProperty.duration) {\r\n this.toCompleted();\r\n return EAnimationStateTransition.InitialState_Completed;\r\n }\r\n this.toRunning();\r\n return EAnimationStateTransition.InitialState_Running;\r\n }\r\n if (this.stateProperty === EAnimationState.Delayed) {\r\n return this.updateDelayedState(timeElapsed);\r\n }\r\n if (this.stateProperty === EAnimationState.Running) {\r\n return this.updateRunningState(timeElapsed);\r\n }\r\n return EAnimationStateTransition.NoChange;\r\n };\r\n Object.defineProperty(AnimationFiniteStateMachine.prototype, \"animationProgress\", {\r\n /**\r\n * Gets the animation progress, the value from 0 to 1\r\n */\r\n get: function () {\r\n if (this.stateProperty === EAnimationState.Running) {\r\n var progressionFactor = NumberUtil_1.NumberUtil.constrain(this.animationElapsed / this.animationProperty.duration, 0, 1);\r\n return this.animationProperty.ease(progressionFactor);\r\n }\r\n else if (this.stateProperty === EAnimationState.Completed) {\r\n return 1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Changes the state to Completed\r\n */\r\n AnimationFiniteStateMachine.prototype.toCompleted = function () {\r\n this.stateProperty = EAnimationState.Completed;\r\n };\r\n AnimationFiniteStateMachine.prototype.validate = function (from, to) {\r\n if (!from.includes(this.stateProperty)) {\r\n throw Error(\"Transition from state \".concat(this.stateProperty, \" to \").concat(to, \" if forbidden\"));\r\n }\r\n };\r\n AnimationFiniteStateMachine.prototype.toDelayed = function () {\r\n this.animationDelayStartTimestamp = Date.now();\r\n this.animationDelayElapsed = 0;\r\n this.stateProperty = EAnimationState.Delayed;\r\n };\r\n AnimationFiniteStateMachine.prototype.toRunning = function () {\r\n this.animationStartTimestamp = Date.now();\r\n this.animationElapsed = 0;\r\n this.stateProperty = EAnimationState.Running;\r\n };\r\n AnimationFiniteStateMachine.prototype.updateDelayedState = function (timeElapsed) {\r\n this.animationDelayElapsed += timeElapsed;\r\n if (this.animationDelayElapsed >= this.animationProperty.delay) {\r\n this.toRunning();\r\n return EAnimationStateTransition.Delayed_Running;\r\n }\r\n return EAnimationStateTransition.NoChange;\r\n };\r\n AnimationFiniteStateMachine.prototype.updateRunningState = function (timeElapsed) {\r\n this.animationElapsed += timeElapsed;\r\n if (this.animationElapsed >= this.animationProperty.duration) {\r\n this.toCompleted();\r\n return EAnimationStateTransition.Running_Completed;\r\n }\r\n return EAnimationStateTransition.NoChange;\r\n };\r\n return AnimationFiniteStateMachine;\r\n}());\r\nexports.AnimationFiniteStateMachine = AnimationFiniteStateMachine;\r\n// tslint:disable-next-line: max-classes-per-file\r\nvar SeriesAnimationFiniteStateMachine = /** @class */ (function (_super) {\r\n __extends(SeriesAnimationFiniteStateMachine, _super);\r\n function SeriesAnimationFiniteStateMachine(animation, renderableSeries) {\r\n var _this = _super.call(this, animation) || this;\r\n if (renderableSeries) {\r\n _this.initialStylesProperty = animation.getSeriesStyle(renderableSeries);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(SeriesAnimationFiniteStateMachine.prototype, \"animation\", {\r\n /**\r\n * Gets the animation property\r\n */\r\n get: function () {\r\n return this.animationProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SeriesAnimationFiniteStateMachine.prototype, \"initialStyles\", {\r\n /**\r\n * Gets the initial styles for the animation\r\n */\r\n get: function () {\r\n return this.initialStylesProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return SeriesAnimationFiniteStateMachine;\r\n}(AnimationFiniteStateMachine));\r\nexports.SeriesAnimationFiniteStateMachine = SeriesAnimationFiniteStateMachine;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.animateAny = void 0;\r\nvar AnimationToken_1 = require(\"../AnimationToken\");\r\nvar Guard_1 = require(\"../Guard\");\r\nvar NumberUtil_1 = require(\"../NumberUtil\");\r\n/**\r\n * @deprecated Instead create an {@link GenericAnimation} and pass it to sciChartSurface.addAnimation\r\n */\r\nfunction animateAny(durationMs, from, to, onAnimate, interpolate, onCompleted, easingFn) {\r\n Guard_1.Guard.notNull(onAnimate, \"onAnimate\");\r\n Guard_1.Guard.notNull(from, \"from\");\r\n Guard_1.Guard.notNull(to, \"to\");\r\n Guard_1.Guard.notNull(interpolate, \"interpolate\");\r\n var startTime = new Date().getTime();\r\n var endTime = startTime + durationMs;\r\n // start the animation\r\n onAnimate(from);\r\n var token = new AnimationToken_1.AnimationToken(setInterval(function () {\r\n var timeNow = new Date().getTime();\r\n var progressionFactor = NumberUtil_1.NumberUtil.constrain(1 - (endTime - timeNow) / durationMs, 0, 1);\r\n var easedValue = easingFn(progressionFactor);\r\n // Interpolate and notify\r\n var interpolated = interpolate(from, to, easedValue);\r\n onAnimate(interpolated);\r\n if (timeNow > endTime) {\r\n // Call the final onAnimate if not called\r\n if (easedValue !== 1) {\r\n onAnimate(interpolate(from, to, easingFn(1.0)));\r\n }\r\n // end the animation\r\n token.completeAnimation();\r\n }\r\n }, 16.67), onCompleted);\r\n return token;\r\n}\r\nexports.animateAny = animateAny;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DoubleAnimator = void 0;\r\nvar Animator_1 = require(\"./Animator\");\r\nvar EasingFunctions_1 = require(\"./EasingFunctions\");\r\n/**\r\n * A class for animating a double-precision (number) value\r\n */\r\nvar DoubleAnimator = /** @class */ (function () {\r\n function DoubleAnimator() {\r\n }\r\n /**\r\n * @deprecated Instead create an {@link GenericAnimation} and pass it to sciChartSurface.addAnimation\r\n */\r\n DoubleAnimator.animate = function (from, to, durationMs, onAnimate, onCompleted, easingFunction) {\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }\r\n return (0, Animator_1.animateAny)(durationMs, from, to, onAnimate, DoubleAnimator.interpolate, onCompleted, easingFunction);\r\n };\r\n DoubleAnimator.interpolate = function (from, to, interpolationFactor) {\r\n var result = (to - from) * interpolationFactor + from;\r\n return result;\r\n };\r\n return DoubleAnimator;\r\n}());\r\nexports.DoubleAnimator = DoubleAnimator;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.autoReverseEasing = exports.easing = void 0;\r\n/**\r\n * Easing functions used throughout SciChart when animations are used\r\n */\r\nexports.easing = {\r\n /**\r\n * @inheritDoc\r\n */\r\n linear: function (t) { return t; },\r\n /**\r\n * @inheritDoc\r\n */\r\n quadratic: function (t) { return t * (-(t * t) * t + 4 * t * t - 6 * t + 4); },\r\n /**\r\n * @inheritDoc\r\n */\r\n cubic: function (t) { return t * (4 * t * t - 9 * t + 6); },\r\n /**\r\n * @inheritDoc\r\n */\r\n elastic: function (t) { return t * (33 * t * t * t * t - 106 * t * t * t + 126 * t * t - 67 * t + 15); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inQuad: function (t) { return t * t; },\r\n /**\r\n * @inheritDoc\r\n */\r\n outQuad: function (t) { return t * (2 - t); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inOutQuad: function (t) { return (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inCubic: function (t) { return t * t * t; },\r\n /**\r\n * @inheritDoc\r\n */\r\n outCubic: function (t) { return --t * t * t + 1; },\r\n /**\r\n * @inheritDoc\r\n */\r\n inOutCubic: function (t) { return (t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inQuart: function (t) { return t * t * t * t; },\r\n /**\r\n * @inheritDoc\r\n */\r\n outQuart: function (t) { return 1 - --t * t * t * t; },\r\n /**\r\n * @inheritDoc\r\n */\r\n inOutQuart: function (t) { return (t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inQuint: function (t) { return t * t * t * t * t; },\r\n /**\r\n * @inheritDoc\r\n */\r\n outQuint: function (t) { return 1 + --t * t * t * t * t; },\r\n /**\r\n * @inheritDoc\r\n */\r\n inOutQuint: function (t) { return (t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inSine: function (t) { return -Math.cos(t * (Math.PI / 2)) + 1; },\r\n /**\r\n * @inheritDoc\r\n */\r\n outSine: function (t) { return Math.sin(t * (Math.PI / 2)); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inOutSine: function (t) { return -(Math.cos(Math.PI * t) - 1) / 2; },\r\n /**\r\n * @inheritDoc\r\n */\r\n inExpo: function (t) { return Math.pow(2, 10 * (t - 1)); },\r\n /**\r\n * @inheritDoc\r\n */\r\n outExpo: function (t) { return (t === 1 ? 1 : -Math.pow(2, -10 * t) + 1); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inOutExpo: function (t) {\r\n t /= 0.5;\r\n if (t < 1)\r\n return Math.pow(2, 10 * (t - 1)) / 2;\r\n t--;\r\n return (-Math.pow(2, -10 * t) + 2) / 2;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n inCirc: function (t) { return -Math.sqrt(1 - t * t) + 1; },\r\n /**\r\n * @inheritDoc\r\n */\r\n outCirc: function (t) { return Math.sqrt(1 - (t = t - 1) * t); },\r\n /**\r\n * @inheritDoc\r\n */\r\n inOutCirc: function (t) {\r\n t /= 0.5;\r\n if (t < 1)\r\n return -(Math.sqrt(1 - t * t) - 1) / 2;\r\n t -= 2;\r\n return (Math.sqrt(1 - t * t) + 1) / 2;\r\n }\r\n};\r\n/**\r\n * Reversable functions that go from 0..1..0 used throughout SciChart when animations are used\r\n */\r\nexports.autoReverseEasing = {\r\n /**\r\n * No easing acceleration like linear, but it does reverse from 0..1..0\r\n * @param t\r\n */\r\n linear: function (t) { return (t < 0.5 ? t * 2 : 2 - t * 2); }\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GenericAnimation = void 0;\r\nvar guid_1 = require(\"../../utils/guid\");\r\nvar AnimationFiniteStateMachine_1 = require(\"./AnimationFiniteStateMachine\");\r\nvar EasingFunctions_1 = require(\"./EasingFunctions\");\r\n/**\r\n * @summary Defines Animations that can be applied directly to a {@link SciChartSurface} in SciChart's High Performance Real-time\r\n * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}\r\n * @remarks\r\n * When creating the animation, use the options to specify what to update\r\n */\r\nvar GenericAnimation = /** @class */ (function () {\r\n function GenericAnimation(options) {\r\n var _a, _b, _c, _d;\r\n /**\r\n * The animation delay\r\n */\r\n this.delay = 0;\r\n /**\r\n * The animation duration\r\n */\r\n this.duration = 1000;\r\n /**\r\n * Sets the animation easing function\r\n */\r\n this.ease = EasingFunctions_1.easing.linear;\r\n this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n this.delay = (_b = options === null || options === void 0 ? void 0 : options.delay) !== null && _b !== void 0 ? _b : this.delay;\r\n this.duration = (_c = options === null || options === void 0 ? void 0 : options.duration) !== null && _c !== void 0 ? _c : this.duration;\r\n if ((options === null || options === void 0 ? void 0 : options.ease) && typeof options.ease === \"string\") {\r\n options.ease = EasingFunctions_1.easing[options.ease];\r\n }\r\n this.ease = (_d = options === null || options === void 0 ? void 0 : options.ease) !== null && _d !== void 0 ? _d : this.ease;\r\n this.from = options.from;\r\n this.to = options.to;\r\n this.onAnimate = options.onAnimate;\r\n this.onCompleted = options === null || options === void 0 ? void 0 : options.onCompleted;\r\n this.animationFSM = new AnimationFiniteStateMachine_1.AnimationFiniteStateMachine(this);\r\n // Set initial progress now\r\n if (options === null || options === void 0 ? void 0 : options.setInitialValueImmediately)\r\n this.onAnimate(this.from, this.to, 0);\r\n }\r\n Object.defineProperty(GenericAnimation.prototype, \"isComplete\", {\r\n get: function () {\r\n return this.animationFSM.is([AnimationFiniteStateMachine_1.EAnimationState.Completed]);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** Reset the animation to its initial state.\r\n * If reset while running or onCompleted, the animation will remain in the list and run again.\r\n */\r\n GenericAnimation.prototype.reset = function () {\r\n this.animationFSM = new AnimationFiniteStateMachine_1.AnimationFiniteStateMachine(this);\r\n };\r\n /** Advance the animation according to the time elapsed since the last frame */\r\n GenericAnimation.prototype.update = function (timeElapsed) {\r\n var transition = this.animationFSM.update(timeElapsed);\r\n if ([AnimationFiniteStateMachine_1.EAnimationStateTransition.InitialState_Running, AnimationFiniteStateMachine_1.EAnimationStateTransition.Delayed_Running].includes(transition)) {\r\n this.onAnimate(this.from, this.to, 0);\r\n }\r\n if (this.animationFSM.is([AnimationFiniteStateMachine_1.EAnimationState.Running, AnimationFiniteStateMachine_1.EAnimationState.Completed])) {\r\n this.onAnimate(this.from, this.to, this.animationFSM.animationProgress);\r\n }\r\n if ([AnimationFiniteStateMachine_1.EAnimationStateTransition.Running_Completed, AnimationFiniteStateMachine_1.EAnimationStateTransition.InitialState_Completed].includes(transition)) {\r\n if (this.onCompleted)\r\n this.onCompleted();\r\n }\r\n };\r\n /** Cancel the animation. onCompleted will not be called */\r\n GenericAnimation.prototype.cancel = function () {\r\n this.animationFSM.toCompleted();\r\n };\r\n return GenericAnimation;\r\n}());\r\nexports.GenericAnimation = GenericAnimation;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberRangeAnimator = void 0;\r\nvar Guard_1 = require(\"../Guard\");\r\nvar NumberRange_1 = require(\"../NumberRange\");\r\nvar EasingFunctions_1 = require(\"./EasingFunctions\");\r\nvar GenericAnimation_1 = require(\"./GenericAnimation\");\r\n/**\r\n * A class for animating a value of type {@link NumberRange}. Used throughout SciChart to animate\r\n * {@link AxisCore.visibleRange} when zooming or panning.\r\n */\r\nvar NumberRangeAnimator = /** @class */ (function () {\r\n function NumberRangeAnimator() {\r\n }\r\n /**\r\n * Animates a {@link NumberRange} with a start, to value over a specified duration and with an optional completed and easing function\r\n * @param from The start value to animate\r\n * @param to The end value to animate\r\n * @param durationMs The duration of the animation in milliseconds\r\n * @param onAnimate A callback function which is called with intermediate values\r\n * @param onCompleted A callback function which is called when the animation completes\r\n * @param easingFunction An optional easing function. See {@link IEasingMap} for a list of values\r\n */\r\n NumberRangeAnimator.animate = function (from, to, durationMs, onAnimate, onCompleted, easingFunction, isLog) {\r\n if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }\r\n if (isLog === void 0) { isLog = false; }\r\n var animation = new GenericAnimation_1.GenericAnimation({\r\n from: from,\r\n to: to,\r\n duration: durationMs,\r\n onAnimate: function (start, end, progress) {\r\n var interpolate = isLog ? NumberRangeAnimator.interpolateLog : NumberRangeAnimator.interpolate;\r\n var intermediate = interpolate(start, end, progress);\r\n onAnimate(intermediate);\r\n },\r\n delay: 0,\r\n ease: easingFunction,\r\n onCompleted: onCompleted\r\n });\r\n return animation;\r\n };\r\n NumberRangeAnimator.interpolate = function (from, to, interpolationFactor) {\r\n Guard_1.Guard.notNull(from, \"from\");\r\n Guard_1.Guard.notNull(to, \"to\");\r\n var newMin = (to.min - from.min) * interpolationFactor + from.min;\r\n var newMax = (to.max - from.max) * interpolationFactor + from.max;\r\n var result = new NumberRange_1.NumberRange(newMin, newMax);\r\n return result;\r\n };\r\n NumberRangeAnimator.interpolateLog = function (from, to, interpolationFactor) {\r\n Guard_1.Guard.notNull(from, \"from\");\r\n Guard_1.Guard.notNull(to, \"to\");\r\n var newMin = Math.pow(to.min / from.min, interpolationFactor) * from.min;\r\n var newMax = Math.pow(to.max / from.max, interpolationFactor) * from.max;\r\n var result = new NumberRange_1.NumberRange(newMin, newMax);\r\n return result;\r\n };\r\n return NumberRangeAnimator;\r\n}());\r\nexports.NumberRangeAnimator = NumberRangeAnimator;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.checkBuildStamp = exports.libraryVersion = void 0;\r\nvar buildStamp = \"2024-07-12T00:00:00\";\r\nvar result;\r\n// tslint:disable-next-line:no-var-requires\r\nexports.libraryVersion = \"3.4.644\";\r\nvar checkBuildStamp = function (wasmContext) {\r\n if (result !== undefined)\r\n return result;\r\n if (!wasmContext)\r\n return false;\r\n if (wasmContext.SCRTCredentials.GetBuildStamp) {\r\n var wasmBuildStamp = wasmContext.SCRTCredentials.GetBuildStamp();\r\n if (wasmBuildStamp === buildStamp) {\r\n result = true;\r\n return result;\r\n }\r\n else {\r\n console.warn(\"Build stamp diff: JS - \".concat(buildStamp, \"; WASM - \").concat(wasmBuildStamp));\r\n }\r\n }\r\n console.warn(\"The SciChart webassembly module is from a different version than the javascript that is calling it.\\n Ensure that your build process is copying the correct wasm and data files.\");\r\n result = false;\r\n return result;\r\n};\r\nexports.checkBuildStamp = checkBuildStamp;\r\n","\"use strict\";\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createWasmContextRevocableProxy = exports.WasmContextProxyHandler = exports.WasmObjectConstructorProxyHandler = exports.DeletableEntityProxyHandler = exports.DeletableEntity = exports.createTrackableProxy = void 0;\r\nvar MemoryUsageHelper_1 = require(\"../utils/MemoryUsageHelper\");\r\n/** @ignore */\r\nvar createTrackableProxy = function (target, isWasmObject) {\r\n if (isWasmObject === void 0) { isWasmObject = false; }\r\n var disposableEntityId = (0, MemoryUsageHelper_1.generateIdentifier)(target);\r\n var revocableToken = Proxy.revocable(target, new DeletableEntityProxyHandler(disposableEntityId));\r\n MemoryUsageHelper_1.MemoryUsageHelper.objectRegistry.add(target, disposableEntityId, {\r\n proxy: revocableToken.proxy,\r\n revocableToken: revocableToken,\r\n isWasmObject: isWasmObject\r\n });\r\n return revocableToken.proxy;\r\n};\r\nexports.createTrackableProxy = createTrackableProxy;\r\n/** Utility class responsible for adding its instance to {@link MemoryUsageHelper.objectRegistry} when Memory Usage Debug Mode is enabled\r\n * @remarks\r\n * It wraps the returned instance into a proxy object, so internal reference comparisons may fail\r\n * */\r\nvar DeletableEntity = /** @class */ (function () {\r\n function DeletableEntity(entity) {\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {\r\n var target = entity !== null && entity !== void 0 ? entity : this;\r\n return (0, exports.createTrackableProxy)(target, false);\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(\"Error while creating an object proxy: \".concat(err, \" \"));\r\n }\r\n }\r\n return DeletableEntity;\r\n}());\r\nexports.DeletableEntity = DeletableEntity;\r\n/** @ignore */\r\nvar DeletableEntityProxyHandler = /** @class */ (function () {\r\n function DeletableEntityProxyHandler(id) {\r\n this.disposableEntityId = id;\r\n }\r\n DeletableEntityProxyHandler.prototype.construct = function (real, constructParams) {\r\n console.warn(\"construct called on Deletable\", this.disposableEntityId);\r\n return real;\r\n };\r\n DeletableEntityProxyHandler.prototype.apply = function (target, thisArg, argArray) {\r\n console.warn(\"apply called on Deletable\", this.disposableEntityId);\r\n };\r\n DeletableEntityProxyHandler.prototype.get = function (constructedEntity, propertyName, receiver) {\r\n var _this = this;\r\n if (propertyName === \"delete\") {\r\n return function () {\r\n var params = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n params[_i] = arguments[_i];\r\n }\r\n var removedSuccessfully = MemoryUsageHelper_1.MemoryUsageHelper.objectRegistry.remove(_this.disposableEntityId);\r\n if (!removedSuccessfully) {\r\n console.warn(\"Failed to remove \".concat(_this.disposableEntityId, \" from the Object Registry Probably it has been already deleted!\"));\r\n }\r\n return constructedEntity[propertyName].apply(constructedEntity, params);\r\n };\r\n }\r\n return constructedEntity[propertyName];\r\n };\r\n return DeletableEntityProxyHandler;\r\n}());\r\nexports.DeletableEntityProxyHandler = DeletableEntityProxyHandler;\r\n/** @ignore */\r\nvar WasmObjectConstructorProxyHandler = /** @class */ (function () {\r\n function WasmObjectConstructorProxyHandler() {\r\n }\r\n WasmObjectConstructorProxyHandler.prototype.construct = function (targetFunction, constructParams, newTarget) {\r\n var realConstructedEntity = new (targetFunction.bind.apply(targetFunction, __spreadArray([void 0], constructParams, false)))();\r\n //TODO check if DeletableEntityWrapper\r\n return (0, exports.createTrackableProxy)(realConstructedEntity, true);\r\n };\r\n return WasmObjectConstructorProxyHandler;\r\n}());\r\nexports.WasmObjectConstructorProxyHandler = WasmObjectConstructorProxyHandler;\r\n// https://stackoverflow.com/a/48036194\r\nvar handler = {\r\n construct: function () {\r\n return handler;\r\n }\r\n}; //Must return ANY object, so reuse one\r\nvar isConstructor = function (someObj) {\r\n try {\r\n return !!new new Proxy(someObj, handler)();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n};\r\n/** @ignore */\r\nvar WasmContextProxyHandler = /** @class */ (function () {\r\n function WasmContextProxyHandler() {\r\n this.constructorProxyHandler = new WasmObjectConstructorProxyHandler();\r\n }\r\n WasmContextProxyHandler.prototype.get = function (target, name, receiver) {\r\n var originalExposedProperty = target[name];\r\n var isNativeObjectConstructor = isConstructor(originalExposedProperty);\r\n if (isNativeObjectConstructor) {\r\n return new Proxy(originalExposedProperty, this.constructorProxyHandler);\r\n }\r\n return originalExposedProperty;\r\n };\r\n return WasmContextProxyHandler;\r\n}());\r\nexports.WasmContextProxyHandler = WasmContextProxyHandler;\r\n/** @ignore */\r\nvar createWasmContextRevocableProxy = function (wasmContext) {\r\n MemoryUsageHelper_1.MemoryUsageHelper.register(wasmContext, \"wasmContext\");\r\n var proxyHandler = {};\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {\r\n proxyHandler = new WasmContextProxyHandler();\r\n }\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n return Proxy.revocable(wasmContext, proxyHandler);\r\n};\r\nexports.createWasmContextRevocableProxy = createWasmContextRevocableProxy;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.deleteSafe = void 0;\r\n/**\r\n * Checks if an object implements {@link IDeletable}, then calls {@link IDeletable.delete}\r\n * @param object\r\n */\r\nfunction deleteSafe(object) {\r\n object === null || object === void 0 ? void 0 : object.delete();\r\n return undefined;\r\n}\r\nexports.deleteSafe = deleteSafe;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Dictionary = void 0;\r\n/**\r\n * Generic dictionary class keyed by string\r\n */\r\nvar Dictionary = /** @class */ (function () {\r\n function Dictionary() {\r\n this.items = {};\r\n this.countProperty = 0;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n Dictionary.prototype.containsKey = function (key) {\r\n return this.items.hasOwnProperty(key);\r\n };\r\n Object.defineProperty(Dictionary.prototype, \"count\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.countProperty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * @inheritDoc\r\n */\r\n Dictionary.prototype.add = function (key, value) {\r\n if (!this.items.hasOwnProperty(key)) {\r\n this.countProperty++;\r\n }\r\n this.items[key] = value;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Dictionary.prototype.remove = function (key) {\r\n var val = this.items[key];\r\n delete this.items[key];\r\n this.countProperty--;\r\n return val;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Dictionary.prototype.item = function (key) {\r\n return this.items[key];\r\n };\r\n Object.defineProperty(Dictionary.prototype, \"keys\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return Object.keys(this.items);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Dictionary.prototype, \"values\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n var _this = this;\r\n return this.keys.map(function (key) { return _this.items[key]; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Clears the dictionary\r\n */\r\n Dictionary.prototype.clear = function () {\r\n this.items = {};\r\n this.countProperty = 0;\r\n };\r\n return Dictionary;\r\n}());\r\nexports.Dictionary = Dictionary;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EventHandler = void 0;\r\n/**\r\n * An EventHandler is a generic class that enables subscription, unsubscription to an event\r\n * @description\r\n * Declare an event as a property in your class like this\r\n * ```ts\r\n * public class MyCLass {\r\n * public EventHandler someEvent = new EventHandler();\r\n * }\r\n * ```\r\n *\r\n * Subscribe to the event like this\r\n * ```ts\r\n * const myClass = new MyClass();\r\n * myClass.subscribe((event) => {\r\n * console.log(event);\r\n * });\r\n * ```\r\n *\r\n * Publish an event like this\r\n * ```ts\r\n * const myClass = new MyClass();\r\n * myClass.raiseEvent(\"Hi there!\");\r\n * ```\r\n */\r\nvar EventHandler = /** @class */ (function () {\r\n function EventHandler() {\r\n this.handlers = [];\r\n }\r\n /**\r\n * Subscribes to the event\r\n * @param handler\r\n */\r\n EventHandler.prototype.subscribe = function (handler) {\r\n if (!this.handlers.includes(handler)) {\r\n this.handlers.push(handler);\r\n }\r\n };\r\n /**\r\n * Unsubscribes from the event\r\n * @param handler\r\n */\r\n EventHandler.prototype.unsubscribe = function (handler) {\r\n this.handlers = this.handlers.filter(function (h) { return h !== handler; });\r\n };\r\n /**\r\n * Unsubscribes all handlers from the event\r\n */\r\n EventHandler.prototype.unsubscribeAll = function () {\r\n this.handlers = [];\r\n };\r\n /**\r\n * Raises the event with the provided data object\r\n * @param data\r\n */\r\n EventHandler.prototype.raiseEvent = function (data) {\r\n this.handlers.slice(0).forEach(function (h) { return h(data); });\r\n };\r\n return EventHandler;\r\n}());\r\nexports.EventHandler = EventHandler;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.sciChartPieDestinations = exports.sciChart3DSingleDestinations = exports.sciChartSingleDestinations = exports.sciChart3DDestinations = exports.sciChartDestinations = void 0;\r\n/** @ignore */\r\nexports.sciChartDestinations = [];\r\n/** @ignore */\r\nexports.sciChart3DDestinations = [];\r\n/** @ignore */\r\nexports.sciChartSingleDestinations = [];\r\n/** @ignore */\r\nexports.sciChart3DSingleDestinations = [];\r\n/** @ignore */\r\nexports.sciChartPieDestinations = [];\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GradientParams = void 0;\r\n/**\r\n * A class used to define gradients by a number of gradient stops, with a start and end point\r\n */\r\nvar GradientParams = /** @class */ (function () {\r\n /**\r\n * @description Creates gradient brush params.\r\n * @param startPoint x and y values should be from 0 to 1, 0 - start of the viewRect and 1 - end of the viewRect\r\n * @param endPoint x and y values should be from 0 to 1\r\n * @param gradientStops 2 or more gradient stop point with color\r\n */\r\n function GradientParams(startPoint, endPoint, gradientStops) {\r\n this.gradientStops = [];\r\n if (gradientStops.length < 2) {\r\n throw Error(\"At least two gradient point should be provided\");\r\n }\r\n if (startPoint.x < 0 || startPoint.y < 0 || startPoint.x > 1 || startPoint.y > 1) {\r\n throw Error(\"startPoint values should be within [0,1]\");\r\n }\r\n if (endPoint.x < 0 || endPoint.y < 0 || endPoint.x > 1 || endPoint.y > 1) {\r\n throw Error(\"endPoint values should be within [0,1]\");\r\n }\r\n gradientStops.forEach(function (el) {\r\n if (el.offset < 0 || el.offset > 1) {\r\n throw Error(\"gradientStops offset should be within [0,1]\");\r\n }\r\n });\r\n this.startPoint = startPoint;\r\n this.endPoint = endPoint;\r\n this.gradientStops = gradientStops;\r\n }\r\n return GradientParams;\r\n}());\r\nexports.GradientParams = GradientParams;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Guard = void 0;\r\nvar isRealNumber_1 = require(\"../utils/isRealNumber\");\r\n/**\r\n * Guard class for sanity-checking (null checking, check if property is true, check arrays same length etc...)\r\n */\r\nvar Guard = /** @class */ (function () {\r\n function Guard() {\r\n }\r\n /**\r\n * Asserts the argument is not null\r\n * @param arg The argument\r\n * @param name The argument name\r\n * @throws Error - an error when the argument is null or undefined\r\n */\r\n Guard.notNull = function (arg, name) {\r\n if (arg === undefined || arg === null) {\r\n throw new Error(\"Argument \" + name + \" must not be undefined\");\r\n }\r\n };\r\n /**\r\n * Asserts a parameter is true\r\n * @param value\r\n * @param message The message to show if not true\r\n * @throws Error - an error when the parameter is false\r\n */\r\n Guard.isTrue = function (value, message) {\r\n if (!value) {\r\n throw new Error(message);\r\n }\r\n };\r\n /**\r\n * Asserts two arrays are not null (undefined) and are the same legnth\r\n * @param arg The first array\r\n * @param name1 The first array parameter name\r\n * @param arg2 The second array\r\n * @param name2 The second array parameter name\r\n * @throws Error - an error when the arrays are not the same length\r\n */\r\n Guard.arraysSameLength = function (arg, name1, arg2, name2) {\r\n this.notNull(arg, name1);\r\n this.notNull(arg2, name2);\r\n if (arg.length !== arg2.length) {\r\n throw new Error(\"Arrays \".concat(name1, \" and \").concat(name2, \" must have the same length\"));\r\n }\r\n };\r\n /**\r\n * Asserts multiple arrays are not null (undefined) and are the same legnth\r\n * @param args The array of arrays\r\n * @throws Error - an error when the arrays are not the same length\r\n */\r\n Guard.arraysSameLengthArr = function (args) {\r\n var _this = this;\r\n if (args === void 0) { args = []; }\r\n args.forEach(function (el) {\r\n _this.notNull(el.arg, el.name);\r\n });\r\n if (args.length >= 0) {\r\n var firstArgLength_1 = args[0].arg.length;\r\n var firstArgName_1 = args[0].name;\r\n args.forEach(function (el) {\r\n if (el.arg.length !== firstArgLength_1) {\r\n throw new Error(\"Arrays \".concat(firstArgName_1, \" and \").concat(el.name, \" must have the same length\"));\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Asserts a numeric argument is a real number: not null (undefined), not NaN and not infinite\r\n * @param d\r\n * @param name\r\n */\r\n Guard.argumentIsRealNumber = function (d, name) {\r\n if (!(0, isRealNumber_1.isRealNumber)(d)) {\r\n throw new Error(\"Argument \".concat(name, \" must be a real number (not infinite, not NAN)\"));\r\n }\r\n };\r\n /**\r\n * Asserts a numeric argument is a real number: not null (undefined), not NaN and not infinite\r\n * @param d\r\n * @param name\r\n */\r\n Guard.argumentIsRealInteger = function (d, name) {\r\n if (!Number.isInteger(d) || !(0, isRealNumber_1.isRealNumber)(d)) {\r\n throw new Error(\"Argument \".concat(name, \" must be a real integer number (not infinite, not NAN)\"));\r\n }\r\n };\r\n return Guard;\r\n}());\r\nexports.Guard = Guard;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.List = void 0;\r\n/**\r\n * Generic class for a dynamic List or array\r\n */\r\nvar List = /** @class */ (function () {\r\n function List() {\r\n this.items = [];\r\n }\r\n /**\r\n * gets the list size\r\n */\r\n List.prototype.size = function () {\r\n return this.items.length;\r\n };\r\n /**\r\n * Adds an item to the list\r\n * @param value\r\n */\r\n List.prototype.add = function (value) {\r\n this.items.push(value);\r\n };\r\n /**\r\n * gets the item at index\r\n * @param index\r\n */\r\n List.prototype.get = function (index) {\r\n return this.items[index];\r\n };\r\n return List;\r\n}());\r\nexports.List = List;\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseManager = void 0;\r\nvar ModifierMouseArgs_1 = require(\"../../Charting/ChartModifiers/ModifierMouseArgs\");\r\nvar SciChartSurfaceBase_1 = require(\"../../Charting/Visuals/SciChartSurfaceBase\");\r\nvar DpiHelper_1 = require(\"../../Charting/Visuals/TextureManager/DpiHelper\");\r\nvar array_1 = require(\"../../utils/array\");\r\nvar Guard_1 = require(\"../Guard\");\r\nvar EMouseEventType;\r\n(function (EMouseEventType) {\r\n EMouseEventType[EMouseEventType[\"Move\"] = 0] = \"Move\";\r\n EMouseEventType[EMouseEventType[\"Down\"] = 1] = \"Down\";\r\n EMouseEventType[EMouseEventType[\"Up\"] = 2] = \"Up\";\r\n EMouseEventType[EMouseEventType[\"Wheel\"] = 3] = \"Wheel\";\r\n EMouseEventType[EMouseEventType[\"Click\"] = 4] = \"Click\";\r\n EMouseEventType[EMouseEventType[\"Leave\"] = 5] = \"Leave\";\r\n EMouseEventType[EMouseEventType[\"Enter\"] = 6] = \"Enter\";\r\n EMouseEventType[EMouseEventType[\"Cancel\"] = 7] = \"Cancel\";\r\n EMouseEventType[EMouseEventType[\"Drop\"] = 8] = \"Drop\";\r\n})(EMouseEventType || (EMouseEventType = {}));\r\n/**\r\n * The MouseManager handles mouse and touch events from any {@link IEventListenerSource} and publishes events to any {@link IReceiveMouseEvents}\r\n * type\r\n * @remarks\r\n * Used internally by the {@link SciChartSurface} and {@link SciChart3DSurface} to manage and route mouse eents\r\n */\r\nvar MouseManager = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the {@link MouseManager}\r\n * @param target The target {@link SciChartSurfaceBase} that we are listening to events on\r\n */\r\n function MouseManager(target) {\r\n /**\r\n * For subCharts - to track if the mousepointer is over the subChart, so we can fake Enter and Leave events\r\n */\r\n this.isOver = false;\r\n /**\r\n * Max allowed interval between taps for them to be considered a double tap action.\r\n * @remarks used by double tap polyfill\r\n */\r\n this.maxTapDuration = 500;\r\n /**\r\n * Toggles usage of double tap polyfill\r\n */\r\n this.enableDoubleTapPolyfill = true;\r\n /**\r\n * Defines whether double tap polyfill should always be used\r\n */\r\n this.forceDoubleTapPolyfill = false;\r\n // We allow null target for testing purpose\r\n this.sciChartSurface = target;\r\n this.onPointerMove = this.onPointerMove.bind(this);\r\n this.onPointerDown = this.onPointerDown.bind(this);\r\n this.onPointerUp = this.onPointerUp.bind(this);\r\n this.onMouseWheel = this.onMouseWheel.bind(this);\r\n this.onDoubleClick = this.onDoubleClick.bind(this);\r\n this.onMouseLeave = this.onMouseLeave.bind(this);\r\n this.onMouseEnter = this.onMouseEnter.bind(this);\r\n this.onContextMenu = this.onContextMenu.bind(this);\r\n this.onPointerCancel = this.onPointerCancel.bind(this);\r\n this.onDrop = this.onDrop.bind(this);\r\n }\r\n /**\r\n * Used internally - subscribes to mouse events on the source\r\n * @param source The source element, must implement {@link IEventListenerSource} which any HTML5 element does\r\n */\r\n MouseManager.prototype.subscribe = function (source) {\r\n Guard_1.Guard.notNull(source, \"source\");\r\n this.unsubscribe();\r\n this.canvas = source;\r\n source.addEventListener(\"pointermove\", this.onPointerMove);\r\n source.addEventListener(\"pointerdown\", this.onPointerDown);\r\n source.addEventListener(\"pointerup\", this.onPointerUp);\r\n source.addEventListener(\"pointercancel\", this.onPointerCancel);\r\n source.addEventListener(\"wheel\", this.onMouseWheel);\r\n source.addEventListener(\"dblclick\", this.onDoubleClick);\r\n source.addEventListener(\"mouseleave\", this.onMouseLeave);\r\n source.addEventListener(\"mouseenter\", this.onMouseEnter);\r\n source.addEventListener(\"contextmenu\", this.onContextMenu);\r\n source.addEventListener(\"drop\", this.onDrop);\r\n };\r\n /**\r\n * Used internally - unsubscribes from mouse events\r\n */\r\n MouseManager.prototype.unsubscribe = function () {\r\n if (this.canvas) {\r\n this.canvas.removeEventListener(\"pointermove\", this.onPointerMove);\r\n this.canvas.removeEventListener(\"pointerdown\", this.onPointerDown);\r\n this.canvas.removeEventListener(\"pointerup\", this.onPointerUp);\r\n this.canvas.removeEventListener(\"pointercancel\", this.onPointerCancel);\r\n this.canvas.removeEventListener(\"wheel\", this.onMouseWheel);\r\n this.canvas.removeEventListener(\"dblclick\", this.onDoubleClick);\r\n this.canvas.removeEventListener(\"mouseleave\", this.onMouseLeave);\r\n this.canvas.removeEventListener(\"mouseenter\", this.onMouseEnter);\r\n this.canvas.removeEventListener(\"contextmenu\", this.onContextMenu);\r\n this.canvas.removeEventListener(\"drop\", this.onDrop);\r\n }\r\n this.canvas = null;\r\n };\r\n MouseManager.prototype.onPointerCancel = function (event) {\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromPointerEvent(event);\r\n this.modifierPointerCancel(modifierEvent);\r\n };\r\n /**\r\n * Internal function called when 'pointermove' event is fired on the target element\r\n * @param event The {@link PointerEvent}\r\n */\r\n MouseManager.prototype.onPointerMove = function (event) {\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromPointerEvent(event);\r\n this.modifierMouseMove(modifierEvent);\r\n };\r\n /**\r\n * Internal function called when 'pointerdown' event is fired on the target element\r\n * @param event The {@link PointerEvent}\r\n */\r\n MouseManager.prototype.onPointerDown = function (event) {\r\n // To prevent default browser actions (like fast scroll for mouse wheel click and dragging of selected elements)\r\n // call args.nativeEvent.preventDefault() in the chart modifier instead of calling event.preventDefault() here\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromPointerEvent(event);\r\n this.modifierMouseDown(modifierEvent);\r\n // workaround for handling double tap in case \"dbclick\" is not fired\r\n // (usually happens if touch-action is restricting the event).\r\n // If enabled, polyfill will be used on the first occurrence of double tap\r\n // to check if the event is captured by browser and fired as `dbclick`.\r\n // Then, if double tap is captured natively, the polyfill will not be used on subsequent onPointerDown calls\r\n var shouldUsePolyfillForDoubleTap = this.forceDoubleTapPolyfill || (this.enableDoubleTapPolyfill && !this.supportsDoubleTap);\r\n var isTouchEvent = event.pointerType === \"touch\" || event.pointerType === \"pen\";\r\n if (shouldUsePolyfillForDoubleTap && isTouchEvent) {\r\n var currentTime = new Date().getTime();\r\n var wasTappedBefore = !!this.lastTapTime;\r\n var satisfiesDoubleTapInterval = currentTime - this.lastTapTime < this.maxTapDuration;\r\n var isSingleTouchEvent = event.isPrimary;\r\n if (wasTappedBefore && isSingleTouchEvent && satisfiesDoubleTapInterval) {\r\n this.lastTapTime = undefined;\r\n // mark that double tap event was already handled\r\n this.doubleTapHandled = true;\r\n // execute double click behavior\r\n var tapEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromPointerEvent(event);\r\n this.modifierDoubleClick(tapEvent);\r\n }\r\n else {\r\n this.lastTapTime = currentTime;\r\n this.doubleTapHandled = false;\r\n }\r\n }\r\n else {\r\n this.doubleTapHandled = false;\r\n }\r\n };\r\n /**\r\n * Internal function called when 'pointerup' event is fired on the target element\r\n * @param event The {@link PointerEvent}\r\n */\r\n MouseManager.prototype.onPointerUp = function (event) {\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromPointerEvent(event);\r\n this.modifierMouseUp(modifierEvent);\r\n };\r\n /**\r\n * Internal function called when 'dblclick' event is fired on the target element\r\n * @param event The {@link PointerEvent}\r\n */\r\n MouseManager.prototype.onDoubleClick = function (event) {\r\n if (this.doubleTapHandled) {\r\n // source of `dbclick` event was a double tap\r\n this.supportsDoubleTap = true;\r\n // since event already handled by polyfill\r\n return;\r\n }\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromMouseEvent(event);\r\n this.modifierDoubleClick(modifierEvent);\r\n };\r\n /**\r\n * Internal function called when 'wheel' event is fired on the target element\r\n * @param event The {@link PointerEvent}\r\n */\r\n MouseManager.prototype.onMouseWheel = function (event) {\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromWheelEvent(event);\r\n this.modifierMouseWheel(modifierEvent);\r\n if (modifierEvent.handled) {\r\n event.preventDefault();\r\n }\r\n };\r\n /**\r\n * Internal function called when 'mouseleave' event is fired on the target element\r\n * @param event The {@link PointerEvent}\r\n */\r\n MouseManager.prototype.onMouseLeave = function (event) {\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromMouseEvent(event);\r\n this.modifierMouseLeave(modifierEvent);\r\n };\r\n /**\r\n * Internal function called when 'mouseenter' event is fired on the target element\r\n * @param event The {@link PointerEvent}\r\n */\r\n MouseManager.prototype.onMouseEnter = function (event) {\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromMouseEvent(event);\r\n this.modifierMouseEnter(modifierEvent);\r\n };\r\n /**\r\n * Internal function called when 'contextmenu' event is fired on the target element\r\n * @param event The {@link PointerEvent}\r\n */\r\n MouseManager.prototype.onContextMenu = function (event) {\r\n // prevent context menu on chart elements\r\n event.preventDefault();\r\n };\r\n MouseManager.prototype.onDrop = function (event) {\r\n var modifierEvent = ModifierMouseArgs_1.ModifierMouseArgs.fromMouseEvent(event);\r\n this.modifierDrop(modifierEvent);\r\n };\r\n MouseManager.prototype.modifierPointerCancel = function (args) {\r\n var _this = this;\r\n if (args.isMaster) {\r\n args.target.releasePointerCapture(args.pointerId);\r\n }\r\n this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierPointerCancel(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_1 = this.getMasterData(this.sciChartSurface, args);\r\n this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var argsCopy = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_1);\r\n scs.mouseManager.modifierPointerCancel(argsCopy);\r\n });\r\n });\r\n this.updateSubCharts(args, EMouseEventType.Cancel);\r\n }\r\n };\r\n /**\r\n * Internal function called to route a mouse move event to all {@link sciChartSurface.chartModifiers}\r\n * @param args The {@link ModifierMouseArgs} to route\r\n * @remarks Event routing stops if any event marks {@link ModifierMouseArgs.handled} as true. To override this,\r\n * the user must set {@link ChartModifierBase.receiveHandledEvents} = true.\r\n */\r\n MouseManager.prototype.modifierMouseMove = function (args) {\r\n var _this = this;\r\n // Annotation Adorners\r\n if (this.sciChartSurface.surfaceType === SciChartSurfaceBase_1.ESurfaceType.SciChartSurfaceType) {\r\n var scs = this.sciChartSurface;\r\n if (scs.adornerLayer.isAnnotationSelected) {\r\n var currentAnnotation = scs.adornerLayer.selectedAnnotation;\r\n if (currentAnnotation.isDraggingStarted) {\r\n currentAnnotation.onDragAdorner(args);\r\n }\r\n }\r\n }\r\n this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierMouseMove(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_2 = this.getMasterData(this.sciChartSurface, args);\r\n this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_2);\r\n scs.mouseManager.modifierMouseMove(args2);\r\n });\r\n });\r\n this.updateSubCharts(args, EMouseEventType.Move);\r\n }\r\n };\r\n /**\r\n * Internal function called to route a mouse down event to all {@link sciChartSurface.chartModifiers}\r\n * @param args The {@link ModifierMouseArgs} to route\r\n * @remarks Event routing stops if any event marks {@link ModifierMouseArgs.handled} as true. To override this,\r\n * the user must set {@link ChartModifierBase.receiveHandledEvents} = true.\r\n */\r\n MouseManager.prototype.modifierMouseDown = function (args) {\r\n var _this = this;\r\n var _a;\r\n // allow capturing mouse events outside when pointer is of canvas\r\n if (args.isMaster) {\r\n (_a = args.target) === null || _a === void 0 ? void 0 : _a.setPointerCapture(args.pointerId);\r\n }\r\n var updateModifiers = function () {\r\n _this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierMouseDown(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_3 = _this.getMasterData(_this.sciChartSurface, args);\r\n _this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_3);\r\n scs.mouseManager.modifierMouseDown(args2);\r\n });\r\n });\r\n _this.updateSubCharts(args, EMouseEventType.Down);\r\n }\r\n };\r\n if (args.isMaster) {\r\n var selectAnnotationAndUpdateModifiers = function (_scs) {\r\n _scs.adornerLayer.selectAnnotation(args);\r\n var currentAnnotation = _scs.adornerLayer.selectedAnnotation;\r\n if (currentAnnotation) {\r\n if (currentAnnotation.onDragStarted(args)) {\r\n _this.modifierMouseMove(args);\r\n }\r\n }\r\n else {\r\n updateModifiers();\r\n }\r\n };\r\n // Annotation Adorners\r\n if (this.sciChartSurface.surfaceType === SciChartSurfaceBase_1.ESurfaceType.SciChartSurfaceType) {\r\n var scs = this.sciChartSurface;\r\n var currentAnnotation = scs.adornerLayer.selectedAnnotation;\r\n if (currentAnnotation) {\r\n var isDraggingStarted = currentAnnotation.onDragStarted(args);\r\n if (!isDraggingStarted) {\r\n selectAnnotationAndUpdateModifiers(scs);\r\n }\r\n }\r\n else {\r\n selectAnnotationAndUpdateModifiers(scs);\r\n }\r\n }\r\n else {\r\n updateModifiers();\r\n }\r\n }\r\n else {\r\n // Process even if not master so ZoomPan can work with modifierGroups\r\n updateModifiers();\r\n }\r\n };\r\n /**\r\n * Internal function called to route a mouse up event to all {@link sciChartSurface.chartModifiers}\r\n * @param args The {@link ModifierMouseArgs} to route\r\n * @remarks Event routing stops if any event marks {@link ModifierMouseArgs.handled} as true. To override this,\r\n * the user must set {@link ChartModifierBase.receiveHandledEvents} = true.\r\n */\r\n MouseManager.prototype.modifierMouseUp = function (args) {\r\n var _this = this;\r\n var _a;\r\n if (args.isMaster) {\r\n (_a = args.target) === null || _a === void 0 ? void 0 : _a.releasePointerCapture(args.pointerId);\r\n }\r\n // Annotation Adorners\r\n if (this.sciChartSurface.surfaceType === SciChartSurfaceBase_1.ESurfaceType.SciChartSurfaceType) {\r\n var scs = this.sciChartSurface;\r\n if (scs.adornerLayer.isAnnotationSelected) {\r\n var currentAnnotation = scs.adornerLayer.selectedAnnotation;\r\n if (currentAnnotation.isDraggingStarted) {\r\n currentAnnotation.onDragEnded();\r\n }\r\n }\r\n }\r\n this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierMouseUp(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_4 = this.getMasterData(this.sciChartSurface, args);\r\n this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_4);\r\n scs.mouseManager.modifierMouseUp(args2);\r\n });\r\n });\r\n this.updateSubCharts(args, EMouseEventType.Up);\r\n }\r\n };\r\n /**\r\n * Internal function called to route a mouse wheel event to all {@link sciChartSurface.chartModifiers}\r\n * @param args The {@link ModifierMouseArgs} to route\r\n * @remarks Event routing stops if any event marks {@link ModifierMouseArgs.handled} as true. To override this,\r\n * the user must set {@link ChartModifierBase.receiveHandledEvents} = true.\r\n */\r\n MouseManager.prototype.modifierMouseWheel = function (args) {\r\n var _this = this;\r\n this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierMouseWheel(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_5 = this.getMasterData(this.sciChartSurface, args);\r\n this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_5);\r\n scs.mouseManager.modifierMouseWheel(args2);\r\n });\r\n });\r\n this.updateSubCharts(args, EMouseEventType.Wheel);\r\n }\r\n };\r\n /**\r\n * Internal function called to route a mouse double click event to all {@link sciChartSurface.chartModifiers}\r\n * @param args The {@link ModifierMouseArgs} to route\r\n * @remarks Event routing stops if any event marks {@link ModifierMouseArgs.handled} as true. To override this,\r\n * the user must set {@link ChartModifierBase.receiveHandledEvents} = true.\r\n */\r\n MouseManager.prototype.modifierDoubleClick = function (args) {\r\n var _this = this;\r\n this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierDoubleClick(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_6 = this.getMasterData(this.sciChartSurface, args);\r\n this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_6);\r\n scs.mouseManager.modifierDoubleClick(args2);\r\n });\r\n });\r\n this.updateSubCharts(args, EMouseEventType.Click);\r\n }\r\n };\r\n /**\r\n * Internal function called to route a mouse leave event to all {@link sciChartSurface.chartModifiers}\r\n * @param args The {@link ModifierMouseArgs} to route\r\n * @remarks Event routing stops if any event marks {@link ModifierMouseArgs.handled} as true. To override this,\r\n * the user must set {@link ChartModifierBase.receiveHandledEvents} = true.\r\n */\r\n MouseManager.prototype.modifierMouseLeave = function (args) {\r\n var _this = this;\r\n this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierMouseLeave(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_7 = this.getMasterData(this.sciChartSurface, args);\r\n this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_7);\r\n scs.mouseManager.modifierMouseLeave(args2);\r\n });\r\n });\r\n this.updateSubCharts(args, EMouseEventType.Leave);\r\n }\r\n };\r\n /**\r\n * Internal function called to route a mouse enter event to all {@link sciChartSurface.chartModifiers}\r\n * @param args The {@link ModifierMouseArgs} to route\r\n * @remarks Event routing stops if any event marks {@link ModifierMouseArgs.handled} as true. To override this,\r\n * the user must set {@link ChartModifierBase.receiveHandledEvents} = true.\r\n */\r\n MouseManager.prototype.modifierMouseEnter = function (args) {\r\n var _this = this;\r\n this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierMouseEnter(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_8 = this.getMasterData(this.sciChartSurface, args);\r\n this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_8);\r\n scs.mouseManager.modifierMouseEnter(args2);\r\n });\r\n });\r\n this.updateSubCharts(args, EMouseEventType.Enter);\r\n }\r\n };\r\n /**\r\n * Internal function called to route a drop event to all {@link sciChartSurface.chartModifiers}\r\n * @param args The {@link ModifierMouseArgs} to route\r\n * @remarks Event routing stops if any event marks {@link ModifierMouseArgs.handled} as true. To override this,\r\n * the user must set {@link ChartModifierBase.receiveHandledEvents} = true.\r\n */\r\n MouseManager.prototype.modifierDrop = function (args) {\r\n var _this = this;\r\n this.chartModifiers.forEach(function (cm) {\r\n if (cm.canReceiveMouseEvents && (!args.handled || cm.receiveHandledEvents)) {\r\n if (args.isMaster || (!args.isMaster && cm.modifierGroup === args.modifierGroup)) {\r\n cm.modifierDrop(args, _this.sciChartSurface);\r\n }\r\n }\r\n });\r\n if (args.isMaster) {\r\n var masterData_9 = this.getMasterData(this.sciChartSurface, args);\r\n this.chartModifierGroups.forEach(function (modifierGroup) {\r\n _this.sciChartSurface.otherSurfaces.forEach(function (scs) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copy(args, modifierGroup, _this.sciChartSurface.seriesViewRect, scs.seriesViewRect, masterData_9);\r\n scs.mouseManager.modifierDrop(args2);\r\n });\r\n });\r\n this.updateSubCharts(args, EMouseEventType.Drop);\r\n }\r\n };\r\n /**\r\n * Get data from the master surface which will be passed to other surfaces when modifierGroups are used.\r\n * Use this if you want to use the data value from the master surface in the modifier on the other surfaces\r\n */\r\n MouseManager.prototype.getMasterData = function (sciChartSurface, args) {\r\n return {};\r\n };\r\n Object.defineProperty(MouseManager.prototype, \"chartModifiers\", {\r\n get: function () {\r\n return this.sciChartSurface.chartModifiers.asArray();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(MouseManager.prototype, \"chartModifierGroups\", {\r\n get: function () {\r\n var arr = this.chartModifiers.filter(function (cm) { return cm.modifierGroup !== undefined; }).map(function (el) { return el.modifierGroup; });\r\n return (0, array_1.getUniqueValues)(arr);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n MouseManager.prototype.updateSubCharts = function (args, eventType) {\r\n var _this = this;\r\n var subCharts = this.sciChartSurface.subCharts;\r\n if (!subCharts || subCharts.length === 0)\r\n return;\r\n var currentActiveSubChart = subCharts === null || subCharts === void 0 ? void 0 : subCharts.find(function (scs) {\r\n var _a = scs.padding, top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\r\n var _b = args.mousePoint, x = _b.x, y = _b.y;\r\n var xns = x / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var yns = y / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var _c = _this.sciChartSurface.renderSurface.viewportSize, width = _c.width, height = _c.height;\r\n var wns = width / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n var hns = height / DpiHelper_1.DpiHelper.PIXEL_RATIO;\r\n return left <= xns && xns <= wns - right && top <= yns && yns <= hns - bottom;\r\n });\r\n var handledBySubchart = false;\r\n subCharts === null || subCharts === void 0 ? void 0 : subCharts.forEach(function (scs) {\r\n var subEventType = eventType;\r\n var isActiveSubChartEvent = true;\r\n if (scs.mouseManager.isOver) {\r\n if (scs !== currentActiveSubChart) {\r\n scs.mouseManager.isOver = false;\r\n // Leaving to surface\r\n if (subEventType === EMouseEventType.Move) {\r\n var leaveArgs = new ModifierMouseArgs_1.ModifierMouseArgs(args.mousePoint, args);\r\n handledBySubchart =\r\n handledBySubchart ||\r\n _this.processSubChartEvent(EMouseEventType.Leave, scs, leaveArgs, subCharts, undefined);\r\n }\r\n // If not over the subchart, don't process anything except cancellation events\r\n if (subEventType !== EMouseEventType.Cancel && subEventType !== EMouseEventType.Up) {\r\n subEventType = undefined;\r\n }\r\n }\r\n }\r\n else {\r\n if (scs === currentActiveSubChart) {\r\n scs.mouseManager.isOver = true;\r\n // Entering from surface\r\n if (subEventType === EMouseEventType.Move) {\r\n var enterArgs = new ModifierMouseArgs_1.ModifierMouseArgs(args.mousePoint, args);\r\n handledBySubchart =\r\n handledBySubchart ||\r\n _this.processSubChartEvent(EMouseEventType.Enter, scs, enterArgs, subCharts, undefined);\r\n }\r\n }\r\n else {\r\n // If not over the subchart, don't process events other than these\r\n if (![EMouseEventType.Cancel, EMouseEventType.Up, EMouseEventType.Move].includes(subEventType)) {\r\n subEventType = undefined;\r\n }\r\n isActiveSubChartEvent = false;\r\n }\r\n }\r\n if (subEventType !== undefined) {\r\n var masterData = _this.getMasterData(currentActiveSubChart, args);\r\n handledBySubchart =\r\n handledBySubchart ||\r\n _this.processSubChartEvent(subEventType, scs, __assign(__assign({}, args), { isActiveSubChartEvent: isActiveSubChartEvent }), subCharts, masterData);\r\n }\r\n });\r\n args.handled = args.handled || handledBySubchart;\r\n };\r\n MouseManager.prototype.processSubChartEvent = function (eventType, scs, args, subCharts, masterData) {\r\n var _this = this;\r\n // modifiers on parent may prevent handling of modifer on subchart\r\n args.handled = false;\r\n this.callEvent(eventType, scs, args);\r\n var handled = args.handled;\r\n if (args.isActiveSubChartEvent) {\r\n // Only replicate modifier group events for active subchart\r\n scs.chartModifierGroups.forEach(function (modifierGroup) {\r\n subCharts\r\n .filter(function (sc) { return sc.id !== scs.id; })\r\n .forEach(function (scOther) {\r\n var args2 = ModifierMouseArgs_1.ModifierMouseArgs.copyForSubChart(args, modifierGroup, scs.seriesViewRect, scOther.seriesViewRect, masterData);\r\n _this.callEvent(eventType, scOther, args2);\r\n handled = handled || args2.handled;\r\n });\r\n });\r\n }\r\n return handled;\r\n };\r\n MouseManager.prototype.callEvent = function (eventType, scs, args) {\r\n switch (eventType) {\r\n case EMouseEventType.Cancel:\r\n scs.mouseManager.modifierPointerCancel(args);\r\n break;\r\n case EMouseEventType.Click:\r\n scs.mouseManager.modifierDoubleClick(args);\r\n break;\r\n case EMouseEventType.Down:\r\n scs.mouseManager.modifierMouseDown(args);\r\n break;\r\n case EMouseEventType.Enter:\r\n scs.mouseManager.modifierMouseEnter(args);\r\n break;\r\n case EMouseEventType.Leave:\r\n scs.mouseManager.modifierMouseLeave(args);\r\n break;\r\n case EMouseEventType.Move:\r\n scs.mouseManager.modifierMouseMove(args);\r\n break;\r\n case EMouseEventType.Up:\r\n scs.mouseManager.modifierMouseUp(args);\r\n break;\r\n case EMouseEventType.Wheel:\r\n scs.mouseManager.modifierMouseWheel(args);\r\n break;\r\n case EMouseEventType.Drop:\r\n scs.mouseManager.modifierDrop(args);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return MouseManager;\r\n}());\r\nexports.MouseManager = MouseManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberRange = void 0;\r\nvar isRealNumber_1 = require(\"../utils/isRealNumber\");\r\nvar math_1 = require(\"../utils/math\");\r\n/**\r\n * Defines a number range with numeric min, max\r\n */\r\nvar NumberRange = /** @class */ (function () {\r\n function NumberRange(min, max) {\r\n if (min === void 0) { min = 0; }\r\n if (max === void 0) { max = 10; }\r\n this.min = min;\r\n this.max = max;\r\n }\r\n /**\r\n * Returns a new {@link NumberRange} which is the union of two ranges\r\n * @remarks\r\n * E.g. if current range is [1,2] and input is [2,3] the result range will be [1,3]\r\n * @param range\r\n * @returns the new union range\r\n */\r\n NumberRange.prototype.union = function (range) {\r\n var newMin = Math.min(this.min, range.min);\r\n var newMax = Math.max(this.max, range.max);\r\n return new NumberRange(newMin, newMax);\r\n };\r\n /**\r\n * Clips a range to a min, max value\r\n * @remarks\r\n * E.g. if the current range is [1,5] and input is [2,6] then result will be [2,5]\r\n * @param range\r\n * @returns The new clipped range\r\n */\r\n NumberRange.prototype.clip = function (range) {\r\n var newMin = Math.max(this.min, range.min);\r\n var newMax = Math.min(this.max, range.max);\r\n return new NumberRange(newMin, newMax);\r\n };\r\n /**\r\n * Grows a range by a min and max factor\r\n * @remarks\r\n * If the current range is [5,10] and the input range is [0.1, 0.1] the current range will be\r\n * grown by 10%, so [4.5, 10.5]\r\n * @param range The grow factor\r\n */\r\n NumberRange.prototype.growBy = function (range) {\r\n var diff = this.max - this.min;\r\n // If min == max, expand around the mid line\r\n var min = this.min - range.min * (this.isZero() ? this.min : diff);\r\n var max = this.max + range.max * (this.isZero() ? this.max : diff);\r\n // Swap if min > max (occurs when mid line is negative)\r\n if (min > max) {\r\n var temp = min;\r\n min = max;\r\n max = temp;\r\n }\r\n // If still zero, then expand around the zero line\r\n // if (Math.abs(max - min) <= EPSILON && Math.abs(min) <= EPSILON) {\r\n // min = -1.0;\r\n // max = 1.0;\r\n // }\r\n return new NumberRange(min, max);\r\n };\r\n NumberRange.prototype.growByLog = function (range, logBase) {\r\n // If NegativeLogarithmicAxis, negate ranges\r\n var mult = this.min < 0 ? -1 : 1;\r\n var minExp = this.min !== 0 ? (0, math_1.logToBase)(Math.abs(this.min), logBase) : 0;\r\n var maxExp = this.max !== 0 ? (0, math_1.logToBase)(Math.abs(this.max), logBase) : 0;\r\n var expDiff = maxExp - minExp;\r\n var minExpDelta = expDiff * range.min;\r\n var maxExpDelta = expDiff * range.max;\r\n var newMin = mult * (this.min !== 0 ? Math.pow(logBase, minExp - minExpDelta) : 0);\r\n var newMax = mult * (this.max !== 0 ? Math.pow(logBase, maxExp + maxExpDelta) : 0);\r\n if (newMin > newMax) {\r\n var t = newMax;\r\n newMax = newMin;\r\n newMin = t;\r\n }\r\n return new NumberRange(newMin, newMax);\r\n };\r\n /**\r\n * Returns true if the range is defined (is a real number, not NaN, not infinite, and not undefined)\r\n */\r\n NumberRange.prototype.isDefined = function () {\r\n return (0, isRealNumber_1.isRealNumber)(this.max) && (0, isRealNumber_1.isRealNumber)(this.min);\r\n };\r\n /**\r\n * Returns true if the range equals another by value\r\n * @param other\r\n */\r\n NumberRange.prototype.equals = function (other) {\r\n if (!other) {\r\n return false;\r\n }\r\n return other.min === this.min && other.max === this.max;\r\n };\r\n /**\r\n * Returns a string representation of a {@link NumberRange} for easy debugging\r\n */\r\n NumberRange.prototype.toString = function () {\r\n return \"NumberRange (\".concat(this.min, \", \").concat(this.max, \")\");\r\n };\r\n Object.defineProperty(NumberRange.prototype, \"diff\", {\r\n /**\r\n * Returns a difference between max and min\r\n */\r\n get: function () {\r\n return this.max - this.min;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns true if the range min === range max\r\n */\r\n NumberRange.prototype.isZero = function () {\r\n return this.min === this.max;\r\n };\r\n NumberRange.areEqual = function (range1, range2) {\r\n if (range1 === range2)\r\n return true;\r\n if (range1) {\r\n return range1.equals(range2);\r\n }\r\n return false;\r\n };\r\n return NumberRange;\r\n}());\r\nexports.NumberRange = NumberRange;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberUtil = void 0;\r\n/**\r\n * Numeric functions and number helpers\r\n */\r\nvar NumberUtil = /** @class */ (function () {\r\n function NumberUtil() {\r\n }\r\n /**\r\n * Constrain a value to a minimum and maximum (if outside bounds, clip to bounds\r\n * @param value\r\n * @param min\r\n * @param max\r\n */\r\n NumberUtil.constrain = function (value, min, max) {\r\n return Math.max(Math.min(value, max), min);\r\n };\r\n return NumberUtil;\r\n}());\r\nexports.NumberUtil = NumberUtil;\r\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObservableArray = exports.ObservableArrayBase = void 0;\r\nvar EventHandler_1 = require(\"./EventHandler\");\r\nvar ObservableArrayChangedArgs_1 = require(\"./ObservableArrayChangedArgs\");\r\n/**\r\n * An Observable array which raises {@link collectionChanged} events when an item is added, removed or the collection cleared\r\n */\r\nvar ObservableArrayBase = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the {@link ObservableArray}\r\n */\r\n function ObservableArrayBase() {\r\n this.items = [];\r\n this.collectionChanged = new EventHandler_1.EventHandler();\r\n }\r\n /**\r\n * gets the number of elements in the array\r\n */\r\n ObservableArrayBase.prototype.size = function () {\r\n return this.items.length;\r\n };\r\n /**\r\n * Adds items to the array, and raises the {@link collectionChanged} event to subscribers\r\n * @param items\r\n */\r\n ObservableArrayBase.prototype.add = function () {\r\n var _this = this;\r\n var items = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n items[_i] = arguments[_i];\r\n }\r\n items.forEach(function (item) { return _this.items.push(item); });\r\n this.collectionChanged.raiseEvent(new ObservableArrayChangedArgs_1.ObservableArrayChangedArgs(ObservableArrayChangedArgs_1.EObservableArrayChangedAction.Add, items, undefined));\r\n };\r\n /**\r\n * Returns the backing array. Do not modify this collection. Use add or remove instead.\r\n */\r\n ObservableArrayBase.prototype.asArray = function () {\r\n return this.items;\r\n };\r\n /**\r\n * Inserts items at the specified index. Raises the {@link collectionChanged} event to subscribers\r\n * @param index\r\n * @param item\r\n */\r\n ObservableArrayBase.prototype.insert = function (index, item) {\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n if (index >= this.items.length) {\r\n this.add(item);\r\n return;\r\n }\r\n this.items.splice(index, 0, item);\r\n this.collectionChanged.raiseEvent(new ObservableArrayChangedArgs_1.ObservableArrayChangedArgs(ObservableArrayChangedArgs_1.EObservableArrayChangedAction.Add, [item], undefined));\r\n };\r\n /**\r\n * Returns true if the array contains an item\r\n * @param item\r\n */\r\n ObservableArrayBase.prototype.contains = function (item) {\r\n return this.items.includes(item);\r\n };\r\n /**\r\n * Removes an item at the specified index. Raises the {@link collectionChanged} event to subscribers\r\n * @param index The item to remove\r\n * @param callDeleteOnChildren When true, if the items in the array implement the {@link IDeletable} interface,\r\n * the delete() function will be called. Defaults to false for backward compatibility\r\n */\r\n ObservableArrayBase.prototype.removeAt = function (index, callDeleteOnChildren) {\r\n if (callDeleteOnChildren === void 0) { callDeleteOnChildren = false; }\r\n if (index < 0 || index >= this.items.length) {\r\n return;\r\n }\r\n var item = this.items[index];\r\n this.items.splice(index, 1);\r\n this.collectionChanged.raiseEvent(new ObservableArrayChangedArgs_1.ObservableArrayChangedArgs(ObservableArrayChangedArgs_1.EObservableArrayChangedAction.Remove, undefined, [item]));\r\n // @ts-ignore\r\n if (callDeleteOnChildren && (item === null || item === void 0 ? void 0 : item.delete))\r\n item.delete();\r\n };\r\n /**\r\n * Removes an item by value. Raises the {@link collectionChanged} event to subscribers\r\n * @param item The item to remove\r\n * @param callDeleteOnChildren When true, if the items in the array implement the {@link IDeletable} interface,\r\n * the delete() function will be called. Defaults to false for backward compatibility\r\n */\r\n ObservableArrayBase.prototype.remove = function (item, callDeleteOnChildren) {\r\n if (callDeleteOnChildren === void 0) { callDeleteOnChildren = false; }\r\n for (var index = 0; index < this.size(); index++) {\r\n if (this.items[index] === item) {\r\n this.removeAt(index, callDeleteOnChildren);\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Clears the array. Raises the {@link collectionChanged} event to subscribers\r\n * @param callDeleteOnChildren When true, if the items in the array implement the {@link IDeletable} interface,\r\n * the delete() function will be called. Defaults to false for backward compatibility\r\n */\r\n ObservableArrayBase.prototype.clear = function (callDeleteOnChildren) {\r\n if (callDeleteOnChildren === void 0) { callDeleteOnChildren = false; }\r\n var oldItems = this.items;\r\n this.items = [];\r\n this.collectionChanged.raiseEvent(new ObservableArrayChangedArgs_1.ObservableArrayChangedArgs(ObservableArrayChangedArgs_1.EObservableArrayChangedAction.Reset, undefined, oldItems));\r\n if (callDeleteOnChildren) {\r\n oldItems === null || oldItems === void 0 ? void 0 : oldItems.forEach(function (item) {\r\n // @ts-ignore\r\n if (item === null || item === void 0 ? void 0 : item.delete)\r\n item.delete();\r\n });\r\n }\r\n };\r\n /**\r\n * Gets an item at index\r\n * @param index\r\n */\r\n ObservableArrayBase.prototype.get = function (index) {\r\n return this.items[index];\r\n };\r\n /**\r\n * Sets an item at index. Raises the {@link collectionChanged} event to subscribers\r\n * @param index\r\n * @param item\r\n */\r\n ObservableArrayBase.prototype.set = function (index, item) {\r\n this.items[index] = item;\r\n this.collectionChanged.raiseEvent(new ObservableArrayChangedArgs_1.ObservableArrayChangedArgs(ObservableArrayChangedArgs_1.EObservableArrayChangedAction.Replace, [item], undefined));\r\n };\r\n return ObservableArrayBase;\r\n}());\r\nexports.ObservableArrayBase = ObservableArrayBase;\r\nvar ObservableArray = /** @class */ (function (_super) {\r\n __extends(ObservableArray, _super);\r\n function ObservableArray() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Gets an item by Id\r\n * @param id\r\n */\r\n ObservableArray.prototype.getById = function (id) {\r\n return this.items.find(function (element) { return element.id === id; });\r\n };\r\n return ObservableArray;\r\n}(ObservableArrayBase));\r\nexports.ObservableArray = ObservableArray;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObservableArrayChangedArgs = exports.EObservableArrayChangedAction = void 0;\r\n/**\r\n * An action which occurred when a {@link ObservableArray} was updated\r\n */\r\nvar EObservableArrayChangedAction;\r\n(function (EObservableArrayChangedAction) {\r\n /**\r\n * One or more items was added. Check the {@link ObservableArrayChangedArgs.newItems} property for which items\r\n */\r\n EObservableArrayChangedAction[EObservableArrayChangedAction[\"Add\"] = 0] = \"Add\";\r\n /**\r\n * One or more items were removed. Check the {@link ObservableArrayChangedArgs.oldItems} property for which items\r\n */\r\n EObservableArrayChangedAction[EObservableArrayChangedAction[\"Remove\"] = 1] = \"Remove\";\r\n /**\r\n * One or more items were replaced. Check the {@link ObservableArrayChangedArgs.newItems} and\r\n * {@link ObservableArrayChangedArgs.oldItems} properties for which items\r\n */\r\n EObservableArrayChangedAction[EObservableArrayChangedAction[\"Replace\"] = 2] = \"Replace\";\r\n /**\r\n * Treat this as a new collection (collection drastically changed). Consider all old items removed and all items as new\r\n */\r\n EObservableArrayChangedAction[EObservableArrayChangedAction[\"Reset\"] = 3] = \"Reset\";\r\n})(EObservableArrayChangedAction = exports.EObservableArrayChangedAction || (exports.EObservableArrayChangedAction = {}));\r\n/**\r\n * Event args used by the {@link ObservableArray.collectionChanged} event\r\n */\r\nvar ObservableArrayChangedArgs = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the {@link ObservableArrayChangedArgs}\r\n * @param action\r\n * @param newItems\r\n * @param oldItems\r\n */\r\n function ObservableArrayChangedArgs(action, newItems, oldItems) {\r\n this.action = action;\r\n this.oldItems = oldItems;\r\n this.newItems = newItems;\r\n }\r\n /**\r\n * Gets the operation that occurred on the {@link ObservableArray}. See {@link EObservableArrayChangedAction} for a\r\n * list of values\r\n */\r\n ObservableArrayChangedArgs.prototype.getAction = function () {\r\n return this.action;\r\n };\r\n /**\r\n * Gets new items added if the {@link EObservableArrayChangedAction} was Add or Replace\r\n */\r\n ObservableArrayChangedArgs.prototype.getNewItems = function () {\r\n return this.newItems;\r\n };\r\n /**\r\n * Gets old items removed if the {@link EObservableArrayChangedAction} was Remove or Replace\r\n */\r\n ObservableArrayChangedArgs.prototype.getOldItems = function () {\r\n return this.oldItems;\r\n };\r\n return ObservableArrayChangedArgs;\r\n}());\r\nexports.ObservableArrayChangedArgs = ObservableArrayChangedArgs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OneTimePerformanceWarning = void 0;\r\nvar licenseManager2dState_1 = require(\"../Charting/Visuals/licenseManager2dState\");\r\nvar SciChartDefaults_1 = require(\"../Charting/Visuals/SciChartDefaults\");\r\nvar OneTimePerformanceWarning = /** @class */ (function () {\r\n function OneTimePerformanceWarning(message) {\r\n this.warnedProperty = false;\r\n this.messageProperty = message;\r\n }\r\n OneTimePerformanceWarning.prototype.warn = function () {\r\n if (!SciChartDefaults_1.SciChartDefaults.performanceWarnings || this.warnedProperty || !licenseManager2dState_1.licenseManager2dState.getIsDev())\r\n return false;\r\n console.warn(this.messageProperty);\r\n this.warnedProperty = true;\r\n return true;\r\n };\r\n return OneTimePerformanceWarning;\r\n}());\r\nexports.OneTimePerformanceWarning = OneTimePerformanceWarning;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Point = void 0;\r\n/**\r\n * A class to represent an X,Y point\r\n */\r\nvar Point = /** @class */ (function () {\r\n function Point(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n Point.prototype.toString = function () {\r\n return \"Point (\".concat(this.x, \", \").concat(this.y, \")\");\r\n };\r\n return Point;\r\n}());\r\nexports.Point = Point;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PropertyChangedEventArgs = void 0;\r\n/**\r\n * General class for Property Changed event handlers within SciChart\r\n */\r\nvar PropertyChangedEventArgs = /** @class */ (function () {\r\n function PropertyChangedEventArgs(propertyName) {\r\n this.propertyName = propertyName;\r\n }\r\n return PropertyChangedEventArgs;\r\n}());\r\nexports.PropertyChangedEventArgs = PropertyChangedEventArgs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Rect = void 0;\r\nvar Point_1 = require(\"./Point\");\r\n/**\r\n * Class to represent a rectangle in 2D space\r\n */\r\nvar Rect = /** @class */ (function () {\r\n /**\r\n * Creates a rect with X,Y,Width,Height\r\n * @remarks\r\n * To create a rect with two points, or with left, top right bottom, see the factory functions\r\n * {@link Rect.createWithPoints} or {@link Rect.createWithCoords}\r\n * @param x\r\n * @param y\r\n * @param width\r\n * @param height\r\n */\r\n function Rect(x, y, width, height) {\r\n if (width < 0 || height < 0) {\r\n throw new Error(\"Can not create Rect with negative width/height\");\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n /**\r\n * Creates a rectangle with X,Y top left coordinate and width and height\r\n * @param x\r\n * @param y\r\n * @param width\r\n * @param height\r\n */\r\n Rect.create = function (x, y, width, height) {\r\n if (width < 0 || height < 0) {\r\n throw new Error(\"Rect.create width and height cannot be less than zero\");\r\n }\r\n return new Rect(x, y, width, height);\r\n };\r\n /**\r\n * Creates a rectangle with left, top ,right, bottom\r\n * @param left\r\n * @param top\r\n * @param right\r\n * @param bottom\r\n */\r\n Rect.createWithCoords = function (left, top, right, bottom) {\r\n var x = left;\r\n var y = top;\r\n var width = right - left;\r\n var height = bottom - top;\r\n return new Rect(x, y, width, height);\r\n };\r\n /**\r\n * Create a rectangle with two points which could be top-left, bottom-right\r\n * @param point1\r\n * @param point2\r\n */\r\n Rect.createWithPoints = function (point1, point2) {\r\n var x = Math.min(point1.x, point2.x);\r\n var y = Math.min(point1.y, point2.y);\r\n var width = Math.max(Math.max(point1.x, point2.x) - x, 0);\r\n var height = Math.max(Math.max(point1.y, point2.y) - y, 0);\r\n return Rect.create(x, y, width, height);\r\n };\r\n /**\r\n * Clones a rect\r\n * @param rect\r\n */\r\n Rect.createCopy = function (rect) {\r\n return new Rect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n /**\r\n * Creates a zero rect with x,y,w,h = 0\r\n */\r\n Rect.createZero = function () {\r\n return new Rect(0, 0, 0, 0);\r\n };\r\n /**\r\n * Returns true if a rect numerically equals another rect\r\n * @param rect1\r\n * @param rect2\r\n */\r\n Rect.isEqual = function (rect1, rect2) {\r\n return (rect1.x === rect2.x && rect1.y === rect2.y && rect1.width === rect2.width && rect1.height === rect2.height);\r\n };\r\n /**\r\n * Clips a point to the rect, so if the point is outside the rect it will be on the boundary of the rect after this operation\r\n * @param rect The rect\r\n * @param point The point to clip\r\n */\r\n Rect.clipPointToRect = function (point, rect) {\r\n var x = point.x < rect.x\r\n ? rect.x\r\n : point.x > rect.x + rect.width\r\n ? rect.x + rect.width\r\n : point.x;\r\n var y = point.y < rect.y\r\n ? rect.y\r\n : point.y > rect.y + rect.height\r\n ? rect.y + rect.height\r\n : point.y;\r\n return new Point_1.Point(x, y);\r\n };\r\n Object.defineProperty(Rect.prototype, \"left\", {\r\n /**\r\n * Gets the left edge of the rect\r\n */\r\n get: function () {\r\n return this.x;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Rect.prototype, \"top\", {\r\n /**\r\n * Gets the top edge of the rect\r\n */\r\n get: function () {\r\n return this.y;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Rect.prototype, \"right\", {\r\n /**\r\n * Gets the right edge of the rect\r\n */\r\n get: function () {\r\n return this.x + this.width;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Rect.prototype, \"bottom\", {\r\n /**\r\n * Gets the bottom edge of the rect\r\n */\r\n get: function () {\r\n return this.y + this.height;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Rect;\r\n}());\r\nexports.Rect = Rect;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.sendTelemetry = exports.shouldSendTelemetry = exports.getUserCookie = void 0;\r\nvar licenseManager2dState_1 = require(\"../Charting/Visuals/licenseManager2dState\");\r\nvar cookie_1 = require(\"../utils/cookie\");\r\nvar BuildStamp_1 = require(\"./BuildStamp\");\r\nvar app_1 = require(\"../constants/app\");\r\nvar guid_1 = require(\"../utils/guid\");\r\nvar licensingClasses_1 = require(\"../types/licensingClasses\");\r\nvar sessionTime = 60 * 60 * 1000;\r\nvar hasSent = false;\r\nvar setUserCookie = function (userId, sessionId, sessionStart) {\r\n var cookieVal = \"\".concat(userId, \",\").concat(sessionId, \",\").concat(sessionStart);\r\n return (0, cookie_1.setCookie)(\"scUser\", cookieVal, 365);\r\n};\r\nvar getUserCookie = function () {\r\n var cookie = (0, cookie_1.getCookie)(\"scUser\");\r\n if (cookie) {\r\n var parts = cookie.split(\",\");\r\n if (parts.length === 3)\r\n return {\r\n userId: parts[0],\r\n sessionId: parts[1],\r\n sessionStart: Number.parseInt(parts[2], 10)\r\n };\r\n }\r\n return {\r\n userId: (0, guid_1.base64Id)(),\r\n sessionId: (0, guid_1.base64Id)(),\r\n sessionStart: 0\r\n };\r\n};\r\nexports.getUserCookie = getUserCookie;\r\nvar shouldSendTelemetry = function () {\r\n // Not in test\r\n if (app_1.IS_TEST_ENV)\r\n return false;\r\n // Not if we've already done it\r\n if (hasSent)\r\n return false;\r\n // not if the license is not community and not dev\r\n if (licenseManager2dState_1.licenseManager2dState.getLicenseType() !== licensingClasses_1.LicenseType.Community && !licenseManager2dState_1.licenseManager2dState.getIsDev())\r\n return false;\r\n // not if telemetry not enabled\r\n if (!licenseManager2dState_1.licenseManager2dState.getTelemetry())\r\n return false;\r\n // not if not online\r\n if (window && !window.navigator.onLine)\r\n return false;\r\n return true;\r\n};\r\nexports.shouldSendTelemetry = shouldSendTelemetry;\r\nvar sendTelemetry = function () {\r\n if (!(0, exports.shouldSendTelemetry)())\r\n return;\r\n var user = (0, exports.getUserCookie)();\r\n var timeStamp = new Date().toISOString();\r\n // New sessionId if previous has expired\r\n if (Date.now() - user.sessionStart < sessionTime) {\r\n // Don't send more than once per session.\r\n return;\r\n }\r\n // Reset the session time. Sessions expire 30 minutes after the last use in the session.\r\n // Session tracking is more relevant once we start collecting more detailed per-chart data\r\n user.sessionId = (0, guid_1.base64Id)();\r\n user.sessionStart = Date.now();\r\n setUserCookie(user.userId, user.sessionId, user.sessionStart);\r\n var eventData = {\r\n time: timeStamp,\r\n iKey: \"210b4d64-8147-471e-b6cb-244a2c939455\",\r\n name: \"Microsoft.ApplicationInsights.210b4d648147471eb6cb244a2c939455.Event\",\r\n tags: {\r\n \"ai.user.id\": user.userId,\r\n \"ai.session.id\": user.sessionId,\r\n \"ai.device.id\": \"browser\",\r\n \"ai.device.type\": \"Browser\"\r\n },\r\n data: {\r\n baseType: \"EventData\",\r\n baseData: {\r\n ver: 2,\r\n name: \"LicenseSet\",\r\n properties: {\r\n platform: \"JS\",\r\n licenseType: licenseManager2dState_1.licenseManager2dState.getLicenseType(),\r\n orderId: licenseManager2dState_1.licenseManager2dState.getOrderId(),\r\n productCode: licenseManager2dState_1.licenseManager2dState.getProductCode(),\r\n isDev: licenseManager2dState_1.licenseManager2dState.getIsDev(),\r\n devCount: licenseManager2dState_1.licenseManager2dState.getDevCount(),\r\n sciChartVersion: BuildStamp_1.libraryVersion\r\n },\r\n measurements: {}\r\n }\r\n }\r\n };\r\n if (licenseManager2dState_1.licenseManager2dState.getLicenseType() === licensingClasses_1.LicenseType.Community) {\r\n eventData.data.baseData.properties.url = window.location.href;\r\n }\r\n var endPointUrl = \"https://dc.services.visualstudio.com/v2/track\";\r\n var body = JSON.stringify([eventData]);\r\n fetch(endPointUrl, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: body\r\n }).catch(function (err) { });\r\n hasSent = true;\r\n};\r\nexports.sendTelemetry = sendTelemetry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Thickness = void 0;\r\n/**\r\n * A class used for margins and padding in SciChart.js\r\n */\r\nvar Guard_1 = require(\"./Guard\");\r\nvar Thickness = /** @class */ (function () {\r\n /**\r\n * Creates an instance of a Thickness object, with top, right, bottom and left\r\n * @param top\r\n * @param right\r\n * @param bottom\r\n * @param left\r\n */\r\n function Thickness(top, right, bottom, left) {\r\n this.top = top;\r\n this.right = right;\r\n this.bottom = bottom;\r\n this.left = left;\r\n }\r\n /**\r\n * Creates a Thickness (margin or padding) from string, e.g. \"25 50 75 100\". Order is top, right, bottom left. Same as in Css\r\n * @param str\r\n */\r\n Thickness.fromString = function (str) {\r\n Guard_1.Guard.notNull(str, \"str\");\r\n var elements = str.split(\" \").map(function (s) { return parseFloat(s); });\r\n if (elements.length !== 4) {\r\n throw new Error(\"Expected string in the format '1 2 3 4' where values are top, right bottom and left\");\r\n }\r\n return new Thickness(elements[0], elements[1], elements[2], elements[3]);\r\n };\r\n /**\r\n * Creates a Thickness (margin or padding) from a single value, e.g. 10, would return a thickness with top, right, bottom left = 10\r\n * @param value\r\n */\r\n Thickness.fromNumber = function (value) {\r\n return new Thickness(value, value, value, value);\r\n };\r\n Thickness.prototype.equals = function (other) {\r\n return (this.top === other.top &&\r\n this.right === other.right &&\r\n this.bottom === other.bottom &&\r\n this.left === other.left);\r\n };\r\n /**\r\n * Returns the max of each side of 2 components in a new {@link Thickness} object\r\n * @param first\r\n * @param second\r\n */\r\n Thickness.mergeMax = function (first, second) {\r\n var maxPadding = new Thickness(0, 0, 0, 0);\r\n maxPadding.top = Math.max(first.top, second.top);\r\n maxPadding.left = Math.max(first.left, second.left);\r\n maxPadding.bottom = Math.max(first.bottom, second.bottom);\r\n maxPadding.right = Math.max(first.right, second.right);\r\n return maxPadding;\r\n };\r\n return Thickness;\r\n}());\r\nexports.Thickness = Thickness;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WebGlHelper = exports.EWebGLSupport = void 0;\r\nvar app_1 = require(\"../constants/app\");\r\n/**\r\n * Enum constants returned by {@link WebGlHelper.getWebGlSupport}\r\n */\r\nvar EWebGLSupport;\r\n(function (EWebGLSupport) {\r\n EWebGLSupport[\"WebGL2\"] = \"WebGL 2\";\r\n EWebGLSupport[\"WebGL1\"] = \"WebGL 1\";\r\n EWebGLSupport[\"NoWebGL\"] = \"No WebGL support\";\r\n})(EWebGLSupport = exports.EWebGLSupport || (exports.EWebGLSupport = {}));\r\n/**\r\n * Helper class to extract WebGL1/2 detection and context creation\r\n */\r\nvar WebGlHelper = /** @class */ (function () {\r\n function WebGlHelper() {\r\n }\r\n /**\r\n * Static initializer function. Is called once by the framework on startup\r\n */\r\n WebGlHelper.initialize = function () {\r\n if (!WebGlHelper.initialized) {\r\n if (!WebGlHelper.webGlSupport && !app_1.IS_TEST_ENV) {\r\n var canvas = document.createElement(\"canvas\");\r\n if (canvas.getContext(\"webgl2\")) {\r\n WebGlHelper.webGlSupport = EWebGLSupport.WebGL2;\r\n }\r\n else if (canvas.getContext(\"webgl\")) {\r\n WebGlHelper.webGlSupport = EWebGLSupport.WebGL1;\r\n }\r\n else {\r\n WebGlHelper.webGlSupport = EWebGLSupport.NoWebGL;\r\n }\r\n }\r\n WebGlHelper.initialized = true;\r\n }\r\n };\r\n /**\r\n * Gets the WebGL support by the browser. See {@link EWebGLSupport} for options\r\n */\r\n WebGlHelper.getWebGlSupport = function () {\r\n return WebGlHelper.webGlSupport;\r\n };\r\n /**\r\n * Calls canvas.getContext() passing in \"webgl\" or \"webgl2\" depending on current browser WebGL Support.\r\n * @param canvas\r\n * @param options\r\n */\r\n WebGlHelper.getContext = function (canvas, options) {\r\n if (!canvas || app_1.IS_TEST_ENV) {\r\n return undefined;\r\n }\r\n if (WebGlHelper.webGlSupport === EWebGLSupport.WebGL1) {\r\n return canvas.getContext(\"webgl\", options);\r\n }\r\n if (WebGlHelper.webGlSupport === EWebGLSupport.WebGL2) {\r\n return canvas.getContext(\"webgl2\", options);\r\n }\r\n throw new Error(\"SciChart: WebGL not supported!\");\r\n };\r\n WebGlHelper.webGlSupport = undefined;\r\n WebGlHelper.initialized = false;\r\n return WebGlHelper;\r\n}());\r\nexports.WebGlHelper = WebGlHelper;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.localStorageApi = void 0;\r\nvar isStorageAvailable = undefined;\r\nfunction storageAvailable() {\r\n if (isStorageAvailable !== undefined)\r\n return isStorageAvailable;\r\n try {\r\n var storage = window[\"localStorage\"], x = \"__storage_test__\";\r\n storage.setItem(x, x);\r\n storage.removeItem(x);\r\n isStorageAvailable = true;\r\n return true;\r\n }\r\n catch (e) {\r\n isStorageAvailable = false;\r\n return false;\r\n }\r\n}\r\nfunction getIsLicenseDebug() {\r\n if (!storageAvailable())\r\n return undefined;\r\n return localStorage.getItem(\"LICENSE_DEBUG\") === \"1\";\r\n}\r\nfunction setIsLicenseDebug(value) {\r\n if (!storageAvailable())\r\n return;\r\n localStorage.setItem(\"LICENSE_DEBUG\", value ? \"1\" : \"0\");\r\n}\r\nfunction clearLicensingDebug() {\r\n if (!storageAvailable())\r\n return;\r\n localStorage.removeItem(\"LICENSE_DEBUG\");\r\n}\r\nfunction getLicenseWizardPort() {\r\n if (!storageAvailable())\r\n return undefined;\r\n var portStr = localStorage.getItem(\"LICENSE_WIZARD_PORT\");\r\n var portNumber = Number(portStr);\r\n if (isNaN(portNumber))\r\n return undefined;\r\n return portNumber;\r\n}\r\nfunction getLicenseWizardMaxPort() {\r\n if (!storageAvailable())\r\n return undefined;\r\n var portStr = localStorage.getItem(\"LICENSE_WIZARD_MAXPORT\");\r\n var portNumber = Number(portStr);\r\n if (isNaN(portNumber))\r\n return undefined;\r\n return portNumber;\r\n}\r\nexports.localStorageApi = {\r\n storageAvailable: storageAvailable,\r\n getIsLicenseDebug: getIsLicenseDebug,\r\n setIsLicenseDebug: setIsLicenseDebug,\r\n clearLicensingDebug: clearLicensingDebug,\r\n getLicenseWizardMaxPort: getLicenseWizardMaxPort,\r\n getLicenseWizardPort: getLicenseWizardPort\r\n};\r\n","\r\nvar Module = (() => {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n \r\n return (\r\nfunction(Module = {}) {\r\n\r\nvar Module=typeof Module!=\"undefined\"?Module:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module[\"ENVIRONMENT_IS_PTHREAD\"]||Module[\"$ww\"])return;var loadPackage=function(metadata){var PACKAGE_PATH=\"\";if(typeof window===\"object\"){PACKAGE_PATH=window[\"encodeURIComponent\"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf(\"/\"))+\"/\")}else if(typeof process===\"undefined\"&&typeof location!==\"undefined\"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf(\"/\"))+\"/\")}var PACKAGE_NAME=\"scichart2d.data\";var REMOTE_PACKAGE_BASE=\"scichart2d.data\";if(typeof Module[\"locateFilePackage\"]===\"function\"&&!Module[\"locateFile\"]){Module[\"locateFile\"]=Module[\"locateFilePackage\"];err(\"warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)\")}var REMOTE_PACKAGE_NAME=Module[\"locateFile\"]?Module[\"locateFile\"](REMOTE_PACKAGE_BASE,\"\"):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata[\"remote_package_size\"];function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open(\"GET\",packageName,true);xhr.responseType=\"arraybuffer\";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module[\"setStatus\"])Module[\"setStatus\"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module[\"setStatus\"])Module[\"setStatus\"](\"Downloading data...\")}};xhr.onerror=function(event){throw new Error(\"NetworkError for: \"+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+\" : \"+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error(\"package error:\",error)}var fetchedCallback=null;var fetched=Module[\"getPreloadedPackage\"]?Module[\"getPreloadedPackage\"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module[\"FS_createPath\"](\"/\",\"assets\",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module[\"addRunDependency\"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module[\"FS_createDataFile\"](this.name,null,byteArray,true,true,true);Module[\"removeRunDependency\"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata[\"files\"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile=\"scichart2d.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"){return fetch(binaryFile,{credentials:\"same-origin\"}).then(response=>{if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+binaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(()=>getBinary(binaryFile))}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(binaryFile)&&typeof fetch==\"function\"){return fetch(binaryFile,{credentials:\"same-origin\"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"rh\"];updateMemoryViews();wasmTable=Module[\"asm\"][\"wh\"];addOnInit(Module[\"asm\"][\"sh\"]);removeRunDependency(\"wasm-instantiate\");return exports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}if(Module[\"instantiateWasm\"]){try{return Module[\"instantiateWasm\"](info,receiveInstance)}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={386820:()=>{var userAgent=navigator.userAgent||navigator.vendor||window.opera;if(/windows phone/i.test(userAgent)){return 0}if(/Android/i.test(userAgent)){return 1}if(/iPad|iPhone|iPod/.test(userAgent)&&!window.MSStream){return 2}return 0},387090:()=>{return Module.getRandomValue()},387126:()=>{if(Module.getRandomValue===undefined){try{var window_=\"object\"===typeof window?window:self;var crypto_=typeof window_.crypto!==\"undefined\"?window_.crypto:window_.msCrypto;var randomValuesStandard=function(){var buf=new Uint32Array(1);crypto_.getRandomValues(buf);return buf[0]>>>0};randomValuesStandard();Module.getRandomValue=randomValuesStandard}catch(e){try{var max=Math.pow(2,32);var randomValueNodeJS=function(){var r=Math.floor(Math.random()*Math.floor(max));return r>>>0};randomValueNodeJS();Module.getRandomValue=randomValueNodeJS}catch(e){throw\"No secure random number generator found\"}}}},387808:$0=>{var str=UTF8ToString($0)+\"\\n\\n\"+\"Abort/Retry/Ignore/AlwaysIgnore? [ariA] :\";var reply=window.prompt(str,\"i\");if(reply===null){reply=\"i\"}return allocate(intArrayFromString(reply),\"i8\",ALLOC_NORMAL)},388033:()=>{if(typeof AudioContext!==\"undefined\"){return true}else if(typeof webkitAudioContext!==\"undefined\"){return true}return false},388180:()=>{if(typeof navigator.mediaDevices!==\"undefined\"&&typeof navigator.mediaDevices.getUserMedia!==\"undefined\"){return true}else if(typeof navigator.webkitGetUserMedia!==\"undefined\"){return true}return false},388414:$0=>{if(typeof Module[\"SDL2\"]===\"undefined\"){Module[\"SDL2\"]={}}var SDL2=Module[\"SDL2\"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!==\"undefined\"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!==\"undefined\"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},388907:()=>{var SDL2=Module[\"SDL2\"];return SDL2.audioContext.sampleRate},388975:($0,$1,$2,$3)=>{var SDL2=Module[\"SDL2\"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall(\"vi\",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall(\"vi\",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},390627:($0,$1,$2,$3)=>{var SDL2=Module[\"SDL2\"];SDL2.audio.scriptProcessorNode=SDL2.audioContext[\"createScriptProcessor\"]($1,0,$0);SDL2.audio.scriptProcessorNode[\"onaudioprocess\"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e[\"outputBuffer\"];dynCall(\"vi\",$2,[$3])};SDL2.audio.scriptProcessorNode[\"connect\"](SDL2.audioContext[\"destination\"])},391037:($0,$1)=>{var SDL2=Module[\"SDL2\"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module[\"SDL2\"];var numChannels=SDL2.audio.currentOutputBuffer[\"numberOfChannels\"];for(var c=0;c>2]}}},392122:$0=>{var SDL2=Module[\"SDL2\"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module[\"SDL2\"])Module[\"SDL2\"]={};var SDL2=Module[\"SDL2\"];if(SDL2.ctxCanvas!==Module[\"canvas\"]){SDL2.ctx=Module[\"createContext\"](Module[\"canvas\"],false,true);SDL2.ctxCanvas=Module[\"canvas\"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!==\"undefined\"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement(\"canvas\");canvas.width=w;canvas.height=h;var ctx=canvas.getContext(\"2d\");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!==\"undefined\"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?\"url(\"+canvas.toDataURL()+\"), auto\":\"url(\"+canvas.toDataURL()+\") \"+hot_x+\" \"+hot_y+\", auto\";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},395752:$0=>{if(Module[\"canvas\"]){Module[\"canvas\"].style[\"cursor\"]=UTF8ToString($0)}},395835:()=>{if(Module[\"canvas\"]){Module[\"canvas\"].style[\"cursor\"]=\"none\"}},395904:()=>{return window.innerWidth},395934:()=>{return window.innerHeight}};function get_host(){var host=\"\";if(typeof window!==\"undefined\"){host=window.location.hostname}else if(typeof process!==\"undefined\"){host=\"node\"}var lengthBytes=lengthBytesUTF8(host)+1;var stringOnWasmHeap=_malloc(lengthBytes);stringToUTF8(host,stringOnWasmHeap,lengthBytes);return stringOnWasmHeap}function ExitStatus(status){this.name=\"ExitStatus\";this.message=`Program terminated with exit(${status})`;this.status=status}function listenOnce(object,event,func){object.addEventListener(event,func,{\"once\":true})}function autoResumeAudioContext(ctx,elements){if(!elements){elements=[document,document.getElementById(\"canvas\")]}[\"keydown\",\"mousedown\",\"touchstart\"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state===\"suspended\")ctx.resume()})}})})}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":HEAP8[ptr>>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join(\"/\"))},join2:(l,r)=>{return PATH.normalize(l+\"/\"+r)}};function initRandomFill(){if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){return view=>crypto.getRandomValues(view)}else abort(\"initRandomDevice\")}function randomFill(view){return(randomFill=initRandomFill())(view)}var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx>10,56320|ch&1023)}}return str}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{assert(arrayBuffer,`Loading data file \"${url}\" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file \"${url}\" failed.`}});if(dep)addRunDependency(dep)}var preloadPlugins=Module[\"preloadPlugins\"]||[];function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!=\"undefined\")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,onerror);handled=true}});return handled}function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}}function FS_modeStringToFlags(str){var flagModes={\"r\":0,\"r+\":2,\"w\":512|64|1,\"w+\":512|64|2,\"a\":1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags}function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(path);if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagsToPermissionString:flag=>{var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:()=>{for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd=-1)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split(\"/\");var d=\"\";for(var i=0;i{if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;mode=typeof mode==\"undefined\"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error(`Invalid encoding type \"${opts.encoding}\"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices:()=>{FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:()=>{FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount:()=>{var node=FS.createNode(proc_self,\"fd\",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams:()=>{if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name=\"ErrnoError\";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message=\"FS error\"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"\"})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return{[name]:function(){return body.apply(this,arguments)}}[name]}function HandleAllocator(){this.allocated=[undefined];this.freelist=[];this.get=function(id){return this.allocated[id]};this.has=function(id){return this.allocated[id]!==undefined};this.allocate=function(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id};this.free=function(id){this.allocated[id]=undefined;this.freelist.push(id)}}var emval_handles=new HandleAllocator;function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function count_emval_handles(){var count=0;for(var i=emval_handles.reserved;i{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};var PureVirtualError=undefined;function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function registerInheritedInstance(class_,ptr,instance){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){throwBindingError(`Tried to register registered instance: ${ptr}`)}else{registeredInstances[ptr]=instance}}var registeredTypes={};function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function unregisterInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){delete registeredInstances[ptr]}else{throwBindingError(`Tried to unregister unregistered instance: ${ptr}`)}}function detachFinalizer(handle){}var finalizationRegistry=false;function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function __embind_create_inheriting_constructor(constructorName,wrapperType,properties){constructorName=readLatin1String(constructorName);wrapperType=requireRegisteredType(wrapperType,\"wrapper\");properties=Emval.toValue(properties);var arraySlice=[].slice;var registeredClass=wrapperType.registeredClass;var wrapperPrototype=registeredClass.instancePrototype;var baseClass=registeredClass.baseClass;var baseClassPrototype=baseClass.instancePrototype;var baseConstructor=registeredClass.baseClass.constructor;var ctor=createNamedFunction(constructorName,function(){registeredClass.baseClass.pureVirtualFunctions.forEach(function(name){if(this[name]===baseClassPrototype[name]){throw new PureVirtualError(`Pure virtual function ${name} must be implemented in JavaScript`)}}.bind(this));Object.defineProperty(this,\"__parent\",{value:wrapperPrototype});this[\"__construct\"].apply(this,arraySlice.call(arguments))});wrapperPrototype[\"__construct\"]=function __construct(){if(this===wrapperPrototype){throwBindingError(\"Pass correct 'this' to __construct\")}var inner=baseConstructor[\"implement\"].apply(undefined,[this].concat(arraySlice.call(arguments)));detachFinalizer(inner);var $$=inner.$$;inner[\"notifyOnDestruction\"]();$$.preservePointerOnDelete=true;Object.defineProperties(this,{$$:{value:$$}});attachFinalizer(this);registerInheritedInstance(registeredClass,$$.ptr,this)};wrapperPrototype[\"__destruct\"]=function __destruct(){if(this===wrapperPrototype){throwBindingError(\"Pass correct 'this' to __destruct\")}detachFinalizer(this);unregisterInheritedInstance(registeredClass,this.$$.ptr)};ctor.prototype=Object.create(wrapperPrototype);for(var p in properties){ctor.prototype[p]=properties[p]}return Emval.toHandle(ctor)}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${size}`)}}var awaitingDependencies={};var typeDependencies={};function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError(`type \"${name}\" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAP32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp}var UnboundTypeError=undefined;function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){if(registeredClass.baseClass.__derivedClasses===undefined){registeredClass.baseClass.__derivedClasses=[]}registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i>2])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn,isAsync);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}if(classType.registeredClass.__derivedClasses){for(const derivedClass of classType.registeredClass.__derivedClasses){if(!derivedClass.constructor.hasOwnProperty(methodName)){derivedClass.constructor[methodName]=func}}}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(`${humanName} with invalid \"this\": ${this_}`)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(`${humanName} incompatible with \"this\" of type ${this_.constructor.name}`)}if(!this_.$$.ptr){throwBindingError(`cannot call emscripten binding method ${humanName} on deleted object`)}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=`${classType.name}.${fieldName}`;var desc={get:function(){throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])}}else{desc.set=v=>{throwBindingError(humanName+\" is a read-only property\")}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+\" getter\");return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+\" setter\");var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}function __emval_decref(handle){if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this[\"fromWireType\"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this[\"fromWireType\"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this[\"fromWireType\"](heap[pointer>>2])};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,\"fromWireType\":function(c){return this.constructor.values[c]},\"toWireType\":function(destructors,c){return c.value},\"argPackAdvance\":8,\"readValueFromPointer\":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,\"enum\");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function embindRepr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emscripten_fetch_free(id){if(Fetch.xhrs.has(id)){var xhr=Fetch.xhrs.get(id);Fetch.xhrs.free(id);if(xhr.readyState>0&&xhr.readyState<4){xhr.abort()}}}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function emval_allocateDestructors(destructorsRef){var destructors=[];HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2],\"parameter \"+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+\"_$\"+types.slice(1).map(function(t){return t.name}).join(\"_\")+\"$\";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var argN=new Array(argCount-1);var invokerFunction=(handle,name,destructors,args)=>{var offset=0;for(var i=0;i4){emval_handles.get(handle).refcount+=1}}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,arg){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)}function readI53FromI64(ptr){return HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296}function isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];function ydayFromDate(date){var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday}function __localtime_js(time,tmPtr){var date=new Date(readI53FromI64(time)*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function stringToNewUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret}function __tzset_js(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=stringToNewUTF8(winterName);var summerNamePtr=stringToNewUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}function _abort(){abort(\"\")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method=\"timeout\"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method=\"rAF\"}else if(mode==2){if(typeof setImmediate==\"undefined\"){var setImmediates=[];var emscriptenMainLoopMessageId=\"setimmediate\";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener(\"message\",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module[\"setImmediates\"]===undefined)Module[\"setImmediates\"]=[];Module[\"setImmediates\"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,\"*\")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method=\"immediate\"}return 0}var _emscripten_get_now;_emscripten_get_now=()=>performance.now();function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,\"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.\");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker \"'+blocker.name+'\" took '+(Date.now()-start)+\" ms\");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==\"object\"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw\"unwind\"}}function handleException(e){if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)}function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function callUserCallback(func){if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(()=>{callUserCallback(func)},timeout)}var Browser={mainLoop:{running:false,scheduler:null,method:\"\",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module[\"setStatus\"]){var message=Module[\"statusMessage\"]||\"Please wait...\";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,\"Image \"+name+\" could not be decoded\");var canvas=document.createElement(\"canvas\");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext(\"2d\");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out(\"Image \"+url+\" could not be decoded\");if(onerror)onerror()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin[\"canHandle\"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{\".ogg\":1,\".wav\":1,\".mp3\":1}};audioPlugin[\"handle\"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener(\"canplaythrough\",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(\"warning: browser could not fully decode audio \"+name+\", trying slower base64 approach\");function encode64(data){var BASE=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";var PAD=\"=\";var ret=\"\";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src=\"data:audio/x-\"+name.substr(-3)+\";base64,\"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document[\"pointerLockElement\"]===Module[\"canvas\"]||document[\"mozPointerLockElement\"]===Module[\"canvas\"]||document[\"webkitPointerLockElement\"]===Module[\"canvas\"]||document[\"msPointerLockElement\"]===Module[\"canvas\"]}var canvas=Module[\"canvas\"];if(canvas){canvas.requestPointerLock=canvas[\"requestPointerLock\"]||canvas[\"mozRequestPointerLock\"]||canvas[\"webkitRequestPointerLock\"]||canvas[\"msRequestPointerLock\"]||(()=>{});canvas.exitPointerLock=document[\"exitPointerLock\"]||document[\"mozExitPointerLock\"]||document[\"webkitExitPointerLock\"]||document[\"msExitPointerLock\"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener(\"pointerlockchange\",pointerLockChange,false);document.addEventListener(\"mozpointerlockchange\",pointerLockChange,false);document.addEventListener(\"webkitpointerlockchange\",pointerLockChange,false);document.addEventListener(\"mspointerlockchange\",pointerLockChange,false);if(Module[\"elementPointerLock\"]){canvas.addEventListener(\"click\",ev=>{if(!Browser.pointerLock&&Module[\"canvas\"].requestPointerLock){Module[\"canvas\"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!=\"undefined\"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=\"undefined\"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext(\"2d\")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==\"undefined\",\"cannot set in module if GLctx is used, but we are a non-GL context that would replace it\");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==\"undefined\")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==\"undefined\")Browser.resizeCanvas=false;var canvas=Module[\"canvas\"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document[\"fullscreenElement\"]||document[\"mozFullScreenElement\"]||document[\"msFullscreenElement\"]||document[\"webkitFullscreenElement\"]||document[\"webkitCurrentFullScreenElement\"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module[\"onFullScreen\"])Module[\"onFullScreen\"](Browser.isFullscreen);if(Module[\"onFullscreen\"])Module[\"onFullscreen\"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener(\"fullscreenchange\",fullscreenChange,false);document.addEventListener(\"mozfullscreenchange\",fullscreenChange,false);document.addEventListener(\"webkitfullscreenchange\",fullscreenChange,false);document.addEventListener(\"MSFullscreenChange\",fullscreenChange,false)}var canvasContainer=document.createElement(\"div\");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer[\"requestFullscreen\"]||canvasContainer[\"mozRequestFullScreen\"]||canvasContainer[\"msRequestFullscreen\"]||(canvasContainer[\"webkitRequestFullscreen\"]?()=>canvasContainer[\"webkitRequestFullscreen\"](Element[\"ALLOW_KEYBOARD_INPUT\"]):null)||(canvasContainer[\"webkitRequestFullScreen\"]?()=>canvasContainer[\"webkitRequestFullScreen\"](Element[\"ALLOW_KEYBOARD_INPUT\"]):null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document[\"exitFullscreen\"]||document[\"cancelFullScreen\"]||document[\"mozCancelFullScreen\"]||document[\"msExitFullscreen\"]||document[\"webkitCancelFullScreen\"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==\"function\"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype:function(name){return{\"jpg\":\"image/jpeg\",\"jpeg\":\"image/jpeg\",\"png\":\"image/png\",\"bmp\":\"image/bmp\",\"ogg\":\"audio/ogg\",\"wav\":\"audio/wav\",\"mp3\":\"audio/mpeg\"}[name.substr(name.lastIndexOf(\".\")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator[\"getUserMedia\"]||navigator[\"mozGetUserMedia\"]}window.getUserMedia(func)},getMovementX:function(event){return event[\"movementX\"]||event[\"mozMovementX\"]||event[\"webkitMovementX\"]||0},getMovementY:function(event){return event[\"movementY\"]||event[\"mozMovementY\"]||event[\"webkitMovementY\"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case\"DOMMouseScroll\":delta=event.detail/3;break;case\"mousewheel\":delta=event.wheelDelta/120;break;case\"wheel\":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw\"unrecognized mouse wheel delta mode: \"+event.deltaMode}break;default:throw\"unrecognized mouse wheel event: \"+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!=\"mousemove\"&&\"mozMovementX\"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!=\"undefined\"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module[\"canvas\"].getBoundingClientRect();var cw=Module[\"canvas\"].width;var ch=Module[\"canvas\"].height;var scrollX=typeof window.scrollX!=\"undefined\"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=\"undefined\"?window.scrollY:window.pageYOffset;if(event.type===\"touchstart\"||event.type===\"touchend\"||event.type===\"touchmove\"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type===\"touchstart\"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type===\"touchend\"||event.type===\"touchmove\"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module[\"canvas\"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize:function(width,height,noUpdates){var canvas=Module[\"canvas\"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!=\"undefined\"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module[\"canvas\"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!=\"undefined\"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module[\"canvas\"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module[\"forcedAspectRatio\"]&&Module[\"forcedAspectRatio\"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglBindAPI(api){if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0}function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension(\"WEBGL_draw_instanced_base_vertex_base_instance\"))}function webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension(\"WEBGL_multi_draw_instanced_base_vertex_base_instance\"))}function webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext(\"webgl2\",webGLContextAttributes):canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query_webgl2\")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes(\"lose_context\")&&!ext.includes(\"debug\")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module[\"canvas\"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetConfigAttrib(display,config,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglGetError(){return EGL.errorCode}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglQueryString(display,name){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8(\"Emscripten\");break;case 12372:ret=stringToNewUTF8(\"1.4 Emscripten EGL\");break;case 12373:ret=stringToNewUTF8(\"\");break;case 12429:ret=stringToNewUTF8(\"OpenGL_ES\");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret}function _eglSwapBuffers(dpy,surface){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}function _eglWaitClient(){EGL.setErrorCode(12288);return 1}var _eglWaitGL=_eglWaitClient;function _eglWaitNative(nativeEngineId){EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readEmAsmArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readEmAsmArgsArray}function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf)}function runMainThreadEmAsm(code,sigPtr,argbuf,sync){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int_sync_on_main_thread(code,sigPtr,argbuf){return runMainThreadEmAsm(code,sigPtr,argbuf,1)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_date_now(){return Date.now()}function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,document,window];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||document.querySelector(target);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_get_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height}function stringToUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret}function getCanvasElementSize(target){return withStackSave(function(){var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size})}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function setCanvasElementSize(target,width,height){if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(function(){var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}}function registerRestoreOldStyle(canvas){var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener(\"fullscreenchange\",restoreOldStyle);document.removeEventListener(\"webkitfullscreenchange\",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor=\"white\";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener(\"fullscreenchange\",restoreOldStyle);document.addEventListener(\"webkitfullscreenchange\",restoreOldStyle);return restoreOldStyle}function setLetterbox(element,topBottom,leftRight){element.style.paddingLeft=element.style.paddingRight=leftRight+\"px\";element.style.paddingTop=element.style.paddingBottom=topBottom+\"px\"}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{\"left\":0,\"top\":0}}function JSEvents_resizeCanvasForFullscreen(target,strategy){var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function _emscripten_get_screen_size(width,height){HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height}function _glActiveTexture(x0){GLctx.activeTexture(x0)}var _emscripten_glActiveTexture=_glActiveTexture;function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}var _emscripten_glAttachShader=_glAttachShader;function _glBeginQuery(target,id){GLctx.beginQuery(target,GL.queries[id])}var _emscripten_glBeginQuery=_glBeginQuery;function _glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt[\"beginQueryEXT\"](target,GL.queries[id])}var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;function _glBeginTransformFeedback(x0){GLctx.beginTransformFeedback(x0)}var _emscripten_glBeginTransformFeedback=_glBeginTransformFeedback;function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}var _emscripten_glBindAttribLocation=_glBindAttribLocation;function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}var _emscripten_glBindBuffer=_glBindBuffer;function _glBindBufferBase(target,index,buffer){GLctx.bindBufferBase(target,index,GL.buffers[buffer])}var _emscripten_glBindBufferBase=_glBindBufferBase;function _glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)}var _emscripten_glBindBufferRange=_glBindBufferRange;function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}var _emscripten_glBindFramebuffer=_glBindFramebuffer;function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;function _glBindSampler(unit,sampler){GLctx.bindSampler(unit,GL.samplers[sampler])}var _emscripten_glBindSampler=_glBindSampler;function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}var _emscripten_glBindTexture=_glBindTexture;function _glBindTransformFeedback(target,id){GLctx.bindTransformFeedback(target,GL.transformFeedbacks[id])}var _emscripten_glBindTransformFeedback=_glBindTransformFeedback;function _glBindVertexArray(vao){GLctx.bindVertexArray(GL.vaos[vao])}var _emscripten_glBindVertexArray=_glBindVertexArray;var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;function _glBlendColor(x0,x1,x2,x3){GLctx.blendColor(x0,x1,x2,x3)}var _emscripten_glBlendColor=_glBlendColor;function _glBlendEquation(x0){GLctx.blendEquation(x0)}var _emscripten_glBlendEquation=_glBlendEquation;function _glBlendEquationSeparate(x0,x1){GLctx.blendEquationSeparate(x0,x1)}var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}var _emscripten_glBlendFunc=_glBlendFunc;function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx.blendFuncSeparate(x0,x1,x2,x3)}var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}var _emscripten_glBlitFramebuffer=_glBlitFramebuffer;function _glBufferData(target,size,data,usage){if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}var _emscripten_glBufferData=_glBufferData;function _glBufferSubData(target,offset,size,data){if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}var _emscripten_glBufferSubData=_glBufferSubData;function _glCheckFramebufferStatus(x0){return GLctx.checkFramebufferStatus(x0)}var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;function _glClear(x0){GLctx.clear(x0)}var _emscripten_glClear=_glClear;function _glClearBufferfi(x0,x1,x2,x3){GLctx.clearBufferfi(x0,x1,x2,x3)}var _emscripten_glClearBufferfi=_glClearBufferfi;function _glClearBufferfv(buffer,drawbuffer,value){GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)}var _emscripten_glClearBufferfv=_glClearBufferfv;function _glClearBufferiv(buffer,drawbuffer,value){GLctx.clearBufferiv(buffer,drawbuffer,HEAP32,value>>2)}var _emscripten_glClearBufferiv=_glClearBufferiv;function _glClearBufferuiv(buffer,drawbuffer,value){GLctx.clearBufferuiv(buffer,drawbuffer,HEAPU32,value>>2)}var _emscripten_glClearBufferuiv=_glClearBufferuiv;function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _emscripten_glClearColor=_glClearColor;function _glClearDepthf(x0){GLctx.clearDepth(x0)}var _emscripten_glClearDepthf=_glClearDepthf;function _glClearStencil(x0){GLctx.clearStencil(x0)}var _emscripten_glClearStencil=_glClearStencil;function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _glClientWaitSync(sync,flags,timeout_low,timeout_high){var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)}var _emscripten_glClientWaitSync=_glClientWaitSync;function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}var _emscripten_glColorMask=_glColorMask;function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}var _emscripten_glCompileShader=_glCompileShader;function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;function _glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}var _emscripten_glCompressedTexImage3D=_glCompressedTexImage3D;function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}var _emscripten_glCompressedTexSubImage3D=_glCompressedTexSubImage3D;function _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx.copyBufferSubData(x0,x1,x2,x3,x4)}var _emscripten_glCopyBufferSubData=_glCopyBufferSubData;function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;function _glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx.copyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8)}var _emscripten_glCopyTexSubImage3D=_glCopyTexSubImage3D;function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}var _emscripten_glCreateProgram=_glCreateProgram;function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}var _emscripten_glCreateShader=_glCreateShader;function _glCullFace(x0){GLctx.cullFace(x0)}var _emscripten_glCullFace=_glCullFace;function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}var _emscripten_glDeleteBuffers=_glDeleteBuffers;function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}var _emscripten_glDeleteProgram=_glDeleteProgram;function _glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}}var _emscripten_glDeleteQueries=_glDeleteQueries;function _glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt[\"deleteQueryEXT\"](query);GL.queries[id]=null}}var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;function _glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx.deleteSampler(sampler);sampler.name=0;GL.samplers[id]=null}}var _emscripten_glDeleteSamplers=_glDeleteSamplers;function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}var _emscripten_glDeleteShader=_glDeleteShader;function _glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}var _emscripten_glDeleteSync=_glDeleteSync;function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}var _emscripten_glDeleteTextures=_glDeleteTextures;function _glDeleteTransformFeedbacks(n,ids){for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx.deleteTransformFeedback(transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}}var _emscripten_glDeleteTransformFeedbacks=_glDeleteTransformFeedbacks;function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}}var _emscripten_glDeleteVertexArrays=_glDeleteVertexArrays;var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;function _glDepthFunc(x0){GLctx.depthFunc(x0)}var _emscripten_glDepthFunc=_glDepthFunc;function _glDepthMask(flag){GLctx.depthMask(!!flag)}var _emscripten_glDepthMask=_glDepthMask;function _glDepthRangef(x0,x1){GLctx.depthRange(x0,x1)}var _emscripten_glDepthRangef=_glDepthRangef;function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}var _emscripten_glDetachShader=_glDetachShader;function _glDisable(x0){GLctx.disable(x0)}var _emscripten_glDisable=_glDisable;function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}var _emscripten_glDrawArrays=_glDrawArrays;function _glDrawArraysInstanced(mode,first,count,primcount){GLctx.drawArraysInstanced(mode,first,count,primcount)}var _emscripten_glDrawArraysInstanced=_glDrawArraysInstanced;var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var _glDrawArraysInstancedARB=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedARB=_glDrawArraysInstancedARB;var _glDrawArraysInstancedEXT=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT;var _glDrawArraysInstancedNV=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedNV=_glDrawArraysInstancedNV;var tempFixedLengthArray=[];function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)}var _emscripten_glDrawBuffers=_glDrawBuffers;var _glDrawBuffersEXT=_glDrawBuffers;var _emscripten_glDrawBuffersEXT=_glDrawBuffersEXT;var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}var _emscripten_glDrawElements=_glDrawElements;function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx.drawElementsInstanced(mode,count,type,indices,primcount)}var _emscripten_glDrawElementsInstanced=_glDrawElementsInstanced;var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;var _glDrawElementsInstancedARB=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedARB=_glDrawElementsInstancedARB;var _glDrawElementsInstancedEXT=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT;var _glDrawElementsInstancedNV=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedNV=_glDrawElementsInstancedNV;function _glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}var _emscripten_glDrawRangeElements=_glDrawRangeElements;function _glEnable(x0){GLctx.enable(x0)}var _emscripten_glEnable=_glEnable;function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;function _glEndQuery(x0){GLctx.endQuery(x0)}var _emscripten_glEndQuery=_glEndQuery;function _glEndQueryEXT(target){GLctx.disjointTimerQueryExt[\"endQueryEXT\"](target)}var _emscripten_glEndQueryEXT=_glEndQueryEXT;function _glEndTransformFeedback(){GLctx.endTransformFeedback()}var _emscripten_glEndTransformFeedback=_glEndTransformFeedback;function _glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0}var _emscripten_glFenceSync=_glFenceSync;function _glFinish(){GLctx.finish()}var _emscripten_glFinish=_glFinish;function _glFlush(){GLctx.flush()}var _emscripten_glFlush=_glFlush;function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}var _emscripten_glFramebufferTextureLayer=_glFramebufferTextureLayer;function _glFrontFace(x0){GLctx.frontFace(x0)}var _emscripten_glFrontFace=_glFrontFace;function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,\"createBuffer\",GL.buffers)}var _emscripten_glGenBuffers=_glGenBuffers;function _glGenFramebuffers(n,ids){__glGenObject(n,ids,\"createFramebuffer\",GL.framebuffers)}var _emscripten_glGenFramebuffers=_glGenFramebuffers;function _glGenQueries(n,ids){__glGenObject(n,ids,\"createQuery\",GL.queries)}var _emscripten_glGenQueries=_glGenQueries;function _glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,\"createRenderbuffer\",GL.renderbuffers)}var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;function _glGenSamplers(n,samplers){__glGenObject(n,samplers,\"createSampler\",GL.samplers)}var _emscripten_glGenSamplers=_glGenSamplers;function _glGenTextures(n,textures){__glGenObject(n,textures,\"createTexture\",GL.textures)}var _emscripten_glGenTextures=_glGenTextures;function _glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,\"createTransformFeedback\",GL.transformFeedbacks)}var _emscripten_glGenTransformFeedbacks=_glGenTransformFeedbacks;function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,\"createVertexArray\",GL.vaos)}var _emscripten_glGenVertexArrays=_glGenVertexArrays;var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;function _glGenerateMipmap(x0){GLctx.generateMipmap(x0)}var _emscripten_glGenerateMipmap=_glGenerateMipmap;function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform(\"getActiveAttrib\",program,index,bufSize,length,size,type,name)}var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform(\"getActiveUniform\",program,index,bufSize,length,size,type,name)}var _emscripten_glGetActiveUniform=_glGetActiveUniform;function _glGetActiveUniformBlockName(program,uniformBlockIndex,bufSize,length,uniformBlockName){program=GL.programs[program];var result=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}var _emscripten_glGetActiveUniformBlockName=_glGetActiveUniformBlockName;function _glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}}var _emscripten_glGetActiveUniformBlockiv=_glGetActiveUniformBlockiv;function _glGetActiveUniformsiv(program,uniformCount,uniformIndices,pname,params){if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx.getActiveUniforms(program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}var _emscripten_glGetActiveUniformsiv=_glGetActiveUniformsiv;function _glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}var _emscripten_glGetAttribLocation=_glGetAttribLocation;function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case\"number\":ret=result;break;case\"boolean\":ret=result?1:0;break;case\"string\":GL.recordError(1280);return;case\"object\":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(\"GL_INVALID_ENUM in glGet\"+type+\"v: Unknown object returned from WebGL getParameter(\"+name_+\")! (error: \"+e+\")\");return}}break;default:GL.recordError(1280);err(\"GL_INVALID_ENUM in glGet\"+type+\"v: Native code calling glGet\"+type+\"v(\"+name_+\") and it returns \"+result+\" of type \"+typeof result+\"!\");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}var _emscripten_glGetBooleanv=_glGetBooleanv;function _glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}var _emscripten_glGetBufferParameteri64v=_glGetBufferParameteri64v;function _glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}var _emscripten_glGetError=_glGetError;function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}var _emscripten_glGetFloatv=_glGetFloatv;function _glGetFragDataLocation(program,name){return GLctx.getFragDataLocation(GL.programs[program],UTF8ToString(name))}var _emscripten_glGetFragDataLocation=_glGetFragDataLocation;function _glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;function emscriptenWebGLGetIndexed(target,index,data,type){if(!data){GL.recordError(1281);return}var result=GLctx.getIndexedParameter(target,index);var ret;switch(typeof result){case\"boolean\":ret=result?1:0;break;case\"number\":ret=result;break;case\"object\":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data>>0]=ret?1:0;break;default:throw\"internal emscriptenWebGLGetIndexed() error, bad type: \"+type}}function _glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}var _emscripten_glGetInteger64i_v=_glGetInteger64i_v;function _glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}var _emscripten_glGetInteger64v=_glGetInteger64v;function _glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}var _emscripten_glGetIntegeri_v=_glGetIntegeri_v;function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}var _emscripten_glGetIntegerv=_glGetIntegerv;function _glGetInternalformativ(target,internalformat,pname,bufSize,params){if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx.getInternalformatParameter(target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}}var _emscripten_glGetInternalformativ=_glGetInternalformativ;function _glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}var _emscripten_glGetProgramBinary=_glGetProgramBinary;function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log=\"(unknown error)\";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log=\"(unknown error)\";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}var _emscripten_glGetProgramiv=_glGetProgramiv;function _glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt[\"getQueryObjectEXT\"](query,pname)}else{param=GLctx.getQueryParameter(query,pname)}var ret;if(typeof param==\"boolean\"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;function _glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt[\"getQueryObjectEXT\"](query,pname);var ret;if(typeof param==\"boolean\"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;function _glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.getQueryParameter(query,pname);var ret;if(typeof param==\"boolean\"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}var _emscripten_glGetQueryObjectuiv=_glGetQueryObjectuiv;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;function _glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getQuery(target,pname)}var _emscripten_glGetQueryiv=_glGetQueryiv;function _glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt[\"getQueryEXT\"](target,pname)}var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;function _glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;function _glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)}var _emscripten_glGetSamplerParameterfv=_glGetSamplerParameterfv;function _glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)}var _emscripten_glGetSamplerParameteriv=_glGetSamplerParameteriv;function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log=\"(unknown error)\";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;function _glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;function _glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}var _emscripten_glGetShaderSource=_glGetShaderSource;function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log=\"(unknown error)\";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}var _emscripten_glGetShaderiv=_glGetShaderiv;function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return\"GL_\"+e}));ret=stringToNewUTF8(exts.join(\" \"));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion=\"OpenGL ES 3.0 (\"+glVersion+\")\";else{glVersion=\"OpenGL ES 2.0 (\"+glVersion+\")\"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+\"0\";glslVersion=\"OpenGL ES GLSL ES \"+ver_num[1]+\" (\"+glslVersion+\")\"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}var _emscripten_glGetString=_glGetString;function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return\"GL_\"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}var _emscripten_glGetStringi=_glGetStringi;function _glGetSynciv(sync,pname,bufSize,length,values){if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}}var _emscripten_glGetSynciv=_glGetSynciv;function _glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;function _glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;function _glGetTransformFeedbackVarying(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx.getTransformFeedbackVarying(program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}var _emscripten_glGetTransformFeedbackVarying=_glGetTransformFeedbackVarying;function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName))}var _emscripten_glGetUniformBlockIndex=_glGetUniformBlockIndex;function _glGetUniformIndices(program,uniformCount,uniformNames,uniformIndices){if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx.getUniformIndices(program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}var _emscripten_glGetUniformIndices=_glGetUniformIndices;function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)==\"]\"&&name.lastIndexOf(\"[\")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?\"[\"+webglLoc+\"]\":\"\"))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data==\"number\"||typeof data==\"boolean\"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}var _emscripten_glGetUniformfv=_glGetUniformfv;function _glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}var _emscripten_glGetUniformiv=_glGetUniformiv;function _glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}var _emscripten_glGetUniformuiv=_glGetUniformuiv;function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data[\"name\"]}else if(typeof data==\"number\"||typeof data==\"boolean\"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}var _emscripten_glGetVertexAttribIiv=_glGetVertexAttribIiv;var _glGetVertexAttribIuiv=_glGetVertexAttribIiv;var _emscripten_glGetVertexAttribIuiv=_glGetVertexAttribIuiv;function _glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;function _glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;function _glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;function _glHint(x0,x1){GLctx.hint(x0,x1)}var _emscripten_glHint=_glHint;function _glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateFramebuffer(target,list)}var _emscripten_glInvalidateFramebuffer=_glInvalidateFramebuffer;function _glInvalidateSubFramebuffer(target,numAttachments,attachments,x,y,width,height){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateSubFramebuffer(target,list,x,y,width,height)}var _emscripten_glInvalidateSubFramebuffer=_glInvalidateSubFramebuffer;function _glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}var _emscripten_glIsBuffer=_glIsBuffer;function _glIsEnabled(x0){return GLctx.isEnabled(x0)}var _emscripten_glIsEnabled=_glIsEnabled;function _glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}var _emscripten_glIsFramebuffer=_glIsFramebuffer;function _glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}var _emscripten_glIsProgram=_glIsProgram;function _glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx.isQuery(query)}var _emscripten_glIsQuery=_glIsQuery;function _glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt[\"isQueryEXT\"](query)}var _emscripten_glIsQueryEXT=_glIsQueryEXT;function _glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;function _glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx.isSampler(sampler)}var _emscripten_glIsSampler=_glIsSampler;function _glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}var _emscripten_glIsShader=_glIsShader;function _glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}var _emscripten_glIsSync=_glIsSync;function _glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}var _emscripten_glIsTexture=_glIsTexture;function _glIsTransformFeedback(id){return GLctx.isTransformFeedback(GL.transformFeedbacks[id])}var _emscripten_glIsTransformFeedback=_glIsTransformFeedback;function _glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)}var _emscripten_glIsVertexArray=_glIsVertexArray;var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;function _glLineWidth(x0){GLctx.lineWidth(x0)}var _emscripten_glLineWidth=_glLineWidth;function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}var _emscripten_glLinkProgram=_glLinkProgram;function _glPauseTransformFeedback(){GLctx.pauseTransformFeedback()}var _emscripten_glPauseTransformFeedback=_glPauseTransformFeedback;function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}var _emscripten_glPixelStorei=_glPixelStorei;function _glPolygonOffset(x0,x1){GLctx.polygonOffset(x0,x1)}var _emscripten_glPolygonOffset=_glPolygonOffset;function _glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}var _emscripten_glProgramBinary=_glProgramBinary;function _glProgramParameteri(program,pname,value){GL.recordError(1280)}var _emscripten_glProgramParameteri=_glProgramParameteri;function _glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt[\"queryCounterEXT\"](GL.queries[id],target)}var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;function _glReadBuffer(x0){GLctx.readBuffer(x0)}var _emscripten_glReadBuffer=_glReadBuffer;function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}var _emscripten_glReadPixels=_glReadPixels;function _glReleaseShaderCompiler(){}var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;function _glRenderbufferStorage(x0,x1,x2,x3){GLctx.renderbufferStorage(x0,x1,x2,x3)}var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4)}var _emscripten_glRenderbufferStorageMultisample=_glRenderbufferStorageMultisample;function _glResumeTransformFeedback(){GLctx.resumeTransformFeedback()}var _emscripten_glResumeTransformFeedback=_glResumeTransformFeedback;function _glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}var _emscripten_glSampleCoverage=_glSampleCoverage;function _glSamplerParameterf(sampler,pname,param){GLctx.samplerParameterf(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameterf=_glSamplerParameterf;function _glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx.samplerParameterf(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameterfv=_glSamplerParameterfv;function _glSamplerParameteri(sampler,pname,param){GLctx.samplerParameteri(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameteri=_glSamplerParameteri;function _glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx.samplerParameteri(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameteriv=_glSamplerParameteriv;function _glScissor(x0,x1,x2,x3){GLctx.scissor(x0,x1,x2,x3)}var _emscripten_glScissor=_glScissor;function _glShaderBinary(count,shaders,binaryformat,binary,length){GL.recordError(1280)}var _emscripten_glShaderBinary=_glShaderBinary;function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}var _emscripten_glShaderSource=_glShaderSource;function _glStencilFunc(x0,x1,x2){GLctx.stencilFunc(x0,x1,x2)}var _emscripten_glStencilFunc=_glStencilFunc;function _glStencilFuncSeparate(x0,x1,x2,x3){GLctx.stencilFuncSeparate(x0,x1,x2,x3)}var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;function _glStencilMask(x0){GLctx.stencilMask(x0)}var _emscripten_glStencilMask=_glStencilMask;function _glStencilMaskSeparate(x0,x1){GLctx.stencilMaskSeparate(x0,x1)}var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;function _glStencilOp(x0,x1,x2){GLctx.stencilOp(x0,x1,x2)}var _emscripten_glStencilOp=_glStencilOp;function _glStencilOpSeparate(x0,x1,x2,x3){GLctx.stencilOpSeparate(x0,x1,x2,x3)}var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}var _emscripten_glTexImage2D=_glTexImage2D;function _glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}}var _emscripten_glTexImage3D=_glTexImage3D;function _glTexParameterf(x0,x1,x2){GLctx.texParameterf(x0,x1,x2)}var _emscripten_glTexParameterf=_glTexParameterf;function _glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}var _emscripten_glTexParameterfv=_glTexParameterfv;function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var _emscripten_glTexParameteri=_glTexParameteri;function _glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}var _emscripten_glTexParameteriv=_glTexParameteriv;function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx.texStorage2D(x0,x1,x2,x3,x4)}var _emscripten_glTexStorage2D=_glTexStorage2D;function _glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx.texStorage3D(x0,x1,x2,x3,x4,x5)}var _emscripten_glTexStorage3D=_glTexStorage3D;function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}var _emscripten_glTexSubImage2D=_glTexSubImage2D;function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}var _emscripten_glTexSubImage3D=_glTexSubImage3D;function _glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)}var _emscripten_glTransformFeedbackVaryings=_glTransformFeedbackVaryings;function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1f=_glUniform1f;var miniTempWebGLFloatBuffers=[];function _glUniform1fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}var _emscripten_glUniform1fv=_glUniform1fv;function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1i=_glUniform1i;var miniTempWebGLIntBuffers=[];function _glUniform1iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}var _emscripten_glUniform1iv=_glUniform1iv;function _glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1ui=_glUniform1ui;function _glUniform1uiv(location,count,value){count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)}var _emscripten_glUniform1uiv=_glUniform1uiv;function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2f=_glUniform2f;function _glUniform2fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}var _emscripten_glUniform2fv=_glUniform2fv;function _glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2i=_glUniform2i;function _glUniform2iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}var _emscripten_glUniform2iv=_glUniform2iv;function _glUniform2ui(location,v0,v1){GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2ui=_glUniform2ui;function _glUniform2uiv(location,count,value){count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)}var _emscripten_glUniform2uiv=_glUniform2uiv;function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3f=_glUniform3f;function _glUniform3fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}var _emscripten_glUniform3fv=_glUniform3fv;function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3i=_glUniform3i;function _glUniform3iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}var _emscripten_glUniform3iv=_glUniform3iv;function _glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3ui=_glUniform3ui;function _glUniform3uiv(location,count,value){count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)}var _emscripten_glUniform3uiv=_glUniform3uiv;function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4f=_glUniform4f;function _glUniform4fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}var _emscripten_glUniform4fv=_glUniform4fv;function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4i=_glUniform4i;function _glUniform4iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}var _emscripten_glUniform4iv=_glUniform4iv;function _glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4ui=_glUniform4ui;function _glUniform4uiv(location,count,value){count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)}var _emscripten_glUniform4uiv=_glUniform4uiv;function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)}var _emscripten_glUniformBlockBinding=_glUniformBlockBinding;function _glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;function _glUniformMatrix2x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}var _emscripten_glUniformMatrix2x3fv=_glUniformMatrix2x3fv;function _glUniformMatrix2x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}var _emscripten_glUniformMatrix2x4fv=_glUniformMatrix2x4fv;function _glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;function _glUniformMatrix3x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}var _emscripten_glUniformMatrix3x2fv=_glUniformMatrix3x2fv;function _glUniformMatrix3x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}var _emscripten_glUniformMatrix3x4fv=_glUniformMatrix3x4fv;function _glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;function _glUniformMatrix4x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}var _emscripten_glUniformMatrix4x2fv=_glUniformMatrix4x2fv;function _glUniformMatrix4x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}var _emscripten_glUniformMatrix4x3fv=_glUniformMatrix4x3fv;function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}var _emscripten_glUseProgram=_glUseProgram;function _glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}var _emscripten_glValidateProgram=_glValidateProgram;function _glVertexAttrib1f(x0,x1){GLctx.vertexAttrib1f(x0,x1)}var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;function _glVertexAttrib2f(x0,x1,x2){GLctx.vertexAttrib2f(x0,x1,x2)}var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;function _glVertexAttrib3f(x0,x1,x2,x3){GLctx.vertexAttrib3f(x0,x1,x2,x3)}var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx.vertexAttrib4f(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;function _glVertexAttribDivisor(index,divisor){GLctx.vertexAttribDivisor(index,divisor)}var _emscripten_glVertexAttribDivisor=_glVertexAttribDivisor;var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribDivisorARB=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorARB=_glVertexAttribDivisorARB;var _glVertexAttribDivisorEXT=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT;var _glVertexAttribDivisorNV=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorNV=_glVertexAttribDivisorNV;function _glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx.vertexAttribI4i(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttribI4i=_glVertexAttribI4i;function _glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}var _emscripten_glVertexAttribI4iv=_glVertexAttribI4iv;function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttribI4ui=_glVertexAttribI4ui;function _glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}var _emscripten_glVertexAttribI4uiv=_glVertexAttribI4uiv;function _glVertexAttribIPointer(index,size,type,stride,ptr){GLctx.vertexAttribIPointer(index,size,type,stride,ptr)}var _emscripten_glVertexAttribIPointer=_glVertexAttribIPointer;function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}var _emscripten_glViewport=_glViewport;function _glWaitSync(sync,flags,timeout_low,timeout_high){var timeout=convertI32PairToI53(timeout_low,timeout_high);GLctx.waitSync(GL.syncs[sync],flags,timeout)}var _emscripten_glWaitSync=_glWaitSync;function _emscripten_has_asyncify(){return 0}function _emscripten_is_main_browser_thread(){return!ENVIRONMENT_IS_WORKER}function doRequestFullscreen(target,strategy){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)}function _emscripten_request_fullscreen_strategy(target,deferUntilInEventHandler,fullscreenStrategy){var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function registerBeforeUnloadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){var beforeUnloadEventHandlerFunc=function(e=event){var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_beforeunload_callback_on_thread(userData,callbackfunc,targetThread){if(typeof onbeforeunload==\"undefined\")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,\"beforeunload\")}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(e=event){var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:\"\";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,\"blur\",targetThread)}function _emscripten_set_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;target.style.width=width+\"px\";target.style.height=height+\"px\";return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,\"focus\",targetThread)}function fillFullscreenChangeEventData(eventStruct){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:\"\";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}}function registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=function(e=event){var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_fullscreenchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,\"webkitfullscreenchange\",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,\"fullscreenchange\",targetThread)}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(e=event){var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e[\"gamepad\"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,\"gamepadconnected\",targetThread)}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,\"gamepaddisconnected\",targetThread)}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||\"\",keyEventData+44,32);stringToUTF8(e.code||\"\",keyEventData+76,32);stringToUTF8(e.char||\"\",keyEventData+108,32);stringToUTF8(e.locale||\"\",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,\"keydown\",targetThread)}function _emscripten_set_keypress_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,\"keypress\",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,\"keyup\",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e[\"movementX\"];HEAP32[idx+12]=e[\"movementY\"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(e=event){fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!=\"mousemove\"&&eventTypeString!=\"mouseenter\"&&eventTypeString!=\"mouseleave\",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,\"mousedown\",targetThread)}function _emscripten_set_mouseenter_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,\"mouseenter\",targetThread)}function _emscripten_set_mouseleave_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,\"mouseleave\",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,\"mousemove\",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,\"mouseup\",targetThread)}function fillPointerlockChangeEventData(eventStruct){var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:\"\";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)}function registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=function(e=event){var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_pointerlockchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,\"mozpointerlockchange\",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,\"webkitpointerlockchange\",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,\"mspointerlockchange\",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,\"pointerlockchange\",targetThread)}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(e=event){if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerUiEventCallback(target,userData,useCapture,callbackfunc,10,\"resize\",targetThread)}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString==\"touchstart\"||eventTypeString==\"touchend\",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,\"touchcancel\",targetThread)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,\"touchend\",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,\"touchmove\",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,\"touchstart\",targetThread)}function fillVisibilityChangeEventData(eventStruct){var visibilityStates=[\"hidden\",\"visible\",\"prerender\",\"unloaded\"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState}function registerVisibilityChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=function(e=event){var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_visibilitychange_callback_on_thread(userData,useCapture,callbackfunc,targetThread){return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,\"visibilitychange\",targetThread)}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(e=event){var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e[\"deltaX\"];HEAPF64[wheelEvent+80>>3]=e[\"deltaY\"];HEAPF64[wheelEvent+88>>3]=e[\"deltaZ\"];HEAP32[wheelEvent+96>>2]=e[\"deltaMode\"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!=\"undefined\"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,\"wheel\",targetThread)}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}function _emscripten_sleep(){throw\"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep\"}var Fetch={openDatabase:function(dbname,dbversion,onsuccess,onerror){try{var openRequest=indexedDB.open(dbname,dbversion)}catch(e){return onerror(e)}openRequest.onupgradeneeded=event=>{var db=event.target.result;if(db.objectStoreNames.contains(\"FILES\")){db.deleteObjectStore(\"FILES\")}db.createObjectStore(\"FILES\")};openRequest.onsuccess=event=>onsuccess(event.target.result);openRequest.onerror=error=>onerror(error)},init:function(){Fetch.xhrs=new HandleAllocator;var onsuccess=db=>{Fetch.dbInstance=db;removeRunDependency(\"library_fetch_init\")};var onerror=()=>{Fetch.dbInstance=false;removeRunDependency(\"library_fetch_init\")};addRunDependency(\"library_fetch_init\");Fetch.openDatabase(\"emscripten_filesystem\",1,onsuccess,onerror)}};function fetchXHR(fetch,onsuccess,onerror,onprogress,onreadystatechange){var url=HEAPU32[fetch+8>>2];if(!url){onerror(fetch,0,\"no url specified!\");return}var url_=UTF8ToString(url);var fetch_attr=fetch+112;var requestMethod=UTF8ToString(fetch_attr+0);if(!requestMethod)requestMethod=\"GET\";var timeoutMsecs=HEAPU32[fetch_attr+56>>2];var userName=HEAPU32[fetch_attr+68>>2];var password=HEAPU32[fetch_attr+72>>2];var requestHeaders=HEAPU32[fetch_attr+76>>2];var overriddenMimeType=HEAPU32[fetch_attr+80>>2];var dataPtr=HEAPU32[fetch_attr+84>>2];var dataLength=HEAPU32[fetch_attr+88>>2];var fetchAttributes=HEAPU32[fetch_attr+52>>2];var fetchAttrLoadToMemory=!!(fetchAttributes&1);var fetchAttrStreamData=!!(fetchAttributes&2);var fetchAttrSynchronous=!!(fetchAttributes&64);var userNameStr=userName?UTF8ToString(userName):undefined;var passwordStr=password?UTF8ToString(password):undefined;var xhr=new XMLHttpRequest;xhr.withCredentials=!!HEAPU8[fetch_attr+60>>0];xhr.open(requestMethod,url_,!fetchAttrSynchronous,userNameStr,passwordStr);if(!fetchAttrSynchronous)xhr.timeout=timeoutMsecs;xhr.url_=url_;xhr.responseType=\"arraybuffer\";if(overriddenMimeType){var overriddenMimeTypeStr=UTF8ToString(overriddenMimeType);xhr.overrideMimeType(overriddenMimeTypeStr)}if(requestHeaders){for(;;){var key=HEAPU32[requestHeaders>>2];if(!key)break;var value=HEAPU32[requestHeaders+4>>2];if(!value)break;requestHeaders+=8;var keyStr=UTF8ToString(key);var valueStr=UTF8ToString(value);xhr.setRequestHeader(keyStr,valueStr)}}var id=Fetch.xhrs.allocate(xhr);HEAPU32[fetch>>2]=id;var data=dataPtr&&dataLength?HEAPU8.slice(dataPtr,dataPtr+dataLength):null;function saveResponseAndStatus(){var ptr=0;var ptrLen=0;if(xhr.response&&fetchAttrLoadToMemory&&HEAPU32[fetch+12>>2]===0){ptrLen=xhr.response.byteLength}if(ptrLen>0){ptr=_malloc(ptrLen);HEAPU8.set(new Uint8Array(xhr.response),ptr)}HEAPU32[fetch+12>>2]=ptr;writeI53ToI64(fetch+16,ptrLen);writeI53ToI64(fetch+24,0);var len=xhr.response?xhr.response.byteLength:0;if(len){writeI53ToI64(fetch+32,len)}HEAPU16[fetch+40>>1]=xhr.readyState;HEAPU16[fetch+42>>1]=xhr.status;if(xhr.statusText)stringToUTF8(xhr.statusText,fetch+44,64)}xhr.onload=e=>{if(!Fetch.xhrs.has(id)){return}saveResponseAndStatus();if(xhr.status>=200&&xhr.status<300){if(onsuccess)onsuccess(fetch,xhr,e)}else{if(onerror)onerror(fetch,xhr,e)}};xhr.onerror=e=>{if(!Fetch.xhrs.has(id)){return}saveResponseAndStatus();if(onerror)onerror(fetch,xhr,e)};xhr.ontimeout=e=>{if(!Fetch.xhrs.has(id)){return}if(onerror)onerror(fetch,xhr,e)};xhr.onprogress=e=>{if(!Fetch.xhrs.has(id)){return}var ptrLen=fetchAttrLoadToMemory&&fetchAttrStreamData&&xhr.response?xhr.response.byteLength:0;var ptr=0;if(ptrLen>0&&fetchAttrLoadToMemory&&fetchAttrStreamData){ptr=_malloc(ptrLen);HEAPU8.set(new Uint8Array(xhr.response),ptr)}HEAPU32[fetch+12>>2]=ptr;writeI53ToI64(fetch+16,ptrLen);writeI53ToI64(fetch+24,e.loaded-ptrLen);writeI53ToI64(fetch+32,e.total);HEAPU16[fetch+40>>1]=xhr.readyState;if(xhr.readyState>=3&&xhr.status===0&&e.loaded>0)xhr.status=200;HEAPU16[fetch+42>>1]=xhr.status;if(xhr.statusText)stringToUTF8(xhr.statusText,fetch+44,64);if(onprogress)onprogress(fetch,xhr,e);if(ptr){_free(ptr)}};xhr.onreadystatechange=e=>{if(!Fetch.xhrs.has(id)){return}HEAPU16[fetch+40>>1]=xhr.readyState;if(xhr.readyState>=2){HEAPU16[fetch+42>>1]=xhr.status}if(onreadystatechange)onreadystatechange(fetch,xhr,e)};try{xhr.send(data)}catch(e){if(onerror)onerror(fetch,xhr,e)}}function fetchCacheData(db,fetch,data,onsuccess,onerror){if(!db){onerror(fetch,0,\"IndexedDB not available!\");return}var fetch_attr=fetch+112;var destinationPath=HEAPU32[fetch_attr+64>>2];if(!destinationPath)destinationPath=HEAPU32[fetch+8>>2];var destinationPathStr=UTF8ToString(destinationPath);try{var transaction=db.transaction([\"FILES\"],\"readwrite\");var packages=transaction.objectStore(\"FILES\");var putRequest=packages.put(data,destinationPathStr);putRequest.onsuccess=event=>{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=200;stringToUTF8(\"OK\",fetch+44,64);onsuccess(fetch,0,destinationPathStr)};putRequest.onerror=error=>{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=413;stringToUTF8(\"Payload Too Large\",fetch+44,64);onerror(fetch,0,error)}}catch(e){onerror(fetch,0,e)}}function fetchLoadCachedData(db,fetch,onsuccess,onerror){if(!db){onerror(fetch,0,\"IndexedDB not available!\");return}var fetch_attr=fetch+112;var path=HEAPU32[fetch_attr+64>>2];if(!path)path=HEAPU32[fetch+8>>2];var pathStr=UTF8ToString(path);try{var transaction=db.transaction([\"FILES\"],\"readonly\");var packages=transaction.objectStore(\"FILES\");var getRequest=packages.get(pathStr);getRequest.onsuccess=event=>{if(event.target.result){var value=event.target.result;var len=value.byteLength||value.length;var ptr=_malloc(len);HEAPU8.set(new Uint8Array(value),ptr);HEAPU32[fetch+12>>2]=ptr;writeI53ToI64(fetch+16,len);writeI53ToI64(fetch+24,0);writeI53ToI64(fetch+32,len);HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=200;stringToUTF8(\"OK\",fetch+44,64);onsuccess(fetch,0,value)}else{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=404;stringToUTF8(\"Not Found\",fetch+44,64);onerror(fetch,0,\"no data\")}};getRequest.onerror=error=>{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=404;stringToUTF8(\"Not Found\",fetch+44,64);onerror(fetch,0,error)}}catch(e){onerror(fetch,0,e)}}function fetchDeleteCachedData(db,fetch,onsuccess,onerror){if(!db){onerror(fetch,0,\"IndexedDB not available!\");return}var fetch_attr=fetch+112;var path=HEAPU32[fetch_attr+64>>2];if(!path)path=HEAPU32[fetch+8>>2];var pathStr=UTF8ToString(path);try{var transaction=db.transaction([\"FILES\"],\"readwrite\");var packages=transaction.objectStore(\"FILES\");var request=packages.delete(pathStr);request.onsuccess=event=>{var value=event.target.result;HEAPU32[fetch+12>>2]=0;writeI53ToI64(fetch+16,0);writeI53ToI64(fetch+24,0);writeI53ToI64(fetch+32,0);HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=200;stringToUTF8(\"OK\",fetch+44,64);onsuccess(fetch,0,value)};request.onerror=error=>{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=404;stringToUTF8(\"Not Found\",fetch+44,64);onerror(fetch,0,error)}}catch(e){onerror(fetch,0,e)}}function _emscripten_start_fetch(fetch,successcb,errorcb,progresscb,readystatechangecb){var fetch_attr=fetch+112;var onsuccess=HEAPU32[fetch_attr+36>>2];var onerror=HEAPU32[fetch_attr+40>>2];var onprogress=HEAPU32[fetch_attr+44>>2];var onreadystatechange=HEAPU32[fetch_attr+48>>2];var fetchAttributes=HEAPU32[fetch_attr+52>>2];var fetchAttrSynchronous=!!(fetchAttributes&64);function doCallback(f){if(fetchAttrSynchronous){f()}else{callUserCallback(f)}}var reportSuccess=(fetch,xhr,e)=>{doCallback(()=>{if(onsuccess)getWasmTableEntry(onsuccess)(fetch);else if(successcb)successcb(fetch)})};var reportProgress=(fetch,xhr,e)=>{doCallback(()=>{if(onprogress)getWasmTableEntry(onprogress)(fetch);else if(progresscb)progresscb(fetch)})};var reportError=(fetch,xhr,e)=>{doCallback(()=>{if(onerror)getWasmTableEntry(onerror)(fetch);else if(errorcb)errorcb(fetch)})};var reportReadyStateChange=(fetch,xhr,e)=>{doCallback(()=>{if(onreadystatechange)getWasmTableEntry(onreadystatechange)(fetch);else if(readystatechangecb)readystatechangecb(fetch)})};var performUncachedXhr=(fetch,xhr,e)=>{fetchXHR(fetch,reportSuccess,reportError,reportProgress,reportReadyStateChange)};var cacheResultAndReportSuccess=(fetch,xhr,e)=>{var storeSuccess=(fetch,xhr,e)=>{doCallback(()=>{if(onsuccess)getWasmTableEntry(onsuccess)(fetch);else if(successcb)successcb(fetch)})};var storeError=(fetch,xhr,e)=>{doCallback(()=>{if(onsuccess)getWasmTableEntry(onsuccess)(fetch);else if(successcb)successcb(fetch)})};fetchCacheData(Fetch.dbInstance,fetch,xhr.response,storeSuccess,storeError)};var performCachedXhr=(fetch,xhr,e)=>{fetchXHR(fetch,cacheResultAndReportSuccess,reportError,reportProgress,reportReadyStateChange)};var requestMethod=UTF8ToString(fetch_attr+0);var fetchAttrReplace=!!(fetchAttributes&16);var fetchAttrPersistFile=!!(fetchAttributes&4);var fetchAttrNoDownload=!!(fetchAttributes&32);if(requestMethod===\"EM_IDB_STORE\"){var ptr=HEAPU32[fetch_attr+84>>2];var size=HEAPU32[fetch_attr+88>>2];fetchCacheData(Fetch.dbInstance,fetch,HEAPU8.slice(ptr,ptr+size),reportSuccess,reportError)}else if(requestMethod===\"EM_IDB_DELETE\"){fetchDeleteCachedData(Fetch.dbInstance,fetch,reportSuccess,reportError)}else if(!fetchAttrReplace){fetchLoadCachedData(Fetch.dbInstance,fetch,reportSuccess,fetchAttrNoDownload?reportError:fetchAttrPersistFile?performCachedXhr:performUncachedXhr)}else if(!fetchAttrNoDownload){fetchXHR(fetch,fetchAttrPersistFile?cacheResultAndReportSuccess:reportSuccess,reportError,reportProgress,reportReadyStateChange)}else{return 0}return fetch}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings}function stringToAscii(str,buffer){for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!==\"undefined\"){offset+=curr}}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value==\"number\"?value.toString():value||\"\";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}return\"PM\"},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},\"%V\":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};pattern=pattern.replace(/%%/g,\"\\0\\0\");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\\0\\0/g,\"%\");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}function getCFunc(ident){var func=Module[\"_\"+ident];return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},\"array\":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;itype===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module[\"FS_createPath\"]=FS.createPath;Module[\"FS_createDataFile\"]=FS.createDataFile;Module[\"FS_createPreloadedFile\"]=FS.createPreloadedFile;Module[\"FS_unlink\"]=FS.unlink;Module[\"FS_createLazyFile\"]=FS.createLazyFile;Module[\"FS_createDevice\"]=FS.createDevice;BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_emval();PureVirtualError=Module[\"PureVirtualError\"]=extendError(Error,\"PureVirtualError\");embind_init_charCodes();init_embind();InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");init_ClassHandle();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");Module[\"requestFullscreen\"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module[\"requestAnimationFrame\"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module[\"setCanvasSize\"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module[\"pauseMainLoop\"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module[\"resumeMainLoop\"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module[\"getUserMedia\"]=function Module_getUserMedia(){Browser.getUserMedia()};Module[\"createContext\"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Fetch.init();var wasmImports={\"g\":___cxa_throw,\"ga\":___syscall_fcntl64,\"rb\":___syscall_ioctl,\"sb\":___syscall_openat,\"pb\":___syscall_stat64,\"Na\":__embind_create_inheriting_constructor,\"gb\":__embind_register_bigint,\"Pg\":__embind_register_bool,\"c\":__embind_register_class,\"f\":__embind_register_class_class_function,\"e\":__embind_register_class_constructor,\"a\":__embind_register_class_function,\"b\":__embind_register_class_property,\"Og\":__embind_register_emval,\"k\":__embind_register_enum,\"d\":__embind_register_enum_value,\"oa\":__embind_register_float,\"i\":__embind_register_function,\"r\":__embind_register_integer,\"j\":__embind_register_memory_view,\"na\":__embind_register_std_string,\"R\":__embind_register_std_wstring,\"Qg\":__embind_register_void,\"Rg\":__emscripten_fetch_free,\"tb\":__emscripten_get_now_is_monotonic,\"ib\":__emscripten_throw_longjmp,\"Y\":__emval_call_method,\"C\":__emval_call_void_method,\"x\":__emval_decref,\"v\":__emval_get_method_caller,\"Z\":__emval_incref,\"X\":__emval_run_destructors,\"s\":__emval_take_value,\"lb\":__localtime_js,\"kb\":__tzset_js,\"y\":_abort,\"kh\":_eglBindAPI,\"nh\":_eglChooseConfig,\"bh\":_eglCreateContext,\"dh\":_eglCreateWindowSurface,\"ch\":_eglDestroyContext,\"eh\":_eglDestroySurface,\"oh\":_eglGetConfigAttrib,\"La\":_eglGetDisplay,\"ah\":_eglGetError,\"lh\":_eglInitialize,\"fh\":_eglMakeCurrent,\"$g\":_eglQueryString,\"gh\":_eglSwapBuffers,\"hh\":_eglSwapInterval,\"mh\":_eglTerminate,\"jh\":_eglWaitGL,\"ih\":_eglWaitNative,\"z\":_emscripten_asm_const_int,\"m\":_emscripten_asm_const_int_sync_on_main_thread,\"ab\":_emscripten_cancel_main_loop,\"ha\":_emscripten_date_now,\"Ug\":_emscripten_exit_fullscreen,\"Zg\":_emscripten_exit_pointerlock,\"B\":_emscripten_get_device_pixel_ratio,\"u\":_emscripten_get_element_css_size,\"V\":_emscripten_get_gamepad_status,\"Q\":_emscripten_get_now,\"Ma\":_emscripten_get_num_gamepads,\"_g\":_emscripten_get_screen_size,\"tg\":_emscripten_glActiveTexture,\"sg\":_emscripten_glAttachShader,\"ld\":_emscripten_glBeginQuery,\"Kg\":_emscripten_glBeginQueryEXT,\"Uc\":_emscripten_glBeginTransformFeedback,\"rg\":_emscripten_glBindAttribLocation,\"pg\":_emscripten_glBindBuffer,\"Rc\":_emscripten_glBindBufferBase,\"Sc\":_emscripten_glBindBufferRange,\"og\":_emscripten_glBindFramebuffer,\"ng\":_emscripten_glBindRenderbuffer,\"Xb\":_emscripten_glBindSampler,\"mg\":_emscripten_glBindTexture,\"Pb\":_emscripten_glBindTransformFeedback,\"Zc\":_emscripten_glBindVertexArray,\"Cg\":_emscripten_glBindVertexArrayOES,\"lg\":_emscripten_glBlendColor,\"kg\":_emscripten_glBlendEquation,\"jg\":_emscripten_glBlendEquationSeparate,\"ig\":_emscripten_glBlendFunc,\"hg\":_emscripten_glBlendFuncSeparate,\"ad\":_emscripten_glBlitFramebuffer,\"gg\":_emscripten_glBufferData,\"fg\":_emscripten_glBufferSubData,\"eg\":_emscripten_glCheckFramebufferStatus,\"dg\":_emscripten_glClear,\"tc\":_emscripten_glClearBufferfi,\"uc\":_emscripten_glClearBufferfv,\"wc\":_emscripten_glClearBufferiv,\"vc\":_emscripten_glClearBufferuiv,\"cg\":_emscripten_glClearColor,\"bg\":_emscripten_glClearDepthf,\"ag\":_emscripten_glClearStencil,\"fc\":_emscripten_glClientWaitSync,\"$f\":_emscripten_glColorMask,\"_f\":_emscripten_glCompileShader,\"Zf\":_emscripten_glCompressedTexImage2D,\"rd\":_emscripten_glCompressedTexImage3D,\"Yf\":_emscripten_glCompressedTexSubImage2D,\"qd\":_emscripten_glCompressedTexSubImage3D,\"rc\":_emscripten_glCopyBufferSubData,\"Wf\":_emscripten_glCopyTexImage2D,\"Vf\":_emscripten_glCopyTexSubImage2D,\"sd\":_emscripten_glCopyTexSubImage3D,\"Uf\":_emscripten_glCreateProgram,\"Tf\":_emscripten_glCreateShader,\"Sf\":_emscripten_glCullFace,\"Rf\":_emscripten_glDeleteBuffers,\"Qf\":_emscripten_glDeleteFramebuffers,\"Pf\":_emscripten_glDeleteProgram,\"nd\":_emscripten_glDeleteQueries,\"Mg\":_emscripten_glDeleteQueriesEXT,\"Of\":_emscripten_glDeleteRenderbuffers,\"_b\":_emscripten_glDeleteSamplers,\"Nf\":_emscripten_glDeleteShader,\"gc\":_emscripten_glDeleteSync,\"Mf\":_emscripten_glDeleteTextures,\"Ob\":_emscripten_glDeleteTransformFeedbacks,\"Yc\":_emscripten_glDeleteVertexArrays,\"Ag\":_emscripten_glDeleteVertexArraysOES,\"Lf\":_emscripten_glDepthFunc,\"Kf\":_emscripten_glDepthMask,\"Jf\":_emscripten_glDepthRangef,\"If\":_emscripten_glDetachShader,\"Hf\":_emscripten_glDisable,\"Gf\":_emscripten_glDisableVertexAttribArray,\"Ff\":_emscripten_glDrawArrays,\"kc\":_emscripten_glDrawArraysInstanced,\"wg\":_emscripten_glDrawArraysInstancedANGLE,\"xb\":_emscripten_glDrawArraysInstancedARB,\"zd\":_emscripten_glDrawArraysInstancedEXT,\"yb\":_emscripten_glDrawArraysInstancedNV,\"hd\":_emscripten_glDrawBuffers,\"xd\":_emscripten_glDrawBuffersEXT,\"xg\":_emscripten_glDrawBuffersWEBGL,\"Ef\":_emscripten_glDrawElements,\"jc\":_emscripten_glDrawElementsInstanced,\"vg\":_emscripten_glDrawElementsInstancedANGLE,\"vb\":_emscripten_glDrawElementsInstancedARB,\"wb\":_emscripten_glDrawElementsInstancedEXT,\"yd\":_emscripten_glDrawElementsInstancedNV,\"vd\":_emscripten_glDrawRangeElements,\"Df\":_emscripten_glEnable,\"Cf\":_emscripten_glEnableVertexAttribArray,\"kd\":_emscripten_glEndQuery,\"Jg\":_emscripten_glEndQueryEXT,\"Tc\":_emscripten_glEndTransformFeedback,\"ic\":_emscripten_glFenceSync,\"Bf\":_emscripten_glFinish,\"Af\":_emscripten_glFlush,\"zf\":_emscripten_glFramebufferRenderbuffer,\"yf\":_emscripten_glFramebufferTexture2D,\"_c\":_emscripten_glFramebufferTextureLayer,\"xf\":_emscripten_glFrontFace,\"wf\":_emscripten_glGenBuffers,\"uf\":_emscripten_glGenFramebuffers,\"od\":_emscripten_glGenQueries,\"Ng\":_emscripten_glGenQueriesEXT,\"tf\":_emscripten_glGenRenderbuffers,\"$b\":_emscripten_glGenSamplers,\"rf\":_emscripten_glGenTextures,\"Nb\":_emscripten_glGenTransformFeedbacks,\"Xc\":_emscripten_glGenVertexArrays,\"zg\":_emscripten_glGenVertexArraysOES,\"vf\":_emscripten_glGenerateMipmap,\"qf\":_emscripten_glGetActiveAttrib,\"pf\":_emscripten_glGetActiveUniform,\"mc\":_emscripten_glGetActiveUniformBlockName,\"nc\":_emscripten_glGetActiveUniformBlockiv,\"pc\":_emscripten_glGetActiveUniformsiv,\"of\":_emscripten_glGetAttachedShaders,\"nf\":_emscripten_glGetAttribLocation,\"mf\":_emscripten_glGetBooleanv,\"ac\":_emscripten_glGetBufferParameteri64v,\"lf\":_emscripten_glGetBufferParameteriv,\"kf\":_emscripten_glGetError,\"jf\":_emscripten_glGetFloatv,\"Gc\":_emscripten_glGetFragDataLocation,\"hf\":_emscripten_glGetFramebufferAttachmentParameteriv,\"bc\":_emscripten_glGetInteger64i_v,\"dc\":_emscripten_glGetInteger64v,\"Vc\":_emscripten_glGetIntegeri_v,\"ff\":_emscripten_glGetIntegerv,\"Bb\":_emscripten_glGetInternalformativ,\"Jb\":_emscripten_glGetProgramBinary,\"df\":_emscripten_glGetProgramInfoLog,\"ef\":_emscripten_glGetProgramiv,\"Eg\":_emscripten_glGetQueryObjecti64vEXT,\"Gg\":_emscripten_glGetQueryObjectivEXT,\"Dg\":_emscripten_glGetQueryObjectui64vEXT,\"id\":_emscripten_glGetQueryObjectuiv,\"Fg\":_emscripten_glGetQueryObjectuivEXT,\"jd\":_emscripten_glGetQueryiv,\"Hg\":_emscripten_glGetQueryivEXT,\"cf\":_emscripten_glGetRenderbufferParameteriv,\"Rb\":_emscripten_glGetSamplerParameterfv,\"Sb\":_emscripten_glGetSamplerParameteriv,\"af\":_emscripten_glGetShaderInfoLog,\"$e\":_emscripten_glGetShaderPrecisionFormat,\"_e\":_emscripten_glGetShaderSource,\"bf\":_emscripten_glGetShaderiv,\"Ze\":_emscripten_glGetString,\"sc\":_emscripten_glGetStringi,\"cc\":_emscripten_glGetSynciv,\"Ye\":_emscripten_glGetTexParameterfv,\"We\":_emscripten_glGetTexParameteriv,\"Pc\":_emscripten_glGetTransformFeedbackVarying,\"oc\":_emscripten_glGetUniformBlockIndex,\"qc\":_emscripten_glGetUniformIndices,\"Te\":_emscripten_glGetUniformLocation,\"Ve\":_emscripten_glGetUniformfv,\"Ue\":_emscripten_glGetUniformiv,\"Hc\":_emscripten_glGetUniformuiv,\"Nc\":_emscripten_glGetVertexAttribIiv,\"Mc\":_emscripten_glGetVertexAttribIuiv,\"Qe\":_emscripten_glGetVertexAttribPointerv,\"Se\":_emscripten_glGetVertexAttribfv,\"Re\":_emscripten_glGetVertexAttribiv,\"Pe\":_emscripten_glHint,\"Gb\":_emscripten_glInvalidateFramebuffer,\"Fb\":_emscripten_glInvalidateSubFramebuffer,\"Oe\":_emscripten_glIsBuffer,\"Ne\":_emscripten_glIsEnabled,\"Le\":_emscripten_glIsFramebuffer,\"Ke\":_emscripten_glIsProgram,\"md\":_emscripten_glIsQuery,\"Lg\":_emscripten_glIsQueryEXT,\"Je\":_emscripten_glIsRenderbuffer,\"Yb\":_emscripten_glIsSampler,\"Ie\":_emscripten_glIsShader,\"hc\":_emscripten_glIsSync,\"He\":_emscripten_glIsTexture,\"Mb\":_emscripten_glIsTransformFeedback,\"Wc\":_emscripten_glIsVertexArray,\"yg\":_emscripten_glIsVertexArrayOES,\"Ge\":_emscripten_glLineWidth,\"Fe\":_emscripten_glLinkProgram,\"Lb\":_emscripten_glPauseTransformFeedback,\"Ee\":_emscripten_glPixelStorei,\"De\":_emscripten_glPolygonOffset,\"Ib\":_emscripten_glProgramBinary,\"Hb\":_emscripten_glProgramParameteri,\"Ig\":_emscripten_glQueryCounterEXT,\"wd\":_emscripten_glReadBuffer,\"Ce\":_emscripten_glReadPixels,\"Ae\":_emscripten_glReleaseShaderCompiler,\"ze\":_emscripten_glRenderbufferStorage,\"$c\":_emscripten_glRenderbufferStorageMultisample,\"Kb\":_emscripten_glResumeTransformFeedback,\"ye\":_emscripten_glSampleCoverage,\"Ub\":_emscripten_glSamplerParameterf,\"Tb\":_emscripten_glSamplerParameterfv,\"Wb\":_emscripten_glSamplerParameteri,\"Vb\":_emscripten_glSamplerParameteriv,\"xe\":_emscripten_glScissor,\"we\":_emscripten_glShaderBinary,\"ve\":_emscripten_glShaderSource,\"ue\":_emscripten_glStencilFunc,\"te\":_emscripten_glStencilFuncSeparate,\"se\":_emscripten_glStencilMask,\"re\":_emscripten_glStencilMaskSeparate,\"pe\":_emscripten_glStencilOp,\"oe\":_emscripten_glStencilOpSeparate,\"ne\":_emscripten_glTexImage2D,\"ud\":_emscripten_glTexImage3D,\"me\":_emscripten_glTexParameterf,\"le\":_emscripten_glTexParameterfv,\"ke\":_emscripten_glTexParameteri,\"je\":_emscripten_glTexParameteriv,\"Db\":_emscripten_glTexStorage2D,\"Cb\":_emscripten_glTexStorage3D,\"ie\":_emscripten_glTexSubImage2D,\"td\":_emscripten_glTexSubImage3D,\"Qc\":_emscripten_glTransformFeedbackVaryings,\"he\":_emscripten_glUniform1f,\"ge\":_emscripten_glUniform1fv,\"ee\":_emscripten_glUniform1i,\"de\":_emscripten_glUniform1iv,\"Fc\":_emscripten_glUniform1ui,\"Ac\":_emscripten_glUniform1uiv,\"ce\":_emscripten_glUniform2f,\"be\":_emscripten_glUniform2fv,\"ae\":_emscripten_glUniform2i,\"$d\":_emscripten_glUniform2iv,\"Ec\":_emscripten_glUniform2ui,\"zc\":_emscripten_glUniform2uiv,\"_d\":_emscripten_glUniform3f,\"Zd\":_emscripten_glUniform3fv,\"Yd\":_emscripten_glUniform3i,\"Xd\":_emscripten_glUniform3iv,\"Dc\":_emscripten_glUniform3ui,\"yc\":_emscripten_glUniform3uiv,\"Vd\":_emscripten_glUniform4f,\"Ud\":_emscripten_glUniform4fv,\"Td\":_emscripten_glUniform4i,\"Sd\":_emscripten_glUniform4iv,\"Bc\":_emscripten_glUniform4ui,\"xc\":_emscripten_glUniform4uiv,\"lc\":_emscripten_glUniformBlockBinding,\"Rd\":_emscripten_glUniformMatrix2fv,\"gd\":_emscripten_glUniformMatrix2x3fv,\"ed\":_emscripten_glUniformMatrix2x4fv,\"Qd\":_emscripten_glUniformMatrix3fv,\"fd\":_emscripten_glUniformMatrix3x2fv,\"cd\":_emscripten_glUniformMatrix3x4fv,\"Pd\":_emscripten_glUniformMatrix4fv,\"dd\":_emscripten_glUniformMatrix4x2fv,\"bd\":_emscripten_glUniformMatrix4x3fv,\"Od\":_emscripten_glUseProgram,\"Nd\":_emscripten_glValidateProgram,\"Md\":_emscripten_glVertexAttrib1f,\"Kd\":_emscripten_glVertexAttrib1fv,\"Jd\":_emscripten_glVertexAttrib2f,\"Id\":_emscripten_glVertexAttrib2fv,\"Hd\":_emscripten_glVertexAttrib3f,\"Gd\":_emscripten_glVertexAttrib3fv,\"Fd\":_emscripten_glVertexAttrib4f,\"Ed\":_emscripten_glVertexAttrib4fv,\"Qb\":_emscripten_glVertexAttribDivisor,\"ug\":_emscripten_glVertexAttribDivisorANGLE,\"zb\":_emscripten_glVertexAttribDivisorARB,\"Bd\":_emscripten_glVertexAttribDivisorEXT,\"Ab\":_emscripten_glVertexAttribDivisorNV,\"Lc\":_emscripten_glVertexAttribI4i,\"Jc\":_emscripten_glVertexAttribI4iv,\"Kc\":_emscripten_glVertexAttribI4ui,\"Ic\":_emscripten_glVertexAttribI4uiv,\"Oc\":_emscripten_glVertexAttribIPointer,\"Dd\":_emscripten_glVertexAttribPointer,\"Cd\":_emscripten_glViewport,\"ec\":_emscripten_glWaitSync,\"L\":_emscripten_has_asyncify,\"Tg\":_emscripten_is_main_browser_thread,\"Vg\":_emscripten_request_fullscreen_strategy,\"Ka\":_emscripten_request_pointerlock,\"jb\":_emscripten_resize_heap,\"W\":_emscripten_sample_gamepad_data,\"qa\":_emscripten_set_beforeunload_callback_on_thread,\"Ca\":_emscripten_set_blur_callback_on_thread,\"A\":_emscripten_set_canvas_element_size,\"S\":_emscripten_set_element_css_size,\"Da\":_emscripten_set_focus_callback_on_thread,\"ta\":_emscripten_set_fullscreenchange_callback_on_thread,\"U\":_emscripten_set_gamepadconnected_callback_on_thread,\"T\":_emscripten_set_gamepaddisconnected_callback_on_thread,\"wa\":_emscripten_set_keydown_callback_on_thread,\"ua\":_emscripten_set_keypress_callback_on_thread,\"va\":_emscripten_set_keyup_callback_on_thread,\"Ua\":_emscripten_set_main_loop,\"Ia\":_emscripten_set_mousedown_callback_on_thread,\"Ga\":_emscripten_set_mouseenter_callback_on_thread,\"Fa\":_emscripten_set_mouseleave_callback_on_thread,\"Ja\":_emscripten_set_mousemove_callback_on_thread,\"Ha\":_emscripten_set_mouseup_callback_on_thread,\"xa\":_emscripten_set_pointerlockchange_callback_on_thread,\"sa\":_emscripten_set_resize_callback_on_thread,\"ya\":_emscripten_set_touchcancel_callback_on_thread,\"Aa\":_emscripten_set_touchend_callback_on_thread,\"za\":_emscripten_set_touchmove_callback_on_thread,\"Ba\":_emscripten_set_touchstart_callback_on_thread,\"ra\":_emscripten_set_visibilitychange_callback_on_thread,\"Ea\":_emscripten_set_wheel_callback_on_thread,\"Wg\":_emscripten_set_window_title,\"K\":_emscripten_sleep,\"Sg\":_emscripten_start_fetch,\"mb\":_environ_get,\"ob\":_environ_sizes_get,\"ia\":_fd_close,\"qb\":_fd_read,\"fb\":_fd_seek,\"fa\":_fd_write,\"Oa\":get_host,\"_a\":_glActiveTexture,\"ja\":_glAttachShader,\"l\":_glBindAttribLocation,\"n\":_glBindBuffer,\"t\":_glBindFramebuffer,\"p\":_glBindTexture,\"fe\":_glBlendColor,\"Wd\":_glBlendEquation,\"qe\":_glBlendFuncSeparate,\"N\":_glBufferData,\"$\":_glCheckFramebufferStatus,\"qg\":_glClear,\"Bg\":_glClearColor,\"pd\":_glColorMask,\"Xa\":_glCompileShader,\"J\":_glCompressedTexImage2D,\"Cc\":_glCreateProgram,\"Za\":_glCreateShader,\"sf\":_glCullFace,\"E\":_glDeleteBuffers,\"Xg\":_glDeleteFramebuffers,\"la\":_glDeleteProgram,\"pa\":_glDeleteRenderbuffers,\"ca\":_glDeleteShader,\"Va\":_glDeleteTextures,\"Be\":_glDepthFunc,\"Me\":_glDepthMask,\"ma\":_glDetachShader,\"H\":_glDisable,\"_\":_glDrawArrays,\"M\":_glDrawElements,\"Pa\":_glDrawElementsInstanced,\"G\":_glEnable,\"Sa\":_glEnableVertexAttribArray,\"P\":_glFramebufferTexture2D,\"gf\":_glFrontFace,\"O\":_glGenBuffers,\"aa\":_glGenFramebuffers,\"D\":_glGenTextures,\"Yg\":_glGenerateMipmap,\"eb\":_glGetActiveAttrib,\"ub\":_glGetActiveUniform,\"q\":_glGetIntegerv,\"Eb\":_glGetProgramInfoLog,\"F\":_glGetProgramiv,\"Wa\":_glGetShaderInfoLog,\"ba\":_glGetShaderiv,\"w\":_glGetString,\"nb\":_glGetUniformLocation,\"Xe\":_glLineWidth,\"Zb\":_glLinkProgram,\"Ta\":_glPixelStorei,\"Ld\":_glReadPixels,\"Ad\":_glScissor,\"Ya\":_glShaderSource,\"o\":_glTexImage2D,\"h\":_glTexParameteri,\"db\":_glUniform1fv,\"$a\":_glUniform1i,\"cb\":_glUniform2fv,\"bb\":_glUniform3fv,\"ea\":_glUniform4fv,\"da\":_glUniformMatrix4fv,\"ka\":_glUseProgram,\"Qa\":_glVertexAttribDivisor,\"Ra\":_glVertexAttribPointer,\"I\":_glViewport,\"ph\":invoke_iii,\"qh\":invoke_iiii,\"Xf\":invoke_iiiii,\"hb\":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"sh\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"th\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"uh\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"vh\"]).apply(null,arguments)};var _SCRTFillActiveTextureCharArray=Module[\"_SCRTFillActiveTextureCharArray\"]=function(){return(_SCRTFillActiveTextureCharArray=Module[\"_SCRTFillActiveTextureCharArray\"]=Module[\"asm\"][\"xh\"]).apply(null,arguments)};var _SCRTFillActiveTextureFloat=Module[\"_SCRTFillActiveTextureFloat\"]=function(){return(_SCRTFillActiveTextureFloat=Module[\"_SCRTFillActiveTextureFloat\"]=Module[\"asm\"][\"yh\"]).apply(null,arguments)};var _SCRTFillActiveDoubleVector=Module[\"_SCRTFillActiveDoubleVector\"]=function(){return(_SCRTFillActiveDoubleVector=Module[\"_SCRTFillActiveDoubleVector\"]=Module[\"asm\"][\"zh\"]).apply(null,arguments)};var _main=Module[\"_main\"]=function(){return(_main=Module[\"_main\"]=Module[\"asm\"][\"Ah\"]).apply(null,arguments)};var ___getTypeName=function(){return(___getTypeName=Module[\"asm\"][\"Bh\"]).apply(null,arguments)};var __embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=function(){return(__embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=Module[\"asm\"][\"Ch\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"Dh\"]).apply(null,arguments)};var stackSave=function(){return(stackSave=Module[\"asm\"][\"Eh\"]).apply(null,arguments)};var stackRestore=function(){return(stackRestore=Module[\"asm\"][\"Fh\"]).apply(null,arguments)};var stackAlloc=function(){return(stackAlloc=Module[\"asm\"][\"Gh\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Hh\"]).apply(null,arguments)};var dynCall_iiiji=Module[\"dynCall_iiiji\"]=function(){return(dynCall_iiiji=Module[\"dynCall_iiiji\"]=Module[\"asm\"][\"Ih\"]).apply(null,arguments)};var dynCall_iiij=Module[\"dynCall_iiij\"]=function(){return(dynCall_iiij=Module[\"dynCall_iiij\"]=Module[\"asm\"][\"Jh\"]).apply(null,arguments)};var dynCall_iijii=Module[\"dynCall_iijii\"]=function(){return(dynCall_iijii=Module[\"dynCall_iijii\"]=Module[\"asm\"][\"Kh\"]).apply(null,arguments)};var dynCall_iiijiji=Module[\"dynCall_iiijiji\"]=function(){return(dynCall_iiijiji=Module[\"dynCall_iiijiji\"]=Module[\"asm\"][\"Lh\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"Mh\"]).apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return(dynCall_ji=Module[\"dynCall_ji\"]=Module[\"asm\"][\"Nh\"]).apply(null,arguments)};var dynCall_viijii=Module[\"dynCall_viijii\"]=function(){return(dynCall_viijii=Module[\"dynCall_viijii\"]=Module[\"asm\"][\"Oh\"]).apply(null,arguments)};var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=function(){return(dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=Module[\"asm\"][\"Ph\"]).apply(null,arguments)};var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=function(){return(dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=Module[\"asm\"][\"Qh\"]).apply(null,arguments)};var dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=function(){return(dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=Module[\"asm\"][\"Rh\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=395965;var ___stop_em_js=Module[\"___stop_em_js\"]=396533;function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module[\"addRunDependency\"]=addRunDependency;Module[\"removeRunDependency\"]=removeRunDependency;Module[\"FS_createPath\"]=FS.createPath;Module[\"FS_createDataFile\"]=FS.createDataFile;Module[\"FS_createLazyFile\"]=FS.createLazyFile;Module[\"FS_createDevice\"]=FS.createDevice;Module[\"FS_unlink\"]=FS.unlink;Module[\"callMain\"]=callMain;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"FS_createPreloadedFile\"]=FS.createPreloadedFile;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv>>2;args.forEach(arg=>{HEAP32[argv_ptr++]=stringToUTF8OnStack(arg)});HEAP32[argv_ptr]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();\r\n\r\n\r\n return Module.ready\r\n}\r\n\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Module;\r\nelse if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Module; });\r\nelse if (typeof exports === 'object')\r\n exports[\"Module\"] = Module;\r\n","\r\nvar Module = (() => {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n \r\n return (\r\nfunction(Module = {}) {\r\n\r\nvar Module=typeof Module!=\"undefined\"?Module:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module[\"ENVIRONMENT_IS_PTHREAD\"]||Module[\"$ww\"])return;var loadPackage=function(metadata){var PACKAGE_PATH=\"\";if(typeof window===\"object\"){PACKAGE_PATH=window[\"encodeURIComponent\"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf(\"/\"))+\"/\")}else if(typeof process===\"undefined\"&&typeof location!==\"undefined\"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf(\"/\"))+\"/\")}var PACKAGE_NAME=\"scichart3d.data\";var REMOTE_PACKAGE_BASE=\"scichart3d.data\";if(typeof Module[\"locateFilePackage\"]===\"function\"&&!Module[\"locateFile\"]){Module[\"locateFile\"]=Module[\"locateFilePackage\"];err(\"warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)\")}var REMOTE_PACKAGE_NAME=Module[\"locateFile\"]?Module[\"locateFile\"](REMOTE_PACKAGE_BASE,\"\"):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata[\"remote_package_size\"];function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open(\"GET\",packageName,true);xhr.responseType=\"arraybuffer\";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module[\"setStatus\"])Module[\"setStatus\"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module[\"setStatus\"])Module[\"setStatus\"](\"Downloading data...\")}};xhr.onerror=function(event){throw new Error(\"NetworkError for: \"+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+\" : \"+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error(\"package error:\",error)}var fetchedCallback=null;var fetched=Module[\"getPreloadedPackage\"]?Module[\"getPreloadedPackage\"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module[\"FS_createPath\"](\"/\",\"assets\",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module[\"addRunDependency\"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module[\"FS_createDataFile\"](this.name,null,byteArray,true,true,true);Module[\"removeRunDependency\"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata[\"files\"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module[\"HEAP8\"]=HEAP8=new Int8Array(b);Module[\"HEAP16\"]=HEAP16=new Int16Array(b);Module[\"HEAP32\"]=HEAP32=new Int32Array(b);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(b);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(b);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(b);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(b);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile=\"scichart3d.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==\"function\"){return fetch(binaryFile,{credentials:\"same-origin\"}).then(response=>{if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+binaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(()=>getBinary(binaryFile))}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming==\"function\"&&!isDataURI(binaryFile)&&typeof fetch==\"function\"){return fetch(binaryFile,{credentials:\"same-origin\"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={\"a\":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"rh\"];updateMemoryViews();wasmTable=Module[\"asm\"][\"wh\"];addOnInit(Module[\"asm\"][\"sh\"]);removeRunDependency(\"wasm-instantiate\");return exports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}if(Module[\"instantiateWasm\"]){try{return Module[\"instantiateWasm\"](info,receiveInstance)}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={357032:()=>{var userAgent=navigator.userAgent||navigator.vendor||window.opera;if(/windows phone/i.test(userAgent)){return 0}if(/Android/i.test(userAgent)){return 1}if(/iPad|iPhone|iPod/.test(userAgent)&&!window.MSStream){return 2}return 0},357302:()=>{return Module.getRandomValue()},357338:()=>{if(Module.getRandomValue===undefined){try{var window_=\"object\"===typeof window?window:self;var crypto_=typeof window_.crypto!==\"undefined\"?window_.crypto:window_.msCrypto;var randomValuesStandard=function(){var buf=new Uint32Array(1);crypto_.getRandomValues(buf);return buf[0]>>>0};randomValuesStandard();Module.getRandomValue=randomValuesStandard}catch(e){try{var max=Math.pow(2,32);var randomValueNodeJS=function(){var r=Math.floor(Math.random()*Math.floor(max));return r>>>0};randomValueNodeJS();Module.getRandomValue=randomValueNodeJS}catch(e){throw\"No secure random number generator found\"}}}},358020:$0=>{var str=UTF8ToString($0)+\"\\n\\n\"+\"Abort/Retry/Ignore/AlwaysIgnore? [ariA] :\";var reply=window.prompt(str,\"i\");if(reply===null){reply=\"i\"}return allocate(intArrayFromString(reply),\"i8\",ALLOC_NORMAL)},358245:()=>{if(typeof AudioContext!==\"undefined\"){return true}else if(typeof webkitAudioContext!==\"undefined\"){return true}return false},358392:()=>{if(typeof navigator.mediaDevices!==\"undefined\"&&typeof navigator.mediaDevices.getUserMedia!==\"undefined\"){return true}else if(typeof navigator.webkitGetUserMedia!==\"undefined\"){return true}return false},358626:$0=>{if(typeof Module[\"SDL2\"]===\"undefined\"){Module[\"SDL2\"]={}}var SDL2=Module[\"SDL2\"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!==\"undefined\"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!==\"undefined\"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},359119:()=>{var SDL2=Module[\"SDL2\"];return SDL2.audioContext.sampleRate},359187:($0,$1,$2,$3)=>{var SDL2=Module[\"SDL2\"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall(\"vi\",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall(\"vi\",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},360839:($0,$1,$2,$3)=>{var SDL2=Module[\"SDL2\"];SDL2.audio.scriptProcessorNode=SDL2.audioContext[\"createScriptProcessor\"]($1,0,$0);SDL2.audio.scriptProcessorNode[\"onaudioprocess\"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e[\"outputBuffer\"];dynCall(\"vi\",$2,[$3])};SDL2.audio.scriptProcessorNode[\"connect\"](SDL2.audioContext[\"destination\"])},361249:($0,$1)=>{var SDL2=Module[\"SDL2\"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c{var SDL2=Module[\"SDL2\"];var numChannels=SDL2.audio.currentOutputBuffer[\"numberOfChannels\"];for(var c=0;c>2]}}},362334:$0=>{var SDL2=Module[\"SDL2\"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i{var w=$0;var h=$1;var pixels=$2;if(!Module[\"SDL2\"])Module[\"SDL2\"]={};var SDL2=Module[\"SDL2\"];if(SDL2.ctxCanvas!==Module[\"canvas\"]){SDL2.ctx=Module[\"createContext\"](Module[\"canvas\"],false,true);SDL2.ctxCanvas=Module[\"canvas\"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!==\"undefined\"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src,src+num));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement(\"canvas\");canvas.width=w;canvas.height=h;var ctx=canvas.getContext(\"2d\");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!==\"undefined\"&&data instanceof CanvasPixelArray){num=data.length;while(dst>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src,src+num))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?\"url(\"+canvas.toDataURL()+\"), auto\":\"url(\"+canvas.toDataURL()+\") \"+hot_x+\" \"+hot_y+\", auto\";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},365964:$0=>{if(Module[\"canvas\"]){Module[\"canvas\"].style[\"cursor\"]=UTF8ToString($0)}},366047:()=>{if(Module[\"canvas\"]){Module[\"canvas\"].style[\"cursor\"]=\"none\"}},366116:()=>{return window.innerWidth},366146:()=>{return window.innerHeight}};function get_host(){var host=\"\";if(typeof window!==\"undefined\"){host=window.location.hostname}else if(typeof process!==\"undefined\"){host=\"node\"}var lengthBytes=lengthBytesUTF8(host)+1;var stringOnWasmHeap=_malloc(lengthBytes);stringToUTF8(host,stringOnWasmHeap,lengthBytes);return stringOnWasmHeap}function ExitStatus(status){this.name=\"ExitStatus\";this.message=`Program terminated with exit(${status})`;this.status=status}function listenOnce(object,event,func){object.addEventListener(event,func,{\"once\":true})}function autoResumeAudioContext(ctx,elements){if(!elements){elements=[document,document.getElementById(\"canvas\")]}[\"keydown\",\"mousedown\",\"touchstart\"].forEach(event=>{elements.forEach(element=>{if(element){listenOnce(element,event,()=>{if(ctx.state===\"suspended\")ctx.resume()})}})})}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function setValue(ptr,value,type=\"i8\"){if(type.endsWith(\"*\"))type=\"*\";switch(type){case\"i1\":HEAP8[ptr>>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;case\"*\":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join(\"/\"))},join2:(l,r)=>{return PATH.normalize(l+\"/\"+r)}};function initRandomFill(){if(typeof crypto==\"object\"&&typeof crypto[\"getRandomValues\"]==\"function\"){return view=>crypto.getRandomValues(view)}else abort(\"initRandomDevice\")}function randomFill(view){return(randomFill=initRandomFill())(view)}var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx>10,56320|ch&1023)}}return str}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{assert(arrayBuffer,`Loading data file \"${url}\" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file \"${url}\" failed.`}});if(dep)addRunDependency(dep)}var preloadPlugins=Module[\"preloadPlugins\"]||[];function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!=\"undefined\")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,onerror);handled=true}});return handled}function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}}function FS_modeStringToFlags(str){var flagModes={\"r\":0,\"r+\":2,\"w\":512|64|1,\"w+\":512|64|2,\"a\":1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags}function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(path);if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagsToPermissionString:flag=>{var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:()=>{for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd=-1)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split(\"/\");var d=\"\";for(var i=0;i{if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;mode=typeof mode==\"undefined\"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error(`Invalid encoding type \"${opts.encoding}\"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices:()=>{FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:()=>{FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount:()=>{var node=FS.createNode(proc_self,\"fd\",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams:()=>{if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name=\"ErrnoError\";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message=\"FS error\"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"\"})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return{[name]:function(){return body.apply(this,arguments)}}[name]}function HandleAllocator(){this.allocated=[undefined];this.freelist=[];this.get=function(id){return this.allocated[id]};this.has=function(id){return this.allocated[id]!==undefined};this.allocate=function(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id};this.free=function(id){this.allocated[id]=undefined;this.freelist.push(id)}}var emval_handles=new HandleAllocator;function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function count_emval_handles(){var count=0;for(var i=emval_handles.reserved;i{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};var PureVirtualError=undefined;function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function registerInheritedInstance(class_,ptr,instance){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){throwBindingError(`Tried to register registered instance: ${ptr}`)}else{registeredInstances[ptr]=instance}}var registeredTypes={};function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function unregisterInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){delete registeredInstances[ptr]}else{throwBindingError(`Tried to unregister unregistered instance: ${ptr}`)}}function detachFinalizer(handle){}var finalizationRegistry=false;function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function __embind_create_inheriting_constructor(constructorName,wrapperType,properties){constructorName=readLatin1String(constructorName);wrapperType=requireRegisteredType(wrapperType,\"wrapper\");properties=Emval.toValue(properties);var arraySlice=[].slice;var registeredClass=wrapperType.registeredClass;var wrapperPrototype=registeredClass.instancePrototype;var baseClass=registeredClass.baseClass;var baseClassPrototype=baseClass.instancePrototype;var baseConstructor=registeredClass.baseClass.constructor;var ctor=createNamedFunction(constructorName,function(){registeredClass.baseClass.pureVirtualFunctions.forEach(function(name){if(this[name]===baseClassPrototype[name]){throw new PureVirtualError(`Pure virtual function ${name} must be implemented in JavaScript`)}}.bind(this));Object.defineProperty(this,\"__parent\",{value:wrapperPrototype});this[\"__construct\"].apply(this,arraySlice.call(arguments))});wrapperPrototype[\"__construct\"]=function __construct(){if(this===wrapperPrototype){throwBindingError(\"Pass correct 'this' to __construct\")}var inner=baseConstructor[\"implement\"].apply(undefined,[this].concat(arraySlice.call(arguments)));detachFinalizer(inner);var $$=inner.$$;inner[\"notifyOnDestruction\"]();$$.preservePointerOnDelete=true;Object.defineProperties(this,{$$:{value:$$}});attachFinalizer(this);registerInheritedInstance(registeredClass,$$.ptr,this)};wrapperPrototype[\"__destruct\"]=function __destruct(){if(this===wrapperPrototype){throwBindingError(\"Pass correct 'this' to __destruct\")}detachFinalizer(this);unregisterInheritedInstance(registeredClass,this.$$.ptr)};ctor.prototype=Object.create(wrapperPrototype);for(var p in properties){ctor.prototype[p]=properties[p]}return Emval.toHandle(ctor)}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${size}`)}}var awaitingDependencies={};var typeDependencies={};function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError(`type \"${name}\" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAP32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp}var UnboundTypeError=undefined;function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){if(registeredClass.baseClass.__derivedClasses===undefined){registeredClass.baseClass.__derivedClasses=[]}registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i>2])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn,isAsync);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}if(classType.registeredClass.__derivedClasses){for(const derivedClass of classType.registeredClass.__derivedClasses){if(!derivedClass.constructor.hasOwnProperty(methodName)){derivedClass.constructor[methodName]=func}}}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(`${humanName} with invalid \"this\": ${this_}`)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(`${humanName} incompatible with \"this\" of type ${this_.constructor.name}`)}if(!this_.$$.ptr){throwBindingError(`cannot call emscripten binding method ${humanName} on deleted object`)}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=`${classType.name}.${fieldName}`;var desc={get:function(){throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])}}else{desc.set=v=>{throwBindingError(humanName+\" is a read-only property\")}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+\" getter\");return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+\" setter\");var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}function __emval_decref(handle){if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this[\"fromWireType\"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this[\"fromWireType\"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this[\"fromWireType\"](heap[pointer>>2])};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,\"fromWireType\":function(c){return this.constructor.values[c]},\"toWireType\":function(destructors,c){return c.value},\"argPackAdvance\":8,\"readValueFromPointer\":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,\"enum\");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function embindRepr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emscripten_fetch_free(id){if(Fetch.xhrs.has(id)){var xhr=Fetch.xhrs.get(id);Fetch.xhrs.free(id);if(xhr.readyState>0&&xhr.readyState<4){xhr.abort()}}}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function emval_allocateDestructors(destructorsRef){var destructors=[];HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2],\"parameter \"+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+\"_$\"+types.slice(1).map(function(t){return t.name}).join(\"_\")+\"$\";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var argN=new Array(argCount-1);var invokerFunction=(handle,name,destructors,args)=>{var offset=0;for(var i=0;i4){emval_handles.get(handle).refcount+=1}}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,arg){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)}function readI53FromI64(ptr){return HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296}function isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];function ydayFromDate(date){var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday}function __localtime_js(time,tmPtr){var date=new Date(readI53FromI64(time)*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function stringToNewUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret}function __tzset_js(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=stringToNewUTF8(winterName);var summerNamePtr=stringToNewUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}function _abort(){abort(\"\")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method=\"timeout\"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method=\"rAF\"}else if(mode==2){if(typeof setImmediate==\"undefined\"){var setImmediates=[];var emscriptenMainLoopMessageId=\"setimmediate\";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener(\"message\",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module[\"setImmediates\"]===undefined)Module[\"setImmediates\"]=[];Module[\"setImmediates\"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,\"*\")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method=\"immediate\"}return 0}var _emscripten_get_now;_emscripten_get_now=()=>performance.now();function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,\"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.\");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker \"'+blocker.name+'\" took '+(Date.now()-start)+\" ms\");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==\"object\"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw\"unwind\"}}function handleException(e){if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)}function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function callUserCallback(func){if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(()=>{callUserCallback(func)},timeout)}var Browser={mainLoop:{running:false,scheduler:null,method:\"\",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module[\"setStatus\"]){var message=Module[\"statusMessage\"]||\"Please wait...\";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,\"Image \"+name+\" could not be decoded\");var canvas=document.createElement(\"canvas\");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext(\"2d\");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out(\"Image \"+url+\" could not be decoded\");if(onerror)onerror()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin[\"canHandle\"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{\".ogg\":1,\".wav\":1,\".mp3\":1}};audioPlugin[\"handle\"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener(\"canplaythrough\",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(\"warning: browser could not fully decode audio \"+name+\", trying slower base64 approach\");function encode64(data){var BASE=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";var PAD=\"=\";var ret=\"\";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src=\"data:audio/x-\"+name.substr(-3)+\";base64,\"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document[\"pointerLockElement\"]===Module[\"canvas\"]||document[\"mozPointerLockElement\"]===Module[\"canvas\"]||document[\"webkitPointerLockElement\"]===Module[\"canvas\"]||document[\"msPointerLockElement\"]===Module[\"canvas\"]}var canvas=Module[\"canvas\"];if(canvas){canvas.requestPointerLock=canvas[\"requestPointerLock\"]||canvas[\"mozRequestPointerLock\"]||canvas[\"webkitRequestPointerLock\"]||canvas[\"msRequestPointerLock\"]||(()=>{});canvas.exitPointerLock=document[\"exitPointerLock\"]||document[\"mozExitPointerLock\"]||document[\"webkitExitPointerLock\"]||document[\"msExitPointerLock\"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener(\"pointerlockchange\",pointerLockChange,false);document.addEventListener(\"mozpointerlockchange\",pointerLockChange,false);document.addEventListener(\"webkitpointerlockchange\",pointerLockChange,false);document.addEventListener(\"mspointerlockchange\",pointerLockChange,false);if(Module[\"elementPointerLock\"]){canvas.addEventListener(\"click\",ev=>{if(!Browser.pointerLock&&Module[\"canvas\"].requestPointerLock){Module[\"canvas\"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!=\"undefined\"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=\"undefined\"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext(\"2d\")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==\"undefined\",\"cannot set in module if GLctx is used, but we are a non-GL context that would replace it\");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==\"undefined\")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==\"undefined\")Browser.resizeCanvas=false;var canvas=Module[\"canvas\"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document[\"fullscreenElement\"]||document[\"mozFullScreenElement\"]||document[\"msFullscreenElement\"]||document[\"webkitFullscreenElement\"]||document[\"webkitCurrentFullScreenElement\"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module[\"onFullScreen\"])Module[\"onFullScreen\"](Browser.isFullscreen);if(Module[\"onFullscreen\"])Module[\"onFullscreen\"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener(\"fullscreenchange\",fullscreenChange,false);document.addEventListener(\"mozfullscreenchange\",fullscreenChange,false);document.addEventListener(\"webkitfullscreenchange\",fullscreenChange,false);document.addEventListener(\"MSFullscreenChange\",fullscreenChange,false)}var canvasContainer=document.createElement(\"div\");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer[\"requestFullscreen\"]||canvasContainer[\"mozRequestFullScreen\"]||canvasContainer[\"msRequestFullscreen\"]||(canvasContainer[\"webkitRequestFullscreen\"]?()=>canvasContainer[\"webkitRequestFullscreen\"](Element[\"ALLOW_KEYBOARD_INPUT\"]):null)||(canvasContainer[\"webkitRequestFullScreen\"]?()=>canvasContainer[\"webkitRequestFullScreen\"](Element[\"ALLOW_KEYBOARD_INPUT\"]):null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document[\"exitFullscreen\"]||document[\"cancelFullScreen\"]||document[\"mozCancelFullScreen\"]||document[\"msExitFullscreen\"]||document[\"webkitCancelFullScreen\"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==\"function\"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype:function(name){return{\"jpg\":\"image/jpeg\",\"jpeg\":\"image/jpeg\",\"png\":\"image/png\",\"bmp\":\"image/bmp\",\"ogg\":\"audio/ogg\",\"wav\":\"audio/wav\",\"mp3\":\"audio/mpeg\"}[name.substr(name.lastIndexOf(\".\")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator[\"getUserMedia\"]||navigator[\"mozGetUserMedia\"]}window.getUserMedia(func)},getMovementX:function(event){return event[\"movementX\"]||event[\"mozMovementX\"]||event[\"webkitMovementX\"]||0},getMovementY:function(event){return event[\"movementY\"]||event[\"mozMovementY\"]||event[\"webkitMovementY\"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case\"DOMMouseScroll\":delta=event.detail/3;break;case\"mousewheel\":delta=event.wheelDelta/120;break;case\"wheel\":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw\"unrecognized mouse wheel delta mode: \"+event.deltaMode}break;default:throw\"unrecognized mouse wheel event: \"+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!=\"mousemove\"&&\"mozMovementX\"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!=\"undefined\"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module[\"canvas\"].getBoundingClientRect();var cw=Module[\"canvas\"].width;var ch=Module[\"canvas\"].height;var scrollX=typeof window.scrollX!=\"undefined\"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=\"undefined\"?window.scrollY:window.pageYOffset;if(event.type===\"touchstart\"||event.type===\"touchend\"||event.type===\"touchmove\"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type===\"touchstart\"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type===\"touchend\"||event.type===\"touchmove\"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module[\"canvas\"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize:function(width,height,noUpdates){var canvas=Module[\"canvas\"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!=\"undefined\"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module[\"canvas\"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!=\"undefined\"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module[\"canvas\"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module[\"forcedAspectRatio\"]&&Module[\"forcedAspectRatio\"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglBindAPI(api){if(api==12448){EGL.setErrorCode(12288);return 1}EGL.setErrorCode(12300);return 0}function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension(\"WEBGL_draw_instanced_base_vertex_base_instance\"))}function webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension(\"WEBGL_multi_draw_instanced_base_vertex_base_instance\"))}function webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext(\"webgl2\",webGLContextAttributes):canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query_webgl2\")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes(\"lose_context\")&&!ext.includes(\"debug\")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module[\"canvas\"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetConfigAttrib(display,config,attribute,value){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}if(!value){EGL.setErrorCode(12300);return 0}EGL.setErrorCode(12288);switch(attribute){case 12320:HEAP32[value>>2]=EGL.contextAttributes.alpha?32:24;return 1;case 12321:HEAP32[value>>2]=EGL.contextAttributes.alpha?8:0;return 1;case 12322:HEAP32[value>>2]=8;return 1;case 12323:HEAP32[value>>2]=8;return 1;case 12324:HEAP32[value>>2]=8;return 1;case 12325:HEAP32[value>>2]=EGL.contextAttributes.depth?24:0;return 1;case 12326:HEAP32[value>>2]=EGL.contextAttributes.stencil?8:0;return 1;case 12327:HEAP32[value>>2]=12344;return 1;case 12328:HEAP32[value>>2]=62002;return 1;case 12329:HEAP32[value>>2]=0;return 1;case 12330:HEAP32[value>>2]=4096;return 1;case 12331:HEAP32[value>>2]=16777216;return 1;case 12332:HEAP32[value>>2]=4096;return 1;case 12333:HEAP32[value>>2]=0;return 1;case 12334:HEAP32[value>>2]=0;return 1;case 12335:HEAP32[value>>2]=12344;return 1;case 12337:HEAP32[value>>2]=EGL.contextAttributes.antialias?4:0;return 1;case 12338:HEAP32[value>>2]=EGL.contextAttributes.antialias?1:0;return 1;case 12339:HEAP32[value>>2]=4;return 1;case 12340:HEAP32[value>>2]=12344;return 1;case 12341:case 12342:case 12343:HEAP32[value>>2]=-1;return 1;case 12345:case 12346:HEAP32[value>>2]=0;return 1;case 12347:HEAP32[value>>2]=0;return 1;case 12348:HEAP32[value>>2]=1;return 1;case 12349:case 12350:HEAP32[value>>2]=0;return 1;case 12351:HEAP32[value>>2]=12430;return 1;case 12352:HEAP32[value>>2]=4;return 1;case 12354:HEAP32[value>>2]=0;return 1;default:EGL.setErrorCode(12292);return 0}}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglGetError(){return EGL.errorCode}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglQueryString(display,name){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.setErrorCode(12288);if(EGL.stringCache[name])return EGL.stringCache[name];var ret;switch(name){case 12371:ret=stringToNewUTF8(\"Emscripten\");break;case 12372:ret=stringToNewUTF8(\"1.4 Emscripten EGL\");break;case 12373:ret=stringToNewUTF8(\"\");break;case 12429:ret=stringToNewUTF8(\"OpenGL_ES\");break;default:EGL.setErrorCode(12300);return 0}EGL.stringCache[name]=ret;return ret}function _eglSwapBuffers(dpy,surface){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}function _eglWaitClient(){EGL.setErrorCode(12288);return 1}var _eglWaitGL=_eglWaitClient;function _eglWaitNative(nativeEngineId){EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readEmAsmArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readEmAsmArgsArray}function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf)}function runMainThreadEmAsm(code,sigPtr,argbuf,sync){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int_sync_on_main_thread(code,sigPtr,argbuf){return runMainThreadEmAsm(code,sigPtr,argbuf,1)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_date_now(){return Date.now()}function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,document,window];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||document.querySelector(target);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_get_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height}function stringToUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret}function getCanvasElementSize(target){return withStackSave(function(){var w=stackAlloc(8);var h=w+4;var targetInt=stringToUTF8OnStack(target.id);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size})}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function setCanvasElementSize(target,width,height){if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(function(){var targetInt=stringToUTF8OnStack(target.id);_emscripten_set_canvas_element_size(targetInt,width,height)})}}function registerRestoreOldStyle(canvas){var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement;if(!fullscreenElement){document.removeEventListener(\"fullscreenchange\",restoreOldStyle);document.removeEventListener(\"webkitfullscreenchange\",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor=\"white\";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener(\"fullscreenchange\",restoreOldStyle);document.addEventListener(\"webkitfullscreenchange\",restoreOldStyle);return restoreOldStyle}function setLetterbox(element,topBottom,leftRight){element.style.paddingLeft=element.style.paddingRight=leftRight+\"px\";element.style.paddingTop=element.style.paddingBottom=topBottom+\"px\"}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{\"left\":0,\"top\":0}}function JSEvents_resizeCanvasForFullscreen(target,strategy){var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function _emscripten_get_screen_size(width,height){HEAP32[width>>2]=screen.width;HEAP32[height>>2]=screen.height}function _glActiveTexture(x0){GLctx.activeTexture(x0)}var _emscripten_glActiveTexture=_glActiveTexture;function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}var _emscripten_glAttachShader=_glAttachShader;function _glBeginQuery(target,id){GLctx.beginQuery(target,GL.queries[id])}var _emscripten_glBeginQuery=_glBeginQuery;function _glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt[\"beginQueryEXT\"](target,GL.queries[id])}var _emscripten_glBeginQueryEXT=_glBeginQueryEXT;function _glBeginTransformFeedback(x0){GLctx.beginTransformFeedback(x0)}var _emscripten_glBeginTransformFeedback=_glBeginTransformFeedback;function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}var _emscripten_glBindAttribLocation=_glBindAttribLocation;function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}var _emscripten_glBindBuffer=_glBindBuffer;function _glBindBufferBase(target,index,buffer){GLctx.bindBufferBase(target,index,GL.buffers[buffer])}var _emscripten_glBindBufferBase=_glBindBufferBase;function _glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx.bindBufferRange(target,index,GL.buffers[buffer],offset,ptrsize)}var _emscripten_glBindBufferRange=_glBindBufferRange;function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}var _emscripten_glBindFramebuffer=_glBindFramebuffer;function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}var _emscripten_glBindRenderbuffer=_glBindRenderbuffer;function _glBindSampler(unit,sampler){GLctx.bindSampler(unit,GL.samplers[sampler])}var _emscripten_glBindSampler=_glBindSampler;function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}var _emscripten_glBindTexture=_glBindTexture;function _glBindTransformFeedback(target,id){GLctx.bindTransformFeedback(target,GL.transformFeedbacks[id])}var _emscripten_glBindTransformFeedback=_glBindTransformFeedback;function _glBindVertexArray(vao){GLctx.bindVertexArray(GL.vaos[vao])}var _emscripten_glBindVertexArray=_glBindVertexArray;var _glBindVertexArrayOES=_glBindVertexArray;var _emscripten_glBindVertexArrayOES=_glBindVertexArrayOES;function _glBlendColor(x0,x1,x2,x3){GLctx.blendColor(x0,x1,x2,x3)}var _emscripten_glBlendColor=_glBlendColor;function _glBlendEquation(x0){GLctx.blendEquation(x0)}var _emscripten_glBlendEquation=_glBlendEquation;function _glBlendEquationSeparate(x0,x1){GLctx.blendEquationSeparate(x0,x1)}var _emscripten_glBlendEquationSeparate=_glBlendEquationSeparate;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}var _emscripten_glBlendFunc=_glBlendFunc;function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx.blendFuncSeparate(x0,x1,x2,x3)}var _emscripten_glBlendFuncSeparate=_glBlendFuncSeparate;function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx.blitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}var _emscripten_glBlitFramebuffer=_glBlitFramebuffer;function _glBufferData(target,size,data,usage){if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}var _emscripten_glBufferData=_glBufferData;function _glBufferSubData(target,offset,size,data){if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}var _emscripten_glBufferSubData=_glBufferSubData;function _glCheckFramebufferStatus(x0){return GLctx.checkFramebufferStatus(x0)}var _emscripten_glCheckFramebufferStatus=_glCheckFramebufferStatus;function _glClear(x0){GLctx.clear(x0)}var _emscripten_glClear=_glClear;function _glClearBufferfi(x0,x1,x2,x3){GLctx.clearBufferfi(x0,x1,x2,x3)}var _emscripten_glClearBufferfi=_glClearBufferfi;function _glClearBufferfv(buffer,drawbuffer,value){GLctx.clearBufferfv(buffer,drawbuffer,HEAPF32,value>>2)}var _emscripten_glClearBufferfv=_glClearBufferfv;function _glClearBufferiv(buffer,drawbuffer,value){GLctx.clearBufferiv(buffer,drawbuffer,HEAP32,value>>2)}var _emscripten_glClearBufferiv=_glClearBufferiv;function _glClearBufferuiv(buffer,drawbuffer,value){GLctx.clearBufferuiv(buffer,drawbuffer,HEAPU32,value>>2)}var _emscripten_glClearBufferuiv=_glClearBufferuiv;function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _emscripten_glClearColor=_glClearColor;function _glClearDepthf(x0){GLctx.clearDepth(x0)}var _emscripten_glClearDepthf=_glClearDepthf;function _glClearStencil(x0){GLctx.clearStencil(x0)}var _emscripten_glClearStencil=_glClearStencil;function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _glClientWaitSync(sync,flags,timeout_low,timeout_high){var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)}var _emscripten_glClientWaitSync=_glClientWaitSync;function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}var _emscripten_glColorMask=_glColorMask;function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}var _emscripten_glCompileShader=_glCompileShader;function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx.compressedTexImage2D(target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}var _emscripten_glCompressedTexImage2D=_glCompressedTexImage2D;function _glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx.compressedTexImage3D(target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}var _emscripten_glCompressedTexImage3D=_glCompressedTexImage3D;function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}var _emscripten_glCompressedTexSubImage2D=_glCompressedTexSubImage2D;function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}var _emscripten_glCompressedTexSubImage3D=_glCompressedTexSubImage3D;function _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx.copyBufferSubData(x0,x1,x2,x3,x4)}var _emscripten_glCopyBufferSubData=_glCopyBufferSubData;function _glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexImage2D=_glCopyTexImage2D;function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx.copyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7)}var _emscripten_glCopyTexSubImage2D=_glCopyTexSubImage2D;function _glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx.copyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8)}var _emscripten_glCopyTexSubImage3D=_glCopyTexSubImage3D;function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}var _emscripten_glCreateProgram=_glCreateProgram;function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}var _emscripten_glCreateShader=_glCreateShader;function _glCullFace(x0){GLctx.cullFace(x0)}var _emscripten_glCullFace=_glCullFace;function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}var _emscripten_glDeleteBuffers=_glDeleteBuffers;function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}var _emscripten_glDeleteFramebuffers=_glDeleteFramebuffers;function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}var _emscripten_glDeleteProgram=_glDeleteProgram;function _glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.deleteQuery(query);GL.queries[id]=null}}var _emscripten_glDeleteQueries=_glDeleteQueries;function _glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt[\"deleteQueryEXT\"](query);GL.queries[id]=null}}var _emscripten_glDeleteQueriesEXT=_glDeleteQueriesEXT;function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}var _emscripten_glDeleteRenderbuffers=_glDeleteRenderbuffers;function _glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx.deleteSampler(sampler);sampler.name=0;GL.samplers[id]=null}}var _emscripten_glDeleteSamplers=_glDeleteSamplers;function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}var _emscripten_glDeleteShader=_glDeleteShader;function _glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}var _emscripten_glDeleteSync=_glDeleteSync;function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}var _emscripten_glDeleteTextures=_glDeleteTextures;function _glDeleteTransformFeedbacks(n,ids){for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx.deleteTransformFeedback(transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}}var _emscripten_glDeleteTransformFeedbacks=_glDeleteTransformFeedbacks;function _glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}}var _emscripten_glDeleteVertexArrays=_glDeleteVertexArrays;var _glDeleteVertexArraysOES=_glDeleteVertexArrays;var _emscripten_glDeleteVertexArraysOES=_glDeleteVertexArraysOES;function _glDepthFunc(x0){GLctx.depthFunc(x0)}var _emscripten_glDepthFunc=_glDepthFunc;function _glDepthMask(flag){GLctx.depthMask(!!flag)}var _emscripten_glDepthMask=_glDepthMask;function _glDepthRangef(x0,x1){GLctx.depthRange(x0,x1)}var _emscripten_glDepthRangef=_glDepthRangef;function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}var _emscripten_glDetachShader=_glDetachShader;function _glDisable(x0){GLctx.disable(x0)}var _emscripten_glDisable=_glDisable;function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}var _emscripten_glDisableVertexAttribArray=_glDisableVertexAttribArray;function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}var _emscripten_glDrawArrays=_glDrawArrays;function _glDrawArraysInstanced(mode,first,count,primcount){GLctx.drawArraysInstanced(mode,first,count,primcount)}var _emscripten_glDrawArraysInstanced=_glDrawArraysInstanced;var _glDrawArraysInstancedANGLE=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedANGLE=_glDrawArraysInstancedANGLE;var _glDrawArraysInstancedARB=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedARB=_glDrawArraysInstancedARB;var _glDrawArraysInstancedEXT=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedEXT=_glDrawArraysInstancedEXT;var _glDrawArraysInstancedNV=_glDrawArraysInstanced;var _emscripten_glDrawArraysInstancedNV=_glDrawArraysInstancedNV;var tempFixedLengthArray=[];function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)}var _emscripten_glDrawBuffers=_glDrawBuffers;var _glDrawBuffersEXT=_glDrawBuffers;var _emscripten_glDrawBuffersEXT=_glDrawBuffersEXT;var _glDrawBuffersWEBGL=_glDrawBuffers;var _emscripten_glDrawBuffersWEBGL=_glDrawBuffersWEBGL;function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}var _emscripten_glDrawElements=_glDrawElements;function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx.drawElementsInstanced(mode,count,type,indices,primcount)}var _emscripten_glDrawElementsInstanced=_glDrawElementsInstanced;var _glDrawElementsInstancedANGLE=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedANGLE=_glDrawElementsInstancedANGLE;var _glDrawElementsInstancedARB=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedARB=_glDrawElementsInstancedARB;var _glDrawElementsInstancedEXT=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedEXT=_glDrawElementsInstancedEXT;var _glDrawElementsInstancedNV=_glDrawElementsInstanced;var _emscripten_glDrawElementsInstancedNV=_glDrawElementsInstancedNV;function _glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}var _emscripten_glDrawRangeElements=_glDrawRangeElements;function _glEnable(x0){GLctx.enable(x0)}var _emscripten_glEnable=_glEnable;function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}var _emscripten_glEnableVertexAttribArray=_glEnableVertexAttribArray;function _glEndQuery(x0){GLctx.endQuery(x0)}var _emscripten_glEndQuery=_glEndQuery;function _glEndQueryEXT(target){GLctx.disjointTimerQueryExt[\"endQueryEXT\"](target)}var _emscripten_glEndQueryEXT=_glEndQueryEXT;function _glEndTransformFeedback(){GLctx.endTransformFeedback()}var _emscripten_glEndTransformFeedback=_glEndTransformFeedback;function _glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0}var _emscripten_glFenceSync=_glFenceSync;function _glFinish(){GLctx.finish()}var _emscripten_glFinish=_glFinish;function _glFlush(){GLctx.flush()}var _emscripten_glFlush=_glFlush;function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}var _emscripten_glFramebufferRenderbuffer=_glFramebufferRenderbuffer;function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}var _emscripten_glFramebufferTexture2D=_glFramebufferTexture2D;function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}var _emscripten_glFramebufferTextureLayer=_glFramebufferTextureLayer;function _glFrontFace(x0){GLctx.frontFace(x0)}var _emscripten_glFrontFace=_glFrontFace;function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,\"createBuffer\",GL.buffers)}var _emscripten_glGenBuffers=_glGenBuffers;function _glGenFramebuffers(n,ids){__glGenObject(n,ids,\"createFramebuffer\",GL.framebuffers)}var _emscripten_glGenFramebuffers=_glGenFramebuffers;function _glGenQueries(n,ids){__glGenObject(n,ids,\"createQuery\",GL.queries)}var _emscripten_glGenQueries=_glGenQueries;function _glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}var _emscripten_glGenQueriesEXT=_glGenQueriesEXT;function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,\"createRenderbuffer\",GL.renderbuffers)}var _emscripten_glGenRenderbuffers=_glGenRenderbuffers;function _glGenSamplers(n,samplers){__glGenObject(n,samplers,\"createSampler\",GL.samplers)}var _emscripten_glGenSamplers=_glGenSamplers;function _glGenTextures(n,textures){__glGenObject(n,textures,\"createTexture\",GL.textures)}var _emscripten_glGenTextures=_glGenTextures;function _glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,\"createTransformFeedback\",GL.transformFeedbacks)}var _emscripten_glGenTransformFeedbacks=_glGenTransformFeedbacks;function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,\"createVertexArray\",GL.vaos)}var _emscripten_glGenVertexArrays=_glGenVertexArrays;var _glGenVertexArraysOES=_glGenVertexArrays;var _emscripten_glGenVertexArraysOES=_glGenVertexArraysOES;function _glGenerateMipmap(x0){GLctx.generateMipmap(x0)}var _emscripten_glGenerateMipmap=_glGenerateMipmap;function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform(\"getActiveAttrib\",program,index,bufSize,length,size,type,name)}var _emscripten_glGetActiveAttrib=_glGetActiveAttrib;function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform(\"getActiveUniform\",program,index,bufSize,length,size,type,name)}var _emscripten_glGetActiveUniform=_glGetActiveUniform;function _glGetActiveUniformBlockName(program,uniformBlockIndex,bufSize,length,uniformBlockName){program=GL.programs[program];var result=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}var _emscripten_glGetActiveUniformBlockName=_glGetActiveUniformBlockName;function _glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx.getActiveUniformBlockName(program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}}var _emscripten_glGetActiveUniformBlockiv=_glGetActiveUniformBlockiv;function _glGetActiveUniformsiv(program,uniformCount,uniformIndices,pname,params){if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx.getActiveUniforms(program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}var _emscripten_glGetActiveUniformsiv=_glGetActiveUniformsiv;function _glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}var _emscripten_glGetAttachedShaders=_glGetAttachedShaders;function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}var _emscripten_glGetAttribLocation=_glGetAttribLocation;function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case\"number\":ret=result;break;case\"boolean\":ret=result?1:0;break;case\"string\":GL.recordError(1280);return;case\"object\":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(\"GL_INVALID_ENUM in glGet\"+type+\"v: Unknown object returned from WebGL getParameter(\"+name_+\")! (error: \"+e+\")\");return}}break;default:GL.recordError(1280);err(\"GL_INVALID_ENUM in glGet\"+type+\"v: Native code calling glGet\"+type+\"v(\"+name_+\") and it returns \"+result+\" of type \"+typeof result+\"!\");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}var _emscripten_glGetBooleanv=_glGetBooleanv;function _glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}var _emscripten_glGetBufferParameteri64v=_glGetBufferParameteri64v;function _glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}var _emscripten_glGetBufferParameteriv=_glGetBufferParameteriv;function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}var _emscripten_glGetError=_glGetError;function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}var _emscripten_glGetFloatv=_glGetFloatv;function _glGetFragDataLocation(program,name){return GLctx.getFragDataLocation(GL.programs[program],UTF8ToString(name))}var _emscripten_glGetFragDataLocation=_glGetFragDataLocation;function _glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}var _emscripten_glGetFramebufferAttachmentParameteriv=_glGetFramebufferAttachmentParameteriv;function emscriptenWebGLGetIndexed(target,index,data,type){if(!data){GL.recordError(1281);return}var result=GLctx.getIndexedParameter(target,index);var ret;switch(typeof result){case\"boolean\":ret=result?1:0;break;case\"number\":ret=result;break;case\"object\":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data>>0]=ret?1:0;break;default:throw\"internal emscriptenWebGLGetIndexed() error, bad type: \"+type}}function _glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}var _emscripten_glGetInteger64i_v=_glGetInteger64i_v;function _glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}var _emscripten_glGetInteger64v=_glGetInteger64v;function _glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}var _emscripten_glGetIntegeri_v=_glGetIntegeri_v;function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}var _emscripten_glGetIntegerv=_glGetIntegerv;function _glGetInternalformativ(target,internalformat,pname,bufSize,params){if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx.getInternalformatParameter(target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}}var _emscripten_glGetInternalformativ=_glGetInternalformativ;function _glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}var _emscripten_glGetProgramBinary=_glGetProgramBinary;function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log=\"(unknown error)\";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}var _emscripten_glGetProgramInfoLog=_glGetProgramInfoLog;function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log=\"(unknown error)\";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}var _emscripten_glGetProgramiv=_glGetProgramiv;function _glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt[\"getQueryObjectEXT\"](query,pname)}else{param=GLctx.getQueryParameter(query,pname)}var ret;if(typeof param==\"boolean\"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}var _emscripten_glGetQueryObjecti64vEXT=_glGetQueryObjecti64vEXT;function _glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt[\"getQueryObjectEXT\"](query,pname);var ret;if(typeof param==\"boolean\"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}var _emscripten_glGetQueryObjectivEXT=_glGetQueryObjectivEXT;var _glGetQueryObjectui64vEXT=_glGetQueryObjecti64vEXT;var _emscripten_glGetQueryObjectui64vEXT=_glGetQueryObjectui64vEXT;function _glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.getQueryParameter(query,pname);var ret;if(typeof param==\"boolean\"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}var _emscripten_glGetQueryObjectuiv=_glGetQueryObjectuiv;var _glGetQueryObjectuivEXT=_glGetQueryObjectivEXT;var _emscripten_glGetQueryObjectuivEXT=_glGetQueryObjectuivEXT;function _glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getQuery(target,pname)}var _emscripten_glGetQueryiv=_glGetQueryiv;function _glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt[\"getQueryEXT\"](target,pname)}var _emscripten_glGetQueryivEXT=_glGetQueryivEXT;function _glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}var _emscripten_glGetRenderbufferParameteriv=_glGetRenderbufferParameteriv;function _glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)}var _emscripten_glGetSamplerParameterfv=_glGetSamplerParameterfv;function _glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getSamplerParameter(GL.samplers[sampler],pname)}var _emscripten_glGetSamplerParameteriv=_glGetSamplerParameteriv;function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log=\"(unknown error)\";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}var _emscripten_glGetShaderInfoLog=_glGetShaderInfoLog;function _glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}var _emscripten_glGetShaderPrecisionFormat=_glGetShaderPrecisionFormat;function _glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}var _emscripten_glGetShaderSource=_glGetShaderSource;function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log=\"(unknown error)\";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}var _emscripten_glGetShaderiv=_glGetShaderiv;function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return\"GL_\"+e}));ret=stringToNewUTF8(exts.join(\" \"));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion=\"OpenGL ES 3.0 (\"+glVersion+\")\";else{glVersion=\"OpenGL ES 2.0 (\"+glVersion+\")\"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+\"0\";glslVersion=\"OpenGL ES GLSL ES \"+ver_num[1]+\" (\"+glslVersion+\")\"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}var _emscripten_glGetString=_glGetString;function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return\"GL_\"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}var _emscripten_glGetStringi=_glGetStringi;function _glGetSynciv(sync,pname,bufSize,length,values){if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}}var _emscripten_glGetSynciv=_glGetSynciv;function _glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}var _emscripten_glGetTexParameterfv=_glGetTexParameterfv;function _glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}var _emscripten_glGetTexParameteriv=_glGetTexParameteriv;function _glGetTransformFeedbackVarying(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx.getTransformFeedbackVarying(program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}var _emscripten_glGetTransformFeedbackVarying=_glGetTransformFeedbackVarying;function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName))}var _emscripten_glGetUniformBlockIndex=_glGetUniformBlockIndex;function _glGetUniformIndices(program,uniformCount,uniformNames,uniformIndices){if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx.getUniformIndices(program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}var _emscripten_glGetUniformIndices=_glGetUniformIndices;function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)==\"]\"&&name.lastIndexOf(\"[\")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?\"[\"+webglLoc+\"]\":\"\"))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data==\"number\"||typeof data==\"boolean\"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}var _emscripten_glGetUniformfv=_glGetUniformfv;function _glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}var _emscripten_glGetUniformiv=_glGetUniformiv;function _glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}var _emscripten_glGetUniformuiv=_glGetUniformuiv;function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data[\"name\"]}else if(typeof data==\"number\"||typeof data==\"boolean\"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}var _emscripten_glGetVertexAttribIiv=_glGetVertexAttribIiv;var _glGetVertexAttribIuiv=_glGetVertexAttribIiv;var _emscripten_glGetVertexAttribIuiv=_glGetVertexAttribIuiv;function _glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}var _emscripten_glGetVertexAttribPointerv=_glGetVertexAttribPointerv;function _glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}var _emscripten_glGetVertexAttribfv=_glGetVertexAttribfv;function _glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}var _emscripten_glGetVertexAttribiv=_glGetVertexAttribiv;function _glHint(x0,x1){GLctx.hint(x0,x1)}var _emscripten_glHint=_glHint;function _glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateFramebuffer(target,list)}var _emscripten_glInvalidateFramebuffer=_glInvalidateFramebuffer;function _glInvalidateSubFramebuffer(target,numAttachments,attachments,x,y,width,height){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx.invalidateSubFramebuffer(target,list,x,y,width,height)}var _emscripten_glInvalidateSubFramebuffer=_glInvalidateSubFramebuffer;function _glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}var _emscripten_glIsBuffer=_glIsBuffer;function _glIsEnabled(x0){return GLctx.isEnabled(x0)}var _emscripten_glIsEnabled=_glIsEnabled;function _glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}var _emscripten_glIsFramebuffer=_glIsFramebuffer;function _glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}var _emscripten_glIsProgram=_glIsProgram;function _glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx.isQuery(query)}var _emscripten_glIsQuery=_glIsQuery;function _glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt[\"isQueryEXT\"](query)}var _emscripten_glIsQueryEXT=_glIsQueryEXT;function _glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}var _emscripten_glIsRenderbuffer=_glIsRenderbuffer;function _glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx.isSampler(sampler)}var _emscripten_glIsSampler=_glIsSampler;function _glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}var _emscripten_glIsShader=_glIsShader;function _glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}var _emscripten_glIsSync=_glIsSync;function _glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}var _emscripten_glIsTexture=_glIsTexture;function _glIsTransformFeedback(id){return GLctx.isTransformFeedback(GL.transformFeedbacks[id])}var _emscripten_glIsTransformFeedback=_glIsTransformFeedback;function _glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx.isVertexArray(vao)}var _emscripten_glIsVertexArray=_glIsVertexArray;var _glIsVertexArrayOES=_glIsVertexArray;var _emscripten_glIsVertexArrayOES=_glIsVertexArrayOES;function _glLineWidth(x0){GLctx.lineWidth(x0)}var _emscripten_glLineWidth=_glLineWidth;function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}var _emscripten_glLinkProgram=_glLinkProgram;function _glPauseTransformFeedback(){GLctx.pauseTransformFeedback()}var _emscripten_glPauseTransformFeedback=_glPauseTransformFeedback;function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}var _emscripten_glPixelStorei=_glPixelStorei;function _glPolygonOffset(x0,x1){GLctx.polygonOffset(x0,x1)}var _emscripten_glPolygonOffset=_glPolygonOffset;function _glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}var _emscripten_glProgramBinary=_glProgramBinary;function _glProgramParameteri(program,pname,value){GL.recordError(1280)}var _emscripten_glProgramParameteri=_glProgramParameteri;function _glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt[\"queryCounterEXT\"](GL.queries[id],target)}var _emscripten_glQueryCounterEXT=_glQueryCounterEXT;function _glReadBuffer(x0){GLctx.readBuffer(x0)}var _emscripten_glReadBuffer=_glReadBuffer;function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}var _emscripten_glReadPixels=_glReadPixels;function _glReleaseShaderCompiler(){}var _emscripten_glReleaseShaderCompiler=_glReleaseShaderCompiler;function _glRenderbufferStorage(x0,x1,x2,x3){GLctx.renderbufferStorage(x0,x1,x2,x3)}var _emscripten_glRenderbufferStorage=_glRenderbufferStorage;function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx.renderbufferStorageMultisample(x0,x1,x2,x3,x4)}var _emscripten_glRenderbufferStorageMultisample=_glRenderbufferStorageMultisample;function _glResumeTransformFeedback(){GLctx.resumeTransformFeedback()}var _emscripten_glResumeTransformFeedback=_glResumeTransformFeedback;function _glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}var _emscripten_glSampleCoverage=_glSampleCoverage;function _glSamplerParameterf(sampler,pname,param){GLctx.samplerParameterf(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameterf=_glSamplerParameterf;function _glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx.samplerParameterf(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameterfv=_glSamplerParameterfv;function _glSamplerParameteri(sampler,pname,param){GLctx.samplerParameteri(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameteri=_glSamplerParameteri;function _glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx.samplerParameteri(GL.samplers[sampler],pname,param)}var _emscripten_glSamplerParameteriv=_glSamplerParameteriv;function _glScissor(x0,x1,x2,x3){GLctx.scissor(x0,x1,x2,x3)}var _emscripten_glScissor=_glScissor;function _glShaderBinary(count,shaders,binaryformat,binary,length){GL.recordError(1280)}var _emscripten_glShaderBinary=_glShaderBinary;function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}var _emscripten_glShaderSource=_glShaderSource;function _glStencilFunc(x0,x1,x2){GLctx.stencilFunc(x0,x1,x2)}var _emscripten_glStencilFunc=_glStencilFunc;function _glStencilFuncSeparate(x0,x1,x2,x3){GLctx.stencilFuncSeparate(x0,x1,x2,x3)}var _emscripten_glStencilFuncSeparate=_glStencilFuncSeparate;function _glStencilMask(x0){GLctx.stencilMask(x0)}var _emscripten_glStencilMask=_glStencilMask;function _glStencilMaskSeparate(x0,x1){GLctx.stencilMaskSeparate(x0,x1)}var _emscripten_glStencilMaskSeparate=_glStencilMaskSeparate;function _glStencilOp(x0,x1,x2){GLctx.stencilOp(x0,x1,x2)}var _emscripten_glStencilOp=_glStencilOp;function _glStencilOpSeparate(x0,x1,x2,x3){GLctx.stencilOpSeparate(x0,x1,x2,x3)}var _emscripten_glStencilOpSeparate=_glStencilOpSeparate;function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}var _emscripten_glTexImage2D=_glTexImage2D;function _glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage3D(target,level,internalFormat,width,height,depth,border,format,type,null)}}var _emscripten_glTexImage3D=_glTexImage3D;function _glTexParameterf(x0,x1,x2){GLctx.texParameterf(x0,x1,x2)}var _emscripten_glTexParameterf=_glTexParameterf;function _glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}var _emscripten_glTexParameterfv=_glTexParameterfv;function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var _emscripten_glTexParameteri=_glTexParameteri;function _glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}var _emscripten_glTexParameteriv=_glTexParameteriv;function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx.texStorage2D(x0,x1,x2,x3,x4)}var _emscripten_glTexStorage2D=_glTexStorage2D;function _glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx.texStorage3D(x0,x1,x2,x3,x4,x5)}var _emscripten_glTexStorage3D=_glTexStorage3D;function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}var _emscripten_glTexSubImage2D=_glTexSubImage2D;function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}var _emscripten_glTexSubImage3D=_glTexSubImage3D;function _glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx.transformFeedbackVaryings(program,vars,bufferMode)}var _emscripten_glTransformFeedbackVaryings=_glTransformFeedbackVaryings;function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1f=_glUniform1f;var miniTempWebGLFloatBuffers=[];function _glUniform1fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}var _emscripten_glUniform1fv=_glUniform1fv;function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1i=_glUniform1i;var miniTempWebGLIntBuffers=[];function _glUniform1iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}var _emscripten_glUniform1iv=_glUniform1iv;function _glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}var _emscripten_glUniform1ui=_glUniform1ui;function _glUniform1uiv(location,count,value){count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)}var _emscripten_glUniform1uiv=_glUniform1uiv;function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2f=_glUniform2f;function _glUniform2fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}var _emscripten_glUniform2fv=_glUniform2fv;function _glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2i=_glUniform2i;function _glUniform2iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}var _emscripten_glUniform2iv=_glUniform2iv;function _glUniform2ui(location,v0,v1){GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)}var _emscripten_glUniform2ui=_glUniform2ui;function _glUniform2uiv(location,count,value){count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)}var _emscripten_glUniform2uiv=_glUniform2uiv;function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3f=_glUniform3f;function _glUniform3fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}var _emscripten_glUniform3fv=_glUniform3fv;function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3i=_glUniform3i;function _glUniform3iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}var _emscripten_glUniform3iv=_glUniform3iv;function _glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)}var _emscripten_glUniform3ui=_glUniform3ui;function _glUniform3uiv(location,count,value){count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)}var _emscripten_glUniform3uiv=_glUniform3uiv;function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4f=_glUniform4f;function _glUniform4fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}var _emscripten_glUniform4fv=_glUniform4fv;function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4i=_glUniform4i;function _glUniform4iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}var _emscripten_glUniform4iv=_glUniform4iv;function _glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)}var _emscripten_glUniform4ui=_glUniform4ui;function _glUniform4uiv(location,count,value){count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)}var _emscripten_glUniform4uiv=_glUniform4uiv;function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)}var _emscripten_glUniformBlockBinding=_glUniformBlockBinding;function _glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}var _emscripten_glUniformMatrix2fv=_glUniformMatrix2fv;function _glUniformMatrix2x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}var _emscripten_glUniformMatrix2x3fv=_glUniformMatrix2x3fv;function _glUniformMatrix2x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}var _emscripten_glUniformMatrix2x4fv=_glUniformMatrix2x4fv;function _glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}var _emscripten_glUniformMatrix3fv=_glUniformMatrix3fv;function _glUniformMatrix3x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}var _emscripten_glUniformMatrix3x2fv=_glUniformMatrix3x2fv;function _glUniformMatrix3x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}var _emscripten_glUniformMatrix3x4fv=_glUniformMatrix3x4fv;function _glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}var _emscripten_glUniformMatrix4fv=_glUniformMatrix4fv;function _glUniformMatrix4x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}var _emscripten_glUniformMatrix4x2fv=_glUniformMatrix4x2fv;function _glUniformMatrix4x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}var _emscripten_glUniformMatrix4x3fv=_glUniformMatrix4x3fv;function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}var _emscripten_glUseProgram=_glUseProgram;function _glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}var _emscripten_glValidateProgram=_glValidateProgram;function _glVertexAttrib1f(x0,x1){GLctx.vertexAttrib1f(x0,x1)}var _emscripten_glVertexAttrib1f=_glVertexAttrib1f;function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}var _emscripten_glVertexAttrib1fv=_glVertexAttrib1fv;function _glVertexAttrib2f(x0,x1,x2){GLctx.vertexAttrib2f(x0,x1,x2)}var _emscripten_glVertexAttrib2f=_glVertexAttrib2f;function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}var _emscripten_glVertexAttrib2fv=_glVertexAttrib2fv;function _glVertexAttrib3f(x0,x1,x2,x3){GLctx.vertexAttrib3f(x0,x1,x2,x3)}var _emscripten_glVertexAttrib3f=_glVertexAttrib3f;function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}var _emscripten_glVertexAttrib3fv=_glVertexAttrib3fv;function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx.vertexAttrib4f(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttrib4f=_glVertexAttrib4f;function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}var _emscripten_glVertexAttrib4fv=_glVertexAttrib4fv;function _glVertexAttribDivisor(index,divisor){GLctx.vertexAttribDivisor(index,divisor)}var _emscripten_glVertexAttribDivisor=_glVertexAttribDivisor;var _glVertexAttribDivisorANGLE=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorANGLE=_glVertexAttribDivisorANGLE;var _glVertexAttribDivisorARB=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorARB=_glVertexAttribDivisorARB;var _glVertexAttribDivisorEXT=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorEXT=_glVertexAttribDivisorEXT;var _glVertexAttribDivisorNV=_glVertexAttribDivisor;var _emscripten_glVertexAttribDivisorNV=_glVertexAttribDivisorNV;function _glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx.vertexAttribI4i(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttribI4i=_glVertexAttribI4i;function _glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}var _emscripten_glVertexAttribI4iv=_glVertexAttribI4iv;function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx.vertexAttribI4ui(x0,x1,x2,x3,x4)}var _emscripten_glVertexAttribI4ui=_glVertexAttribI4ui;function _glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}var _emscripten_glVertexAttribI4uiv=_glVertexAttribI4uiv;function _glVertexAttribIPointer(index,size,type,stride,ptr){GLctx.vertexAttribIPointer(index,size,type,stride,ptr)}var _emscripten_glVertexAttribIPointer=_glVertexAttribIPointer;function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}var _emscripten_glVertexAttribPointer=_glVertexAttribPointer;function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}var _emscripten_glViewport=_glViewport;function _glWaitSync(sync,flags,timeout_low,timeout_high){var timeout=convertI32PairToI53(timeout_low,timeout_high);GLctx.waitSync(GL.syncs[sync],flags,timeout)}var _emscripten_glWaitSync=_glWaitSync;function _emscripten_has_asyncify(){return 0}function _emscripten_is_main_browser_thread(){return!ENVIRONMENT_IS_WORKER}function doRequestFullscreen(target,strategy){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;if(!target.requestFullscreen&&!target.webkitRequestFullscreen){return-3}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(strategy.deferUntilInEventHandler){JSEvents.deferCall(JSEvents_requestFullscreen,1,[target,strategy]);return 1}return-2}return JSEvents_requestFullscreen(target,strategy)}function _emscripten_request_fullscreen_strategy(target,deferUntilInEventHandler,fullscreenStrategy){var strategy={scaleMode:HEAP32[fullscreenStrategy>>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}return-2}return requestPointerLock(target)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function registerBeforeUnloadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString){var beforeUnloadEventHandlerFunc=function(e=event){var confirmationMessage=getWasmTableEntry(callbackfunc)(eventTypeId,0,userData);if(confirmationMessage){confirmationMessage=UTF8ToString(confirmationMessage)}if(confirmationMessage){e.preventDefault();e.returnValue=confirmationMessage;return confirmationMessage}};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:beforeUnloadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_beforeunload_callback_on_thread(userData,callbackfunc,targetThread){if(typeof onbeforeunload==\"undefined\")return-1;if(targetThread!==1)return-5;return registerBeforeUnloadEventCallback(2,userData,true,callbackfunc,28,\"beforeunload\")}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(e=event){var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:\"\";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,\"blur\",targetThread)}function _emscripten_set_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;target.style.width=width+\"px\";target.style.height=height+\"px\";return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,\"focus\",targetThread)}function fillFullscreenChangeEventData(eventStruct){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:\"\";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}}function registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=function(e=event){var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;fillFullscreenChangeEventData(fullscreenChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_fullscreenchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!JSEvents.fullscreenEnabled())return-1;target=findEventTarget(target);if(!target)return-4;registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,\"webkitfullscreenchange\",targetThread);return registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,\"fullscreenchange\",targetThread)}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(e=event){var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e[\"gamepad\"]);if(getWasmTableEntry(callbackfunc)(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,\"gamepadconnected\",targetThread)}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;return registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,\"gamepaddisconnected\",targetThread)}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||\"\",keyEventData+44,32);stringToUTF8(e.code||\"\",keyEventData+76,32);stringToUTF8(e.char||\"\",keyEventData+108,32);stringToUTF8(e.locale||\"\",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,\"keydown\",targetThread)}function _emscripten_set_keypress_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,\"keypress\",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,\"keyup\",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e[\"movementX\"];HEAP32[idx+12]=e[\"movementY\"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(e=event){fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!=\"mousemove\"&&eventTypeString!=\"mouseenter\"&&eventTypeString!=\"mouseleave\",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,\"mousedown\",targetThread)}function _emscripten_set_mouseenter_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,33,\"mouseenter\",targetThread)}function _emscripten_set_mouseleave_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,34,\"mouseleave\",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,\"mousemove\",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,\"mouseup\",targetThread)}function fillPointerlockChangeEventData(eventStruct){var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:\"\";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)}function registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.pointerlockChangeEvent)JSEvents.pointerlockChangeEvent=_malloc(260);var pointerlockChangeEventHandlerFunc=function(e=event){var pointerlockChangeEvent=JSEvents.pointerlockChangeEvent;fillPointerlockChangeEventData(pointerlockChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,pointerlockChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:pointerlockChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_pointerlockchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(!document||!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}target=findEventTarget(target);if(!target)return-4;registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,\"mozpointerlockchange\",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,\"webkitpointerlockchange\",targetThread);registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,\"mspointerlockchange\",targetThread);return registerPointerlockChangeEventCallback(target,userData,useCapture,callbackfunc,20,\"pointerlockchange\",targetThread)}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(e=event){if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(getWasmTableEntry(callbackfunc)(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerUiEventCallback(target,userData,useCapture,callbackfunc,10,\"resize\",targetThread)}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString==\"touchstart\"||eventTypeString==\"touchend\",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,\"touchcancel\",targetThread)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,\"touchend\",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,\"touchmove\",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,\"touchstart\",targetThread)}function fillVisibilityChangeEventData(eventStruct){var visibilityStates=[\"hidden\",\"visible\",\"prerender\",\"unloaded\"];var visibilityState=visibilityStates.indexOf(document.visibilityState);HEAP32[eventStruct>>2]=document.hidden;HEAP32[eventStruct+4>>2]=visibilityState}function registerVisibilityChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.visibilityChangeEvent)JSEvents.visibilityChangeEvent=_malloc(8);var visibilityChangeEventHandlerFunc=function(e=event){var visibilityChangeEvent=JSEvents.visibilityChangeEvent;fillVisibilityChangeEventData(visibilityChangeEvent);if(getWasmTableEntry(callbackfunc)(eventTypeId,visibilityChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:visibilityChangeEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_visibilitychange_callback_on_thread(userData,useCapture,callbackfunc,targetThread){return registerVisibilityChangeEventCallback(specialHTMLTargets[1],userData,useCapture,callbackfunc,21,\"visibilitychange\",targetThread)}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(e=event){var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e[\"deltaX\"];HEAPF64[wheelEvent+80>>3]=e[\"deltaY\"];HEAPF64[wheelEvent+88>>3]=e[\"deltaZ\"];HEAP32[wheelEvent+96>>2]=e[\"deltaMode\"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!=\"undefined\"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,\"wheel\",targetThread)}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}function _emscripten_sleep(){throw\"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep\"}var Fetch={openDatabase:function(dbname,dbversion,onsuccess,onerror){try{var openRequest=indexedDB.open(dbname,dbversion)}catch(e){return onerror(e)}openRequest.onupgradeneeded=event=>{var db=event.target.result;if(db.objectStoreNames.contains(\"FILES\")){db.deleteObjectStore(\"FILES\")}db.createObjectStore(\"FILES\")};openRequest.onsuccess=event=>onsuccess(event.target.result);openRequest.onerror=error=>onerror(error)},init:function(){Fetch.xhrs=new HandleAllocator;var onsuccess=db=>{Fetch.dbInstance=db;removeRunDependency(\"library_fetch_init\")};var onerror=()=>{Fetch.dbInstance=false;removeRunDependency(\"library_fetch_init\")};addRunDependency(\"library_fetch_init\");Fetch.openDatabase(\"emscripten_filesystem\",1,onsuccess,onerror)}};function fetchXHR(fetch,onsuccess,onerror,onprogress,onreadystatechange){var url=HEAPU32[fetch+8>>2];if(!url){onerror(fetch,0,\"no url specified!\");return}var url_=UTF8ToString(url);var fetch_attr=fetch+112;var requestMethod=UTF8ToString(fetch_attr+0);if(!requestMethod)requestMethod=\"GET\";var timeoutMsecs=HEAPU32[fetch_attr+56>>2];var userName=HEAPU32[fetch_attr+68>>2];var password=HEAPU32[fetch_attr+72>>2];var requestHeaders=HEAPU32[fetch_attr+76>>2];var overriddenMimeType=HEAPU32[fetch_attr+80>>2];var dataPtr=HEAPU32[fetch_attr+84>>2];var dataLength=HEAPU32[fetch_attr+88>>2];var fetchAttributes=HEAPU32[fetch_attr+52>>2];var fetchAttrLoadToMemory=!!(fetchAttributes&1);var fetchAttrStreamData=!!(fetchAttributes&2);var fetchAttrSynchronous=!!(fetchAttributes&64);var userNameStr=userName?UTF8ToString(userName):undefined;var passwordStr=password?UTF8ToString(password):undefined;var xhr=new XMLHttpRequest;xhr.withCredentials=!!HEAPU8[fetch_attr+60>>0];xhr.open(requestMethod,url_,!fetchAttrSynchronous,userNameStr,passwordStr);if(!fetchAttrSynchronous)xhr.timeout=timeoutMsecs;xhr.url_=url_;xhr.responseType=\"arraybuffer\";if(overriddenMimeType){var overriddenMimeTypeStr=UTF8ToString(overriddenMimeType);xhr.overrideMimeType(overriddenMimeTypeStr)}if(requestHeaders){for(;;){var key=HEAPU32[requestHeaders>>2];if(!key)break;var value=HEAPU32[requestHeaders+4>>2];if(!value)break;requestHeaders+=8;var keyStr=UTF8ToString(key);var valueStr=UTF8ToString(value);xhr.setRequestHeader(keyStr,valueStr)}}var id=Fetch.xhrs.allocate(xhr);HEAPU32[fetch>>2]=id;var data=dataPtr&&dataLength?HEAPU8.slice(dataPtr,dataPtr+dataLength):null;function saveResponseAndStatus(){var ptr=0;var ptrLen=0;if(xhr.response&&fetchAttrLoadToMemory&&HEAPU32[fetch+12>>2]===0){ptrLen=xhr.response.byteLength}if(ptrLen>0){ptr=_malloc(ptrLen);HEAPU8.set(new Uint8Array(xhr.response),ptr)}HEAPU32[fetch+12>>2]=ptr;writeI53ToI64(fetch+16,ptrLen);writeI53ToI64(fetch+24,0);var len=xhr.response?xhr.response.byteLength:0;if(len){writeI53ToI64(fetch+32,len)}HEAPU16[fetch+40>>1]=xhr.readyState;HEAPU16[fetch+42>>1]=xhr.status;if(xhr.statusText)stringToUTF8(xhr.statusText,fetch+44,64)}xhr.onload=e=>{if(!Fetch.xhrs.has(id)){return}saveResponseAndStatus();if(xhr.status>=200&&xhr.status<300){if(onsuccess)onsuccess(fetch,xhr,e)}else{if(onerror)onerror(fetch,xhr,e)}};xhr.onerror=e=>{if(!Fetch.xhrs.has(id)){return}saveResponseAndStatus();if(onerror)onerror(fetch,xhr,e)};xhr.ontimeout=e=>{if(!Fetch.xhrs.has(id)){return}if(onerror)onerror(fetch,xhr,e)};xhr.onprogress=e=>{if(!Fetch.xhrs.has(id)){return}var ptrLen=fetchAttrLoadToMemory&&fetchAttrStreamData&&xhr.response?xhr.response.byteLength:0;var ptr=0;if(ptrLen>0&&fetchAttrLoadToMemory&&fetchAttrStreamData){ptr=_malloc(ptrLen);HEAPU8.set(new Uint8Array(xhr.response),ptr)}HEAPU32[fetch+12>>2]=ptr;writeI53ToI64(fetch+16,ptrLen);writeI53ToI64(fetch+24,e.loaded-ptrLen);writeI53ToI64(fetch+32,e.total);HEAPU16[fetch+40>>1]=xhr.readyState;if(xhr.readyState>=3&&xhr.status===0&&e.loaded>0)xhr.status=200;HEAPU16[fetch+42>>1]=xhr.status;if(xhr.statusText)stringToUTF8(xhr.statusText,fetch+44,64);if(onprogress)onprogress(fetch,xhr,e);if(ptr){_free(ptr)}};xhr.onreadystatechange=e=>{if(!Fetch.xhrs.has(id)){return}HEAPU16[fetch+40>>1]=xhr.readyState;if(xhr.readyState>=2){HEAPU16[fetch+42>>1]=xhr.status}if(onreadystatechange)onreadystatechange(fetch,xhr,e)};try{xhr.send(data)}catch(e){if(onerror)onerror(fetch,xhr,e)}}function fetchCacheData(db,fetch,data,onsuccess,onerror){if(!db){onerror(fetch,0,\"IndexedDB not available!\");return}var fetch_attr=fetch+112;var destinationPath=HEAPU32[fetch_attr+64>>2];if(!destinationPath)destinationPath=HEAPU32[fetch+8>>2];var destinationPathStr=UTF8ToString(destinationPath);try{var transaction=db.transaction([\"FILES\"],\"readwrite\");var packages=transaction.objectStore(\"FILES\");var putRequest=packages.put(data,destinationPathStr);putRequest.onsuccess=event=>{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=200;stringToUTF8(\"OK\",fetch+44,64);onsuccess(fetch,0,destinationPathStr)};putRequest.onerror=error=>{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=413;stringToUTF8(\"Payload Too Large\",fetch+44,64);onerror(fetch,0,error)}}catch(e){onerror(fetch,0,e)}}function fetchLoadCachedData(db,fetch,onsuccess,onerror){if(!db){onerror(fetch,0,\"IndexedDB not available!\");return}var fetch_attr=fetch+112;var path=HEAPU32[fetch_attr+64>>2];if(!path)path=HEAPU32[fetch+8>>2];var pathStr=UTF8ToString(path);try{var transaction=db.transaction([\"FILES\"],\"readonly\");var packages=transaction.objectStore(\"FILES\");var getRequest=packages.get(pathStr);getRequest.onsuccess=event=>{if(event.target.result){var value=event.target.result;var len=value.byteLength||value.length;var ptr=_malloc(len);HEAPU8.set(new Uint8Array(value),ptr);HEAPU32[fetch+12>>2]=ptr;writeI53ToI64(fetch+16,len);writeI53ToI64(fetch+24,0);writeI53ToI64(fetch+32,len);HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=200;stringToUTF8(\"OK\",fetch+44,64);onsuccess(fetch,0,value)}else{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=404;stringToUTF8(\"Not Found\",fetch+44,64);onerror(fetch,0,\"no data\")}};getRequest.onerror=error=>{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=404;stringToUTF8(\"Not Found\",fetch+44,64);onerror(fetch,0,error)}}catch(e){onerror(fetch,0,e)}}function fetchDeleteCachedData(db,fetch,onsuccess,onerror){if(!db){onerror(fetch,0,\"IndexedDB not available!\");return}var fetch_attr=fetch+112;var path=HEAPU32[fetch_attr+64>>2];if(!path)path=HEAPU32[fetch+8>>2];var pathStr=UTF8ToString(path);try{var transaction=db.transaction([\"FILES\"],\"readwrite\");var packages=transaction.objectStore(\"FILES\");var request=packages.delete(pathStr);request.onsuccess=event=>{var value=event.target.result;HEAPU32[fetch+12>>2]=0;writeI53ToI64(fetch+16,0);writeI53ToI64(fetch+24,0);writeI53ToI64(fetch+32,0);HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=200;stringToUTF8(\"OK\",fetch+44,64);onsuccess(fetch,0,value)};request.onerror=error=>{HEAPU16[fetch+40>>1]=4;HEAPU16[fetch+42>>1]=404;stringToUTF8(\"Not Found\",fetch+44,64);onerror(fetch,0,error)}}catch(e){onerror(fetch,0,e)}}function _emscripten_start_fetch(fetch,successcb,errorcb,progresscb,readystatechangecb){var fetch_attr=fetch+112;var onsuccess=HEAPU32[fetch_attr+36>>2];var onerror=HEAPU32[fetch_attr+40>>2];var onprogress=HEAPU32[fetch_attr+44>>2];var onreadystatechange=HEAPU32[fetch_attr+48>>2];var fetchAttributes=HEAPU32[fetch_attr+52>>2];var fetchAttrSynchronous=!!(fetchAttributes&64);function doCallback(f){if(fetchAttrSynchronous){f()}else{callUserCallback(f)}}var reportSuccess=(fetch,xhr,e)=>{doCallback(()=>{if(onsuccess)getWasmTableEntry(onsuccess)(fetch);else if(successcb)successcb(fetch)})};var reportProgress=(fetch,xhr,e)=>{doCallback(()=>{if(onprogress)getWasmTableEntry(onprogress)(fetch);else if(progresscb)progresscb(fetch)})};var reportError=(fetch,xhr,e)=>{doCallback(()=>{if(onerror)getWasmTableEntry(onerror)(fetch);else if(errorcb)errorcb(fetch)})};var reportReadyStateChange=(fetch,xhr,e)=>{doCallback(()=>{if(onreadystatechange)getWasmTableEntry(onreadystatechange)(fetch);else if(readystatechangecb)readystatechangecb(fetch)})};var performUncachedXhr=(fetch,xhr,e)=>{fetchXHR(fetch,reportSuccess,reportError,reportProgress,reportReadyStateChange)};var cacheResultAndReportSuccess=(fetch,xhr,e)=>{var storeSuccess=(fetch,xhr,e)=>{doCallback(()=>{if(onsuccess)getWasmTableEntry(onsuccess)(fetch);else if(successcb)successcb(fetch)})};var storeError=(fetch,xhr,e)=>{doCallback(()=>{if(onsuccess)getWasmTableEntry(onsuccess)(fetch);else if(successcb)successcb(fetch)})};fetchCacheData(Fetch.dbInstance,fetch,xhr.response,storeSuccess,storeError)};var performCachedXhr=(fetch,xhr,e)=>{fetchXHR(fetch,cacheResultAndReportSuccess,reportError,reportProgress,reportReadyStateChange)};var requestMethod=UTF8ToString(fetch_attr+0);var fetchAttrReplace=!!(fetchAttributes&16);var fetchAttrPersistFile=!!(fetchAttributes&4);var fetchAttrNoDownload=!!(fetchAttributes&32);if(requestMethod===\"EM_IDB_STORE\"){var ptr=HEAPU32[fetch_attr+84>>2];var size=HEAPU32[fetch_attr+88>>2];fetchCacheData(Fetch.dbInstance,fetch,HEAPU8.slice(ptr,ptr+size),reportSuccess,reportError)}else if(requestMethod===\"EM_IDB_DELETE\"){fetchDeleteCachedData(Fetch.dbInstance,fetch,reportSuccess,reportError)}else if(!fetchAttrReplace){fetchLoadCachedData(Fetch.dbInstance,fetch,reportSuccess,fetchAttrNoDownload?reportError:fetchAttrPersistFile?performCachedXhr:performUncachedXhr)}else if(!fetchAttrNoDownload){fetchXHR(fetch,fetchAttrPersistFile?cacheResultAndReportSuccess:reportSuccess,reportError,reportProgress,reportReadyStateChange)}else{return 0}return fetch}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings}function stringToAscii(str,buffer){for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!==\"undefined\"){offset+=curr}}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value==\"number\"?value.toString():value||\"\";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}return\"PM\"},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},\"%V\":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};pattern=pattern.replace(/%%/g,\"\\0\\0\");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\\0\\0/g,\"%\");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}function getCFunc(ident){var func=Module[\"_\"+ident];return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},\"array\":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\"){return UTF8ToString(ret)}if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;itype===\"number\"||type===\"boolean\");var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module[\"FS_createPath\"]=FS.createPath;Module[\"FS_createDataFile\"]=FS.createDataFile;Module[\"FS_createPreloadedFile\"]=FS.createPreloadedFile;Module[\"FS_unlink\"]=FS.unlink;Module[\"FS_createLazyFile\"]=FS.createLazyFile;Module[\"FS_createDevice\"]=FS.createDevice;BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_emval();PureVirtualError=Module[\"PureVirtualError\"]=extendError(Error,\"PureVirtualError\");embind_init_charCodes();init_embind();InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");init_ClassHandle();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");Module[\"requestFullscreen\"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module[\"requestAnimationFrame\"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module[\"setCanvasSize\"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module[\"pauseMainLoop\"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module[\"resumeMainLoop\"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module[\"getUserMedia\"]=function Module_getUserMedia(){Browser.getUserMedia()};Module[\"createContext\"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Fetch.init();var wasmImports={\"f\":___cxa_throw,\"ha\":___syscall_fcntl64,\"rb\":___syscall_ioctl,\"sb\":___syscall_openat,\"pb\":___syscall_stat64,\"Na\":__embind_create_inheriting_constructor,\"gb\":__embind_register_bigint,\"Pg\":__embind_register_bool,\"d\":__embind_register_class,\"e\":__embind_register_class_class_function,\"g\":__embind_register_class_constructor,\"a\":__embind_register_class_function,\"c\":__embind_register_class_property,\"Og\":__embind_register_emval,\"i\":__embind_register_enum,\"b\":__embind_register_enum_value,\"oa\":__embind_register_float,\"j\":__embind_register_function,\"r\":__embind_register_integer,\"k\":__embind_register_memory_view,\"na\":__embind_register_std_string,\"S\":__embind_register_std_wstring,\"Qg\":__embind_register_void,\"Rg\":__emscripten_fetch_free,\"tb\":__emscripten_get_now_is_monotonic,\"ib\":__emscripten_throw_longjmp,\"Z\":__emval_call_method,\"C\":__emval_call_void_method,\"x\":__emval_decref,\"u\":__emval_get_method_caller,\"_\":__emval_incref,\"Y\":__emval_run_destructors,\"w\":__emval_take_value,\"lb\":__localtime_js,\"kb\":__tzset_js,\"y\":_abort,\"kh\":_eglBindAPI,\"nh\":_eglChooseConfig,\"bh\":_eglCreateContext,\"dh\":_eglCreateWindowSurface,\"ch\":_eglDestroyContext,\"eh\":_eglDestroySurface,\"oh\":_eglGetConfigAttrib,\"La\":_eglGetDisplay,\"ah\":_eglGetError,\"lh\":_eglInitialize,\"fh\":_eglMakeCurrent,\"$g\":_eglQueryString,\"gh\":_eglSwapBuffers,\"hh\":_eglSwapInterval,\"mh\":_eglTerminate,\"jh\":_eglWaitGL,\"ih\":_eglWaitNative,\"z\":_emscripten_asm_const_int,\"m\":_emscripten_asm_const_int_sync_on_main_thread,\"ab\":_emscripten_cancel_main_loop,\"R\":_emscripten_date_now,\"Ug\":_emscripten_exit_fullscreen,\"Zg\":_emscripten_exit_pointerlock,\"B\":_emscripten_get_device_pixel_ratio,\"t\":_emscripten_get_element_css_size,\"W\":_emscripten_get_gamepad_status,\"Q\":_emscripten_get_now,\"Ma\":_emscripten_get_num_gamepads,\"_g\":_emscripten_get_screen_size,\"tg\":_emscripten_glActiveTexture,\"sg\":_emscripten_glAttachShader,\"ld\":_emscripten_glBeginQuery,\"Kg\":_emscripten_glBeginQueryEXT,\"Uc\":_emscripten_glBeginTransformFeedback,\"rg\":_emscripten_glBindAttribLocation,\"pg\":_emscripten_glBindBuffer,\"Rc\":_emscripten_glBindBufferBase,\"Sc\":_emscripten_glBindBufferRange,\"og\":_emscripten_glBindFramebuffer,\"ng\":_emscripten_glBindRenderbuffer,\"Xb\":_emscripten_glBindSampler,\"mg\":_emscripten_glBindTexture,\"Pb\":_emscripten_glBindTransformFeedback,\"Zc\":_emscripten_glBindVertexArray,\"Cg\":_emscripten_glBindVertexArrayOES,\"lg\":_emscripten_glBlendColor,\"kg\":_emscripten_glBlendEquation,\"jg\":_emscripten_glBlendEquationSeparate,\"ig\":_emscripten_glBlendFunc,\"hg\":_emscripten_glBlendFuncSeparate,\"ad\":_emscripten_glBlitFramebuffer,\"gg\":_emscripten_glBufferData,\"fg\":_emscripten_glBufferSubData,\"eg\":_emscripten_glCheckFramebufferStatus,\"dg\":_emscripten_glClear,\"tc\":_emscripten_glClearBufferfi,\"uc\":_emscripten_glClearBufferfv,\"wc\":_emscripten_glClearBufferiv,\"vc\":_emscripten_glClearBufferuiv,\"cg\":_emscripten_glClearColor,\"bg\":_emscripten_glClearDepthf,\"ag\":_emscripten_glClearStencil,\"fc\":_emscripten_glClientWaitSync,\"$f\":_emscripten_glColorMask,\"_f\":_emscripten_glCompileShader,\"Zf\":_emscripten_glCompressedTexImage2D,\"rd\":_emscripten_glCompressedTexImage3D,\"Yf\":_emscripten_glCompressedTexSubImage2D,\"qd\":_emscripten_glCompressedTexSubImage3D,\"rc\":_emscripten_glCopyBufferSubData,\"Wf\":_emscripten_glCopyTexImage2D,\"Vf\":_emscripten_glCopyTexSubImage2D,\"sd\":_emscripten_glCopyTexSubImage3D,\"Uf\":_emscripten_glCreateProgram,\"Tf\":_emscripten_glCreateShader,\"Sf\":_emscripten_glCullFace,\"Rf\":_emscripten_glDeleteBuffers,\"Qf\":_emscripten_glDeleteFramebuffers,\"Pf\":_emscripten_glDeleteProgram,\"nd\":_emscripten_glDeleteQueries,\"Mg\":_emscripten_glDeleteQueriesEXT,\"Of\":_emscripten_glDeleteRenderbuffers,\"_b\":_emscripten_glDeleteSamplers,\"Nf\":_emscripten_glDeleteShader,\"gc\":_emscripten_glDeleteSync,\"Mf\":_emscripten_glDeleteTextures,\"Ob\":_emscripten_glDeleteTransformFeedbacks,\"Yc\":_emscripten_glDeleteVertexArrays,\"Ag\":_emscripten_glDeleteVertexArraysOES,\"Lf\":_emscripten_glDepthFunc,\"Kf\":_emscripten_glDepthMask,\"Jf\":_emscripten_glDepthRangef,\"If\":_emscripten_glDetachShader,\"Hf\":_emscripten_glDisable,\"Gf\":_emscripten_glDisableVertexAttribArray,\"Ff\":_emscripten_glDrawArrays,\"kc\":_emscripten_glDrawArraysInstanced,\"wg\":_emscripten_glDrawArraysInstancedANGLE,\"xb\":_emscripten_glDrawArraysInstancedARB,\"zd\":_emscripten_glDrawArraysInstancedEXT,\"yb\":_emscripten_glDrawArraysInstancedNV,\"hd\":_emscripten_glDrawBuffers,\"xd\":_emscripten_glDrawBuffersEXT,\"xg\":_emscripten_glDrawBuffersWEBGL,\"Ef\":_emscripten_glDrawElements,\"jc\":_emscripten_glDrawElementsInstanced,\"vg\":_emscripten_glDrawElementsInstancedANGLE,\"vb\":_emscripten_glDrawElementsInstancedARB,\"wb\":_emscripten_glDrawElementsInstancedEXT,\"yd\":_emscripten_glDrawElementsInstancedNV,\"vd\":_emscripten_glDrawRangeElements,\"Df\":_emscripten_glEnable,\"Cf\":_emscripten_glEnableVertexAttribArray,\"kd\":_emscripten_glEndQuery,\"Jg\":_emscripten_glEndQueryEXT,\"Tc\":_emscripten_glEndTransformFeedback,\"ic\":_emscripten_glFenceSync,\"Bf\":_emscripten_glFinish,\"Af\":_emscripten_glFlush,\"zf\":_emscripten_glFramebufferRenderbuffer,\"yf\":_emscripten_glFramebufferTexture2D,\"_c\":_emscripten_glFramebufferTextureLayer,\"xf\":_emscripten_glFrontFace,\"wf\":_emscripten_glGenBuffers,\"uf\":_emscripten_glGenFramebuffers,\"od\":_emscripten_glGenQueries,\"Ng\":_emscripten_glGenQueriesEXT,\"tf\":_emscripten_glGenRenderbuffers,\"$b\":_emscripten_glGenSamplers,\"rf\":_emscripten_glGenTextures,\"Nb\":_emscripten_glGenTransformFeedbacks,\"Xc\":_emscripten_glGenVertexArrays,\"zg\":_emscripten_glGenVertexArraysOES,\"vf\":_emscripten_glGenerateMipmap,\"qf\":_emscripten_glGetActiveAttrib,\"pf\":_emscripten_glGetActiveUniform,\"mc\":_emscripten_glGetActiveUniformBlockName,\"nc\":_emscripten_glGetActiveUniformBlockiv,\"pc\":_emscripten_glGetActiveUniformsiv,\"of\":_emscripten_glGetAttachedShaders,\"nf\":_emscripten_glGetAttribLocation,\"mf\":_emscripten_glGetBooleanv,\"ac\":_emscripten_glGetBufferParameteri64v,\"lf\":_emscripten_glGetBufferParameteriv,\"kf\":_emscripten_glGetError,\"jf\":_emscripten_glGetFloatv,\"Gc\":_emscripten_glGetFragDataLocation,\"hf\":_emscripten_glGetFramebufferAttachmentParameteriv,\"bc\":_emscripten_glGetInteger64i_v,\"dc\":_emscripten_glGetInteger64v,\"Vc\":_emscripten_glGetIntegeri_v,\"ff\":_emscripten_glGetIntegerv,\"Bb\":_emscripten_glGetInternalformativ,\"Jb\":_emscripten_glGetProgramBinary,\"df\":_emscripten_glGetProgramInfoLog,\"ef\":_emscripten_glGetProgramiv,\"Eg\":_emscripten_glGetQueryObjecti64vEXT,\"Gg\":_emscripten_glGetQueryObjectivEXT,\"Dg\":_emscripten_glGetQueryObjectui64vEXT,\"id\":_emscripten_glGetQueryObjectuiv,\"Fg\":_emscripten_glGetQueryObjectuivEXT,\"jd\":_emscripten_glGetQueryiv,\"Hg\":_emscripten_glGetQueryivEXT,\"cf\":_emscripten_glGetRenderbufferParameteriv,\"Rb\":_emscripten_glGetSamplerParameterfv,\"Sb\":_emscripten_glGetSamplerParameteriv,\"af\":_emscripten_glGetShaderInfoLog,\"$e\":_emscripten_glGetShaderPrecisionFormat,\"_e\":_emscripten_glGetShaderSource,\"bf\":_emscripten_glGetShaderiv,\"Ze\":_emscripten_glGetString,\"sc\":_emscripten_glGetStringi,\"cc\":_emscripten_glGetSynciv,\"Ye\":_emscripten_glGetTexParameterfv,\"We\":_emscripten_glGetTexParameteriv,\"Pc\":_emscripten_glGetTransformFeedbackVarying,\"oc\":_emscripten_glGetUniformBlockIndex,\"qc\":_emscripten_glGetUniformIndices,\"Te\":_emscripten_glGetUniformLocation,\"Ve\":_emscripten_glGetUniformfv,\"Ue\":_emscripten_glGetUniformiv,\"Hc\":_emscripten_glGetUniformuiv,\"Nc\":_emscripten_glGetVertexAttribIiv,\"Mc\":_emscripten_glGetVertexAttribIuiv,\"Qe\":_emscripten_glGetVertexAttribPointerv,\"Se\":_emscripten_glGetVertexAttribfv,\"Re\":_emscripten_glGetVertexAttribiv,\"Pe\":_emscripten_glHint,\"Gb\":_emscripten_glInvalidateFramebuffer,\"Fb\":_emscripten_glInvalidateSubFramebuffer,\"Oe\":_emscripten_glIsBuffer,\"Ne\":_emscripten_glIsEnabled,\"Le\":_emscripten_glIsFramebuffer,\"Ke\":_emscripten_glIsProgram,\"md\":_emscripten_glIsQuery,\"Lg\":_emscripten_glIsQueryEXT,\"Je\":_emscripten_glIsRenderbuffer,\"Yb\":_emscripten_glIsSampler,\"Ie\":_emscripten_glIsShader,\"hc\":_emscripten_glIsSync,\"He\":_emscripten_glIsTexture,\"Mb\":_emscripten_glIsTransformFeedback,\"Wc\":_emscripten_glIsVertexArray,\"yg\":_emscripten_glIsVertexArrayOES,\"Ge\":_emscripten_glLineWidth,\"Fe\":_emscripten_glLinkProgram,\"Lb\":_emscripten_glPauseTransformFeedback,\"Ee\":_emscripten_glPixelStorei,\"De\":_emscripten_glPolygonOffset,\"Ib\":_emscripten_glProgramBinary,\"Hb\":_emscripten_glProgramParameteri,\"Ig\":_emscripten_glQueryCounterEXT,\"wd\":_emscripten_glReadBuffer,\"Ce\":_emscripten_glReadPixels,\"Ae\":_emscripten_glReleaseShaderCompiler,\"ze\":_emscripten_glRenderbufferStorage,\"$c\":_emscripten_glRenderbufferStorageMultisample,\"Kb\":_emscripten_glResumeTransformFeedback,\"ye\":_emscripten_glSampleCoverage,\"Ub\":_emscripten_glSamplerParameterf,\"Tb\":_emscripten_glSamplerParameterfv,\"Wb\":_emscripten_glSamplerParameteri,\"Vb\":_emscripten_glSamplerParameteriv,\"xe\":_emscripten_glScissor,\"we\":_emscripten_glShaderBinary,\"ve\":_emscripten_glShaderSource,\"ue\":_emscripten_glStencilFunc,\"te\":_emscripten_glStencilFuncSeparate,\"se\":_emscripten_glStencilMask,\"re\":_emscripten_glStencilMaskSeparate,\"pe\":_emscripten_glStencilOp,\"oe\":_emscripten_glStencilOpSeparate,\"ne\":_emscripten_glTexImage2D,\"ud\":_emscripten_glTexImage3D,\"me\":_emscripten_glTexParameterf,\"le\":_emscripten_glTexParameterfv,\"ke\":_emscripten_glTexParameteri,\"je\":_emscripten_glTexParameteriv,\"Db\":_emscripten_glTexStorage2D,\"Cb\":_emscripten_glTexStorage3D,\"ie\":_emscripten_glTexSubImage2D,\"td\":_emscripten_glTexSubImage3D,\"Qc\":_emscripten_glTransformFeedbackVaryings,\"he\":_emscripten_glUniform1f,\"ge\":_emscripten_glUniform1fv,\"ee\":_emscripten_glUniform1i,\"de\":_emscripten_glUniform1iv,\"Fc\":_emscripten_glUniform1ui,\"Ac\":_emscripten_glUniform1uiv,\"ce\":_emscripten_glUniform2f,\"be\":_emscripten_glUniform2fv,\"ae\":_emscripten_glUniform2i,\"$d\":_emscripten_glUniform2iv,\"Ec\":_emscripten_glUniform2ui,\"zc\":_emscripten_glUniform2uiv,\"_d\":_emscripten_glUniform3f,\"Zd\":_emscripten_glUniform3fv,\"Yd\":_emscripten_glUniform3i,\"Xd\":_emscripten_glUniform3iv,\"Dc\":_emscripten_glUniform3ui,\"yc\":_emscripten_glUniform3uiv,\"Vd\":_emscripten_glUniform4f,\"Ud\":_emscripten_glUniform4fv,\"Td\":_emscripten_glUniform4i,\"Sd\":_emscripten_glUniform4iv,\"Bc\":_emscripten_glUniform4ui,\"xc\":_emscripten_glUniform4uiv,\"lc\":_emscripten_glUniformBlockBinding,\"Rd\":_emscripten_glUniformMatrix2fv,\"gd\":_emscripten_glUniformMatrix2x3fv,\"ed\":_emscripten_glUniformMatrix2x4fv,\"Qd\":_emscripten_glUniformMatrix3fv,\"fd\":_emscripten_glUniformMatrix3x2fv,\"cd\":_emscripten_glUniformMatrix3x4fv,\"Pd\":_emscripten_glUniformMatrix4fv,\"dd\":_emscripten_glUniformMatrix4x2fv,\"bd\":_emscripten_glUniformMatrix4x3fv,\"Od\":_emscripten_glUseProgram,\"Nd\":_emscripten_glValidateProgram,\"Md\":_emscripten_glVertexAttrib1f,\"Kd\":_emscripten_glVertexAttrib1fv,\"Jd\":_emscripten_glVertexAttrib2f,\"Id\":_emscripten_glVertexAttrib2fv,\"Hd\":_emscripten_glVertexAttrib3f,\"Gd\":_emscripten_glVertexAttrib3fv,\"Fd\":_emscripten_glVertexAttrib4f,\"Ed\":_emscripten_glVertexAttrib4fv,\"Qb\":_emscripten_glVertexAttribDivisor,\"ug\":_emscripten_glVertexAttribDivisorANGLE,\"zb\":_emscripten_glVertexAttribDivisorARB,\"Bd\":_emscripten_glVertexAttribDivisorEXT,\"Ab\":_emscripten_glVertexAttribDivisorNV,\"Lc\":_emscripten_glVertexAttribI4i,\"Jc\":_emscripten_glVertexAttribI4iv,\"Kc\":_emscripten_glVertexAttribI4ui,\"Ic\":_emscripten_glVertexAttribI4uiv,\"Oc\":_emscripten_glVertexAttribIPointer,\"Dd\":_emscripten_glVertexAttribPointer,\"Cd\":_emscripten_glViewport,\"ec\":_emscripten_glWaitSync,\"L\":_emscripten_has_asyncify,\"Tg\":_emscripten_is_main_browser_thread,\"Vg\":_emscripten_request_fullscreen_strategy,\"Ka\":_emscripten_request_pointerlock,\"jb\":_emscripten_resize_heap,\"X\":_emscripten_sample_gamepad_data,\"qa\":_emscripten_set_beforeunload_callback_on_thread,\"Ca\":_emscripten_set_blur_callback_on_thread,\"A\":_emscripten_set_canvas_element_size,\"T\":_emscripten_set_element_css_size,\"Da\":_emscripten_set_focus_callback_on_thread,\"ta\":_emscripten_set_fullscreenchange_callback_on_thread,\"V\":_emscripten_set_gamepadconnected_callback_on_thread,\"U\":_emscripten_set_gamepaddisconnected_callback_on_thread,\"wa\":_emscripten_set_keydown_callback_on_thread,\"ua\":_emscripten_set_keypress_callback_on_thread,\"va\":_emscripten_set_keyup_callback_on_thread,\"Ua\":_emscripten_set_main_loop,\"Ia\":_emscripten_set_mousedown_callback_on_thread,\"Ga\":_emscripten_set_mouseenter_callback_on_thread,\"Fa\":_emscripten_set_mouseleave_callback_on_thread,\"Ja\":_emscripten_set_mousemove_callback_on_thread,\"Ha\":_emscripten_set_mouseup_callback_on_thread,\"xa\":_emscripten_set_pointerlockchange_callback_on_thread,\"sa\":_emscripten_set_resize_callback_on_thread,\"ya\":_emscripten_set_touchcancel_callback_on_thread,\"Aa\":_emscripten_set_touchend_callback_on_thread,\"za\":_emscripten_set_touchmove_callback_on_thread,\"Ba\":_emscripten_set_touchstart_callback_on_thread,\"ra\":_emscripten_set_visibilitychange_callback_on_thread,\"Ea\":_emscripten_set_wheel_callback_on_thread,\"Wg\":_emscripten_set_window_title,\"K\":_emscripten_sleep,\"Sg\":_emscripten_start_fetch,\"mb\":_environ_get,\"ob\":_environ_sizes_get,\"ia\":_fd_close,\"qb\":_fd_read,\"fb\":_fd_seek,\"ga\":_fd_write,\"Oa\":get_host,\"_a\":_glActiveTexture,\"ja\":_glAttachShader,\"l\":_glBindAttribLocation,\"n\":_glBindBuffer,\"s\":_glBindFramebuffer,\"p\":_glBindTexture,\"fe\":_glBlendColor,\"Wd\":_glBlendEquation,\"qe\":_glBlendFuncSeparate,\"N\":_glBufferData,\"aa\":_glCheckFramebufferStatus,\"qg\":_glClear,\"Bg\":_glClearColor,\"pd\":_glColorMask,\"Xa\":_glCompileShader,\"J\":_glCompressedTexImage2D,\"Cc\":_glCreateProgram,\"Za\":_glCreateShader,\"sf\":_glCullFace,\"E\":_glDeleteBuffers,\"Xg\":_glDeleteFramebuffers,\"la\":_glDeleteProgram,\"pa\":_glDeleteRenderbuffers,\"da\":_glDeleteShader,\"Va\":_glDeleteTextures,\"Be\":_glDepthFunc,\"Me\":_glDepthMask,\"ma\":_glDetachShader,\"H\":_glDisable,\"$\":_glDrawArrays,\"M\":_glDrawElements,\"Pa\":_glDrawElementsInstanced,\"G\":_glEnable,\"Sa\":_glEnableVertexAttribArray,\"P\":_glFramebufferTexture2D,\"gf\":_glFrontFace,\"O\":_glGenBuffers,\"ba\":_glGenFramebuffers,\"D\":_glGenTextures,\"Yg\":_glGenerateMipmap,\"eb\":_glGetActiveAttrib,\"ub\":_glGetActiveUniform,\"q\":_glGetIntegerv,\"Eb\":_glGetProgramInfoLog,\"F\":_glGetProgramiv,\"Wa\":_glGetShaderInfoLog,\"ca\":_glGetShaderiv,\"v\":_glGetString,\"nb\":_glGetUniformLocation,\"Xe\":_glLineWidth,\"Zb\":_glLinkProgram,\"Ta\":_glPixelStorei,\"Ld\":_glReadPixels,\"Ad\":_glScissor,\"Ya\":_glShaderSource,\"o\":_glTexImage2D,\"h\":_glTexParameteri,\"db\":_glUniform1fv,\"$a\":_glUniform1i,\"cb\":_glUniform2fv,\"bb\":_glUniform3fv,\"fa\":_glUniform4fv,\"ea\":_glUniformMatrix4fv,\"ka\":_glUseProgram,\"Qa\":_glVertexAttribDivisor,\"Ra\":_glVertexAttribPointer,\"I\":_glViewport,\"ph\":invoke_iii,\"qh\":invoke_iiii,\"Xf\":invoke_iiiii,\"hb\":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module[\"asm\"][\"sh\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"th\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"uh\"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module[\"asm\"][\"vh\"]).apply(null,arguments)};var _SCRTFillActiveTextureCharArray=Module[\"_SCRTFillActiveTextureCharArray\"]=function(){return(_SCRTFillActiveTextureCharArray=Module[\"_SCRTFillActiveTextureCharArray\"]=Module[\"asm\"][\"xh\"]).apply(null,arguments)};var _main=Module[\"_main\"]=function(){return(_main=Module[\"_main\"]=Module[\"asm\"][\"yh\"]).apply(null,arguments)};var ___getTypeName=function(){return(___getTypeName=Module[\"asm\"][\"zh\"]).apply(null,arguments)};var __embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=function(){return(__embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=Module[\"asm\"][\"Ah\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"Bh\"]).apply(null,arguments)};var stackSave=function(){return(stackSave=Module[\"asm\"][\"Ch\"]).apply(null,arguments)};var stackRestore=function(){return(stackRestore=Module[\"asm\"][\"Dh\"]).apply(null,arguments)};var stackAlloc=function(){return(stackAlloc=Module[\"asm\"][\"Eh\"]).apply(null,arguments)};var ___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module[\"asm\"][\"Fh\"]).apply(null,arguments)};var dynCall_iiiji=Module[\"dynCall_iiiji\"]=function(){return(dynCall_iiiji=Module[\"dynCall_iiiji\"]=Module[\"asm\"][\"Gh\"]).apply(null,arguments)};var dynCall_iiij=Module[\"dynCall_iiij\"]=function(){return(dynCall_iiij=Module[\"dynCall_iiij\"]=Module[\"asm\"][\"Hh\"]).apply(null,arguments)};var dynCall_iijii=Module[\"dynCall_iijii\"]=function(){return(dynCall_iijii=Module[\"dynCall_iijii\"]=Module[\"asm\"][\"Ih\"]).apply(null,arguments)};var dynCall_iiijiji=Module[\"dynCall_iiijiji\"]=function(){return(dynCall_iiijiji=Module[\"dynCall_iiijiji\"]=Module[\"asm\"][\"Jh\"]).apply(null,arguments)};var dynCall_vij=Module[\"dynCall_vij\"]=function(){return(dynCall_vij=Module[\"dynCall_vij\"]=Module[\"asm\"][\"Kh\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"Lh\"]).apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return(dynCall_ji=Module[\"dynCall_ji\"]=Module[\"asm\"][\"Mh\"]).apply(null,arguments)};var dynCall_viijii=Module[\"dynCall_viijii\"]=function(){return(dynCall_viijii=Module[\"dynCall_viijii\"]=Module[\"asm\"][\"Nh\"]).apply(null,arguments)};var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=function(){return(dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=Module[\"asm\"][\"Oh\"]).apply(null,arguments)};var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=function(){return(dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=Module[\"asm\"][\"Ph\"]).apply(null,arguments)};var dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=function(){return(dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=Module[\"asm\"][\"Qh\"]).apply(null,arguments)};var ___start_em_js=Module[\"___start_em_js\"]=366177;var ___stop_em_js=Module[\"___stop_em_js\"]=366745;function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module[\"addRunDependency\"]=addRunDependency;Module[\"removeRunDependency\"]=removeRunDependency;Module[\"FS_createPath\"]=FS.createPath;Module[\"FS_createDataFile\"]=FS.createDataFile;Module[\"FS_createLazyFile\"]=FS.createLazyFile;Module[\"FS_createDevice\"]=FS.createDevice;Module[\"FS_unlink\"]=FS.unlink;Module[\"callMain\"]=callMain;Module[\"ccall\"]=ccall;Module[\"cwrap\"]=cwrap;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stringToUTF8\"]=stringToUTF8;Module[\"lengthBytesUTF8\"]=lengthBytesUTF8;Module[\"FS_createPreloadedFile\"]=FS.createPreloadedFile;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv>>2;args.forEach(arg=>{HEAP32[argv_ptr++]=stringToUTF8OnStack(arg)});HEAP32[argv_ptr]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;run();\r\n\r\n\r\n return Module.ready\r\n}\r\n\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Module;\r\nelse if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Module; });\r\nelse if (typeof exports === 'object')\r\n exports[\"Module\"] = Module;\r\n","\"use strict\";\r\nvar _a;\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EPSILON = exports.DEFAULT_HEIGHT = exports.DEFAULT_WIDTH = exports.IS_TEST_ENV = void 0;\r\nvar IS_TEST_ENV = false;\r\nexports.IS_TEST_ENV = IS_TEST_ENV;\r\nif (typeof process !== \"undefined\") {\r\n exports.IS_TEST_ENV = IS_TEST_ENV = ((_a = process.env) === null || _a === void 0 ? void 0 : _a.TEST_ENV) === \"1\";\r\n}\r\nexports.DEFAULT_WIDTH = 900;\r\nexports.DEFAULT_HEIGHT = 600;\r\nexports.EPSILON = 0.0001;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.performanceWarnings = void 0;\r\nvar OneTimePerformanceWarning_1 = require(\"../Core/OneTimePerformanceWarning\");\r\nexports.performanceWarnings = {\r\n dataDistributionFlagNaN: new OneTimePerformanceWarning_1.OneTimePerformanceWarning(\"Data Distribution flag (BaseDataSeries.containsNaN = false) can be applied to improve performance. Read this website article https://www.scichart.com/documentation/js/current/DataSeries_Resampling.html for more info. To disable this warning set SciChartDefaults.performanceWarnings = false\"),\r\n dataDistributionFlagSortedAscending: new OneTimePerformanceWarning_1.OneTimePerformanceWarning(\"Data Distribution flag (BaseDataSeries.isSorted = true) can be applied to improve performance. Read this website article https://www.scichart.com/documentation/js/current/DataSeries_Resampling.html for more info. To disable this warning set SciChartDefaults.performanceWarnings = false\"),\r\n subchartBackgroundNotSimpleColor: new OneTimePerformanceWarning_1.OneTimePerformanceWarning(\"When using isTransparent: false on a SubChart, the background needs to be a simple color, not an html gradient (which the default theme uses). To disable this warning set SciChartDefaults.performanceWarnings = false\"),\r\n dataLabelsSkippingMany: new OneTimePerformanceWarning_1.OneTimePerformanceWarning(\"DataLabelProvider generated many more labels than it could display. To improve performance consider increasing the pointGapThreshold, increasing the skipNumber, or decreasing the pointCountThreshold. To disable this warning set SciChartDefaults.performanceWarnings = false\"),\r\n dateTimeDeltaCalculatorBadDelta: new OneTimePerformanceWarning_1.OneTimePerformanceWarning(\"The DateTimeDeltaCalculator could not find a suitable delta given the current settings. \\n Either increase axis.maxAutoTicks, set axis.deltaCalculator.minTicks less than maxAutoTicks / 3, or set possibleDeltas to an array containing more closely spaced values.\\n To disable this warning set SciChartDefaults.performanceWarnings = false\")\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ZoomExtentsModifier = exports.YAxisDragModifier = exports.XAxisDragModifier = exports.VerticalSliceModifier = exports.SeriesSelectionModifier = exports.getRubberBandRect = exports.RubberBandXyZoomModifier = exports.RolloverModifier = exports.PointerEventsMediatorModifier = exports.PinchZoomModifier = exports.OverviewRangeSelectionModifier = exports.MouseWheelZoomModifier = exports.EActionType = exports.ModifierMouseArgs = exports.ModifierArgsBase = exports.LegendModifier = exports.DataPointSelectionModifier = exports.ESelectionMode = exports.DataPointSelectionChangedArgs = exports.DataPointInfo = exports.CustomChartModifier2D = exports.adjustTooltipPosition = exports.calcTooltipSize = exports.CursorModifier = exports.scaleAxes = exports.getActiveAxes = exports.testIsOverAxes = exports.ChartModifierBase2D = exports.ChartModifierBase = exports.EModifierType = exports.AnnotationHoverModifier = exports.getSubTypes = exports.createType = exports.getFunction = exports.registerFunction = exports.registerWasmType = exports.registerType = exports.chartBuilder = exports.ensureRegistrations = exports.configureChart = exports.buildChart = exports.chartReviver = exports.configure2DSurface = exports.buildPieChart = exports.build2DChart = exports.buildSeries = exports.buildModifiers = exports.buildDataSeries = exports.buildAxes = exports.buildAnnotations = void 0;\r\nexports.BaseHeatmapDataSeries = exports.getWindowedYRange = exports.BaseDataSeries = exports.TopAlignedOuterHorizontallyStackedAxisLayoutStrategy = exports.TopAlignedOuterAxisLayoutStrategy = exports.TopAlignedInnerAxisLayoutStrategy = exports.SynchronizedLayoutManager = exports.SciChartVerticalGroup = exports.SciChartHorizontalGroup = exports.RightAlignedOuterVerticallyStackedAxisLayoutStrategy = exports.RightAlignedOuterAxisLayoutStrategy = exports.RightAlignedInnerAxisLayoutStrategy = exports.LeftAlignedOuterVerticallyStackedAxisLayoutStrategy = exports.LeftAlignedOuterAxisLayoutStrategy = exports.LeftAlignedInnerAxisLayoutStrategy = exports.LayoutManager = exports.EInnerAxisPlacementCoordinateMode = exports.CentralAxesLayoutManager = exports.BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy = exports.BottomAlignedOuterAxisLayoutStrategy = exports.BottomAlignedInnerAxisLayoutStrategy = exports.BaseCenteredAxisLayoutStrategy = exports.BaseAxisLayoutStrategy = exports.testLayoutManager = exports.getCoordinateWithCoordinateMode = exports.getValueWithCoordinateMode = exports.updateTopAndBottomChartLayoutState = exports.updateLeftAndRightChartLayoutState = exports.getVerticalAxisRequiredSize = exports.getHorizontalAxisRequiredSize = exports.layoutAxisPartsBottomStrategy = exports.layoutAxisPartsTopStrategy = exports.layoutAxisPartsRightStrategy = exports.layoutAxisPartsLeftStrategy = exports.layoutAxisParts = exports.updateAxisLayoutState = exports.WebGlRenderContext2D = exports.ELineDrawMode = exports.calculateAbsoluteRenderLayer = exports.WebGlPen = exports.WebGlBrush = exports.RenderContext2D = exports.createPenInCache = exports.getScrtPenFromCache = exports.getWebGlPenFromCache = exports.createBrushInCache = exports.getScrtBrushFromCache = exports.getWebGlBrushFromCache = exports.BatchRenderContext = exports.ZoomPanModifier = void 0;\r\nexports.BasePointSeriesResampled = exports.XyzScaleOffsetFilter = exports.XyzFilterBase = exports.XyzCustomFilter = exports.XyyScaleOffsetFilter = exports.XyyFilterBase = exports.XyyCustomFilter = exports.XyScaleOffsetFilter = exports.XyRatioFilter = exports.XyMovingAverageFilter = exports.XyLinearTrendFilter = exports.switchData = exports.XyFilterBase = exports.EDataSeriesField = exports.XyCustomFilter = exports.OhlcScaleOffsetFilter = exports.OhlcFilterBase = exports.OhlcCustomFilter = exports.HlcScaleOffsetFilter = exports.HlcFilterBase = exports.HlcCustomFilter = exports.DataDistributionCalculator = exports.XyzSeriesInfo = exports.XyySeriesInfo = exports.XySeriesInfo = exports.StackedXySeriesInfo = exports.SeriesInfo = exports.OhlcSeriesInfo = exports.HlcSeriesInfo = exports.HeatmapSeriesInfo = exports.XyzDataSeries = exports.XyyDataSeries = exports.XyTextDataSeries = exports.XyDataSeries = exports.UniformHeatmapDataSeries = exports.PaletteFactory = exports.OhlcDataSeries = exports.NonUniformHeatmapDataSeries = exports.TemplateMetadataGenerator = exports.DefaultPaletteProvider = exports.EFillPaletteMode = exports.EStrokePaletteMode = exports.EDataSeriesValueType = exports.EDataChangeType = exports.EDataSeriesType = exports.HlcDataSeries = exports.FIFOVectorProvider = exports.DoubleVectorProvider = exports.DataPointSelectionPaletteProvider = exports.BasePaletteProvider = void 0;\r\nexports.SciChartSubSurface = exports.SciChartSurface = exports.sciChartConfig = exports.SciChartOverview = exports.SciChartDefaults = exports.DefaultSciChartLoader = exports.licenseManager2dState = exports.HeatmapLegend = exports.initializeChartEngine2D = exports.getSharedWasmContext = exports.SciChartJsNavyTheme = exports.SciChartJSLightTheme = exports.SciChartJSDarkv2Theme = exports.SciChartJSDarkTheme = exports.stripAutoColor = exports.ThemeProvider = exports.AUTO_COLOR = exports.getAdjustedRotation = exports.TitleRendererBase = exports.SciChartRenderer = exports.RenderPassInfo = exports.RenderPassDataCollection = exports.RenderPassData = exports.ChartTitleRenderer = exports.TickProvider = exports.NumericTickProvider = exports.LogarithmicTickProvider = exports.ELogarithmicMajorTickMode = exports.ELogarithmicMinorTickMode = exports.TickCoordinatesProvider = exports.StaticTickCoordinatesProvider = exports.DefaultTickCoordinatesProvider = exports.ResamplingParams = exports.EResamplingMode = exports.ExtremeResamplerHelper = exports.NumericCoordinateCalculator = exports.LogarithmicCoordinateCalculator = exports.FlippedNumericCoordinateCalculator = exports.FlippedCategoryCoordinateCalculator = exports.CoordinateCalculatorBase = exports.CategoryCoordinateCalculator = exports.XyzPointSeriesWrapped = exports.XyyPointSeriesWrapped = exports.XyyPointSeriesResampled = exports.XyPointSeriesWrapped = exports.XyPointSeriesResampled = exports.OhlcPointSeriesWrapped = exports.OhlcPointSeriesResampled = exports.HlcPointSeriesWrapped = exports.BasePointSeriesWrapped = void 0;\r\nexports.LogarithmicDeltaCalculator = exports.DeltaCalculator = exports.DateTimeDeltaCalculator = exports.CategoryDeltaCalculator = exports.VisibleRangeChangedArgs = exports.NumericAxis = exports.LogarithmicAxis = exports.MIN_LOG_AXIS_VALUE = exports.getAxis3dById = exports.getAxisById = exports.DateTimeNumericAxis = exports.CategoryAxisBase = exports.CategoryAxis = exports.AxisTitleRenderer = exports.AxisRenderer = exports.AxisLayoutState = exports.AxisCore = exports.AxisBase2D = exports.EClipMode = exports.VerticalLineAnnotation = exports.TextAnnotation = exports.SvgAnnotationBase = exports.RolloverTooltipSvgAnnotation = exports.RolloverMarkerSvgAnnotation = exports.RolloverLegendSvgAnnotation = exports.RenderContextAnnotationBase = exports.OverviewCustomResizableAnnotation = exports.NativeTextAnnotation = exports.EWrapTo = exports.LineAnnotation = exports.EAnnotationType = exports.EAnnotationLayer = exports.HorizontalLineAnnotation = exports.CustomAnnotation = exports.CursorTooltipSvgAnnotation = exports.BoxAnnotation = exports.AxisMarkerAnnotation = exports.AnnotationHoverEventArgs = exports.annotationHelpers = exports.AnnotationDragDeltaEventArgs = exports.AnnotationClickEventArgs = exports.AnnotationBase = exports.ECoordinateMode = exports.EDraggingGripPoint = exports.AdornerLayer = exports.UpdateSuspender = exports.createChartDestination = exports.SciChartSurfaceBase = exports.ESurfaceType = exports.DebugForDpi = void 0;\r\nexports.BaseHeatmapRenderableSeries = exports.BaseBandRenderableSeries = exports.XPointMarker = exports.TrianglePointMarker = exports.SquarePointMarker = exports.SpritePointMarker = exports.EllipsePointMarker = exports.CrossPointMarker = exports.BasePointMarker = exports.SciChartPieLegend = exports.getLegendContainerHtml = exports.getLegendItemHtml = exports.SciChartLegendBase = exports.ELegendType = exports.ELegendPlacement = exports.ELegendOrientation = exports.SciChartLegend = exports.ManualLegend = exports.getAllFontKeys = exports.getFontKey = exports.getVector4 = exports.getNativeRect = exports.getTextBounds = exports.getVertex = exports.getVectorColorVertex = exports.getVectorRectVertex = exports.freeCache = exports.deleteCache = exports.FontKey = exports.getLabelCoordinates = exports.drawAxisMarkerAnnotation = exports.drawLineAnnotation = exports.drawModifiersAxisLabel = exports.drawBorder = exports.createSolidBrush = exports.createSCRTPen = exports.createNativeRect = exports.wrapText = exports.TextLabelProvider = exports.SmartDateLabelProvider = exports.ETradeChartLabelFormat = exports.PieLabelProvider = exports.NumericLabelProvider = exports.LogarithmicLabelProvider = exports.LabelProviderBase2D = exports.LabelInfo = exports.LabelProvider = exports.labelCache = exports.DateLabelProvider = exports.NumericDeltaCalculator = void 0;\r\nexports.ColumnAnimationStyle = exports.ColumnAnimation = exports.CandlestickAnimationStyle = exports.CandlestickAnimation = exports.BubbleAnimation = exports.BasePointMarkerStyle = exports.BaseAnimationStyle = exports.BandAnimationStyle = exports.BandAnimation = exports.animationHelpers = exports.XyScatterRenderableSeries = exports.UniformHeatmapRenderableSeries = exports.UniformContoursRenderableSeries = exports.EContourColorMapMode = exports.StackedMountainRenderableSeries = exports.StackedMountainCollection = exports.StackedColumnRenderableSeries = exports.StackedColumnCollection = exports.SplineMountainRenderableSeries = exports.SplineLineRenderableSeries = exports.SplineBandRenderableSeries = exports.SmoothStackedMountainRenderableSeries = exports.ShadowEffect = exports.ShaderEffect = exports.SeriesVisibleChangedArgs = exports.SeriesSelectedArgs = exports.SeriesHoveredArgs = exports.SelectionChangedArgs = exports.NonUniformHeatmapRenderableSeries = exports.HoveredChangedArgs = exports.HeatmapColorMap = exports.GlowEffect = exports.FastTextRenderableSeries = exports.FastOhlcRenderableSeries = exports.FastMountainRenderableSeries = exports.FastLineRenderableSeries = exports.FastImpulseRenderableSeries = exports.FastErrorBarsRenderableSeries = exports.getXRange = exports.FastColumnRenderableSeries = exports.FastCandlestickRenderableSeries = exports.FastBubbleRenderableSeries = exports.FastBandRenderableSeries = exports.BaseStackedRenderableSeries = exports.BaseStackedCollection = exports.BaseRenderableSeries = exports.BaseOhlcRenderableSeries = exports.BaseMountainRenderableSeries = exports.BaseLineRenderableSeries = exports.ELineType = void 0;\r\nexports.ColumnSeriesHitTestProvider = exports.BubbleSeriesHitTestProvider = exports.BaseHitTestProvider = exports.BandSeriesHitTestProvider = exports.UniformHeatmapDrawingProvider = exports.UniformContoursDrawingProvider = exports.PointMarkerDrawingProvider = exports.OhlcSeriesDrawingProvider = exports.EOhlcDrawingMode = exports.NonUniformHeatmapDrawingProvider = exports.MountainSeriesDrawingProvider = exports.LineSeriesDrawingProvider = exports.calculateHeatmapTexture = exports.calculateCellCoordinates = exports.calculateOffsets = exports.createColorMap = exports.getColor = exports.getColorDataForTexture = exports.ErrorSeriesDrawingProvider = exports.ColumnSeriesDrawingProvider = exports.BubbleSeriesDrawingProvider = exports.BaseSeriesDrawingProvider = exports.BandSeriesDrawingProvider = exports.TextDataLabelProvider = exports.StackedColumnSeriesDataLabelProvider = exports.StackedCollectionDataLabelProvider = exports.NonUniformHeatMapDataLabelProvider = exports.LineSeriesDataLabelProvider = exports.HeatMapDataLabelProvider = exports.DataLabelState = exports.DataLabelProvider = exports.ContoursDataLabelProvider = exports.ColumnSeriesDataLabelProvider = exports.EColumnDataLabelPosition = exports.BubbleSeriesDataLabelProvider = exports.BaseDataLabelProvider = exports.BandSeriesDataLabelProvider = exports.WaveAnimation = exports.SweepAnimation = exports.SeriesAnimation = exports.ScatterAnimation = exports.ScaleAnimation = exports.PointMarkerStyle = exports.OhlcAnimationStyle = exports.OhlcAnimation = exports.MountainAnimationStyle = exports.MountainAnimation = exports.LineAnimation = exports.FadeAnimation = exports.CustomPointMarkerStyle = void 0;\r\nexports.DefaultViewportManager3D = exports.createSingle3dInternal = exports.XyzDataSeries3D = exports.UniformGridDataSeries3D = exports.BaseGridDataSeries3D = exports.BaseDataSeries3D = exports.EDataSeriesType3D = exports.adjustTooltipPosition3D = exports.TooltipModifier3D = exports.ResetCamera3DModifier = exports.PinchZoomModifier3D = exports.OrbitModifier3D = exports.MouseWheelZoomModifier3D = exports.CustomChartModifier3D = exports.ChartModifierBase3D = exports.Vector3 = exports.CameraController = exports.ECameraProjectionMode = exports.measureTextWidth = exports.measureTextHeight = exports.TextureManager = exports.DpiHelper = exports.CanvasTexture = exports.PieSegment = exports.SciChartPieSurface = exports.EPieValueMode = exports.EPieType = exports.ESizingMode = exports.RubberBandSvgRect = exports.RolloverModifierRenderableSeriesProps = exports.XyySplineRenderDataTransform = exports.SplineRenderDataTransform = exports.SmoothStackedRenderDataTransform = exports.XyyBezierRenderDataTransform = exports.BezierRenderDataTransform = exports.bezierTransform = exports.BaseRenderDataTransform = exports.UniformHeatmapHitTestProvider = exports.TextSeriesHitTestProvider = exports.StackedMountainSeriesHitTestProvider = exports.StackedColumnSeriesHitTestProvider = exports.ScatterSeriesHitTestProvider = exports.OhlcSeriesHitTestProvider = exports.NonUniformHeatmapHitTestProvider = exports.MountainSeriesHitTestProvider = exports.LineSeriesHitTestProvider = exports.ImpulseSeriesHitTestProvider = exports.HitTestInfo = exports.hitTestHelpers = exports.ErrorSeriesHitTestProvider = void 0;\r\nexports.SurfaceMeshSeriesInfo3D = exports.SeriesInfo3D = exports.ScatterRenderableSeries3D = exports.PointLineRenderableSeries3D = exports.HitTestInfo3D = exports.ESeriesType3D = exports.BaseRenderableSeries3D = exports.SurfaceMeshSceneEntity = exports.SurfaceMeshSceneEntityState = exports.SceneDescriptor = exports.ScatterPointsSceneEntity = exports.RenderPassInfo3D = exports.RenderableSeriesSceneEntityState = exports.RenderableSeriesSceneEntity = exports.PointLine3DSceneEntity = exports.DefaultEntityIdProvider = exports.CrosshairLinesSceneEntity = exports.BaseSceneEntity3D = exports.AxisCubeDescriptor = exports.TrianglePointMarker3D = exports.EllipsePointMarker3D = exports.QuadPointMarker = exports.PixelPointMarker3D = exports.CylinderPointMarker3D = exports.PyramidPointMarker3D = exports.CubePointMarker3D = exports.SpherePointMarker3D = exports.BaseTexturePointMarker3D = exports.BasePointMarker3D = exports.EMarkerType = exports.BaseMeshPointMarker3D = exports.NumericAxis3D = exports.getArraysEqual = exports.getTextStylesEqual = exports.getTArgbEqual = exports.getLineStylesEqual = exports.getDescriptorsEqual = exports.ETextAlignment3D = exports.EAxisSideClipping = exports.AxisCubeEntity = exports.AxisBase3DLabelStyle = exports.AxisBase3D = exports.EWhichAxis = exports.TooltipSvgAnnotation3D = exports.ViewportManager3DBase = exports.SciChart3DSurface = exports.sciChartConfig3D = exports.SciChart3DRenderer = exports.RootSceneEntity = exports.GizmoEntity = void 0;\r\nexports.EAutoColorMode = exports.EAnimationType = exports.EVerticalAnchorPoint = exports.EHorizontalAnchorPoint = exports.localStorageApi = exports.MouseManager = exports.NumberRangeAnimator = exports.GenericAnimation = exports.autoReverseEasing = exports.easing = exports.DoubleAnimator = exports.animateAny = exports.SeriesAnimationFiniteStateMachine = exports.AnimationFiniteStateMachine = exports.EAnimationStateTransition = exports.EAnimationState = exports.WebGlHelper = exports.EWebGLSupport = exports.Thickness = exports.sendTelemetry = exports.shouldSendTelemetry = exports.getUserCookie = exports.Rect = exports.PropertyChangedEventArgs = exports.Point = exports.OneTimePerformanceWarning = exports.ObservableArrayChangedArgs = exports.EObservableArrayChangedAction = exports.ObservableArray = exports.ObservableArrayBase = exports.NumberUtil = exports.NumberRange = exports.List = exports.Guard = exports.GradientParams = exports.EventHandler = exports.Dictionary = exports.deleteSafe = exports.DeletableEntity = exports.checkBuildStamp = exports.libraryVersion = exports.AnimationToken = exports.SurfaceMeshRenderableSeries3D = exports.EMeshResolution = exports.EMeshPaletteMode = exports.EDrawMeshAs = exports.SolidColorBrushPalette = exports.MeshColorPalette = exports.GradientColorPalette = exports.XyzSeriesInfo3D = void 0;\r\nexports.ETitlePosition = exports.ETextAlignment = exports.convertMultiLineAlignment = exports.EMultiLineAlignment = exports.EVerticalTextPosition = exports.EHorizontalTextPosition = exports.ESvgClippingMode = exports.Size = exports.EShaderEffectType = exports.ESeriesType = exports.convertSearchMode = exports.ESearchMode = exports.ESciChartSurfaceType = exports.ESceneEntityType = exports.ERenderLayer = exports.EPointMarkerType = exports.EPaletteProviderType = exports.ENumericFormat = exports.subArray = exports.isNumberArray = exports.isTypedArray = exports.EMousePosition = exports.ELayoutStrategyType = exports.ELayoutManagerType = exports.ELabelProviderType = exports.EVerticalAlignment = exports.EHorizontalAlignment = exports.ELabelPlacement = exports.ELabelAlignment = exports.EHoverMode = exports.EExecuteOn = exports.EErrorMode = exports.EErrorDirection = exports.EDragMode = exports.EDefaultRenderLayer = exports.EDataPointWidthMode = exports.EDataLabelSkipMode = exports.EDataLabelProviderType = exports.EDataFilterType = exports.ECursorStyle = exports.EColor = exports.EChart3DModifierType = exports.EChart2DModifierType = exports.EBaseType = exports.EAxisType = exports.handleInvalidAxisAlignment = exports.getIsVertical = exports.getIsHorizontal = exports.EAxisAlignment = exports.EAutoRange = void 0;\r\nexports.testHasExcluded = exports.getIncludedAxis = exports.createImagesArrayAsync = exports.createImageAsync = exports.stringOccurrences = exports.htmlToElement = exports.hashUtils = exports.hasAllProperties = exports.base64Id = exports.generateGuid = exports.getFontString = exports.logDoubleVector = exports.formatUnixDateToHumanStringYYYY = exports.formatUnixDateToHumanStringDD = exports.formatUnixDateToHumanStringMMM = exports.formatUnixDateToHumanStringMMMDD = exports.formatUnixDateToHumanStringHHMM = exports.formatUnixDateToHumanStringSSms = exports.formatUnixDateToHumanStringHHMMSS = exports.formatUnixDateToHumanStringDDMM = exports.formatUnixDateToHumanStringDDMMHHMM = exports.formatUnixDateToHumanStringDDMMYY = exports.formatUnixDateToHumanString = exports.copyDoubleVector = exports.convertToPixel = exports.convertRgbToHexColor = exports.convertColor = exports.applyOpacityToHtmlColor = exports.uintArgbColorIsTransparent = exports.uintArgbColorOverrideOpacity = exports.uintArgbColorMultiplyOpacity = exports.uintArgbColorToAbgr = exports.linearColorMapLerp = exports.uintArgbColorLerp = exports.uintArgbColorLerp24bit = exports.calcAverageForArray = exports.calcAverageForDoubleVector = exports.appendRangeFifo = exports.makeIncArray = exports.isArraySorted = exports.arrayRemove = exports.areArraysEqual = exports.countUnique = exports.getUniqueValues = exports.EZoomState = exports.EYRangeMode = exports.EXyDirection = exports.EWatermarkPosition = exports.EColorMapMode = exports.EThemeProviderType = void 0;\r\nexports.translateDataValueRectToAbsolute = exports.translateToNotScaled = exports.translateFromSeriesViewRectToCanvasY = exports.translateFromSeriesViewRectToCanvasX = exports.translateFromCanvasToSeriesViewRectY = exports.translateFromCanvasToSeriesViewRectX = exports.translateFromSeriesViewRectToCanvas = exports.translateFromCanvasToSeriesViewRect = exports.EShift = exports.ECoord = exports.ESize = exports.getNativeTextSize = exports.wrapNativeText = exports.getAttributeFromString = exports.getNextRandomPriceBarFactory = exports.getStocksDataFactory = exports.getRandomInRange = exports.calcDistanceFromLineSegment = exports.calcDotProduct = exports.testIsInInterval = exports.testIsInXBounds = exports.calcAnnotationBordersForAxisMarker = exports.testIsInBounds = exports.calcDistance = exports.calcCrossProduct = exports.calcDistanceFromLine = exports.PerformanceDebugHelper = exports.EPerformanceMarkType = exports.parseTArgbToHtmlColor = exports.parseArgbToHtmlColor = exports.parseColorToTArgb = exports.toHex = exports.parseColorToUIntArgb = exports.parseColorToHexStringAbgr = exports.parseColorToHexStringArgb = exports.checkIsNaN = exports.toEngineering = exports.toScientific = exports.toSuperScript = exports.formatNumber = exports.numericHashCode = exports.formatNumber2Digits = exports.MemoryUsageHelper = exports.ObjectRegistry = exports.memoize = exports.logToBase = exports.fillNoisySinewave = exports.getNoisySinewave = exports.Logger = exports.isRealNumber = void 0;\r\nexports.zeroArray2D = exports.fromTsrVector4 = exports.updateTsrVector4 = exports.fitSvgToViewRect = exports.fitElementToViewRect = exports.convertToRelativeHtmlSize = exports.convertToHtmlPx = void 0;\r\nvar buildAnnotations_1 = require(\"./Builder/buildAnnotations\");\r\nObject.defineProperty(exports, \"buildAnnotations\", { enumerable: true, get: function () { return buildAnnotations_1.buildAnnotations; } });\r\nvar buildAxis_1 = require(\"./Builder/buildAxis\");\r\nObject.defineProperty(exports, \"buildAxes\", { enumerable: true, get: function () { return buildAxis_1.buildAxes; } });\r\nvar buildDataSeries_1 = require(\"./Builder/buildDataSeries\");\r\nObject.defineProperty(exports, \"buildDataSeries\", { enumerable: true, get: function () { return buildDataSeries_1.buildDataSeries; } });\r\nvar buildModifiers_1 = require(\"./Builder/buildModifiers\");\r\nObject.defineProperty(exports, \"buildModifiers\", { enumerable: true, get: function () { return buildModifiers_1.buildModifiers; } });\r\nvar buildSeries_1 = require(\"./Builder/buildSeries\");\r\nObject.defineProperty(exports, \"buildSeries\", { enumerable: true, get: function () { return buildSeries_1.buildSeries; } });\r\nvar buildSurface_1 = require(\"./Builder/buildSurface\");\r\nObject.defineProperty(exports, \"build2DChart\", { enumerable: true, get: function () { return buildSurface_1.build2DChart; } });\r\nvar buildSurface_2 = require(\"./Builder/buildSurface\");\r\nObject.defineProperty(exports, \"buildPieChart\", { enumerable: true, get: function () { return buildSurface_2.buildPieChart; } });\r\nvar buildSurface_3 = require(\"./Builder/buildSurface\");\r\nObject.defineProperty(exports, \"configure2DSurface\", { enumerable: true, get: function () { return buildSurface_3.configure2DSurface; } });\r\nvar chartBuilder_1 = require(\"./Builder/chartBuilder\");\r\nObject.defineProperty(exports, \"chartReviver\", { enumerable: true, get: function () { return chartBuilder_1.chartReviver; } });\r\nvar chartBuilder_2 = require(\"./Builder/chartBuilder\");\r\nObject.defineProperty(exports, \"buildChart\", { enumerable: true, get: function () { return chartBuilder_2.buildChart; } });\r\nvar chartBuilder_3 = require(\"./Builder/chartBuilder\");\r\nObject.defineProperty(exports, \"configureChart\", { enumerable: true, get: function () { return chartBuilder_3.configureChart; } });\r\nvar chartBuilder_4 = require(\"./Builder/chartBuilder\");\r\nObject.defineProperty(exports, \"ensureRegistrations\", { enumerable: true, get: function () { return chartBuilder_4.ensureRegistrations; } });\r\nvar chartBuilder_5 = require(\"./Builder/chartBuilder\");\r\nObject.defineProperty(exports, \"chartBuilder\", { enumerable: true, get: function () { return chartBuilder_5.chartBuilder; } });\r\nvar classFactory_1 = require(\"./Builder/classFactory\");\r\nObject.defineProperty(exports, \"registerType\", { enumerable: true, get: function () { return classFactory_1.registerType; } });\r\nvar classFactory_2 = require(\"./Builder/classFactory\");\r\nObject.defineProperty(exports, \"registerWasmType\", { enumerable: true, get: function () { return classFactory_2.registerWasmType; } });\r\nvar classFactory_3 = require(\"./Builder/classFactory\");\r\nObject.defineProperty(exports, \"registerFunction\", { enumerable: true, get: function () { return classFactory_3.registerFunction; } });\r\nvar classFactory_4 = require(\"./Builder/classFactory\");\r\nObject.defineProperty(exports, \"getFunction\", { enumerable: true, get: function () { return classFactory_4.getFunction; } });\r\nvar classFactory_5 = require(\"./Builder/classFactory\");\r\nObject.defineProperty(exports, \"createType\", { enumerable: true, get: function () { return classFactory_5.createType; } });\r\nvar classFactory_6 = require(\"./Builder/classFactory\");\r\nObject.defineProperty(exports, \"getSubTypes\", { enumerable: true, get: function () { return classFactory_6.getSubTypes; } });\r\nvar AnnotationHoverModifier_1 = require(\"./Charting/ChartModifiers/AnnotationHoverModifier\");\r\nObject.defineProperty(exports, \"AnnotationHoverModifier\", { enumerable: true, get: function () { return AnnotationHoverModifier_1.AnnotationHoverModifier; } });\r\nvar ChartModifierBase_1 = require(\"./Charting/ChartModifiers/ChartModifierBase\");\r\nObject.defineProperty(exports, \"EModifierType\", { enumerable: true, get: function () { return ChartModifierBase_1.EModifierType; } });\r\nvar ChartModifierBase_2 = require(\"./Charting/ChartModifiers/ChartModifierBase\");\r\nObject.defineProperty(exports, \"ChartModifierBase\", { enumerable: true, get: function () { return ChartModifierBase_2.ChartModifierBase; } });\r\nvar ChartModifierBase2D_1 = require(\"./Charting/ChartModifiers/ChartModifierBase2D\");\r\nObject.defineProperty(exports, \"ChartModifierBase2D\", { enumerable: true, get: function () { return ChartModifierBase2D_1.ChartModifierBase2D; } });\r\nvar ChartModifierBase2D_2 = require(\"./Charting/ChartModifiers/ChartModifierBase2D\");\r\nObject.defineProperty(exports, \"testIsOverAxes\", { enumerable: true, get: function () { return ChartModifierBase2D_2.testIsOverAxes; } });\r\nvar ChartModifierBase2D_3 = require(\"./Charting/ChartModifiers/ChartModifierBase2D\");\r\nObject.defineProperty(exports, \"getActiveAxes\", { enumerable: true, get: function () { return ChartModifierBase2D_3.getActiveAxes; } });\r\nvar ChartModifierBase2D_4 = require(\"./Charting/ChartModifiers/ChartModifierBase2D\");\r\nObject.defineProperty(exports, \"scaleAxes\", { enumerable: true, get: function () { return ChartModifierBase2D_4.scaleAxes; } });\r\nvar CursorModifier_1 = require(\"./Charting/ChartModifiers/CursorModifier\");\r\nObject.defineProperty(exports, \"CursorModifier\", { enumerable: true, get: function () { return CursorModifier_1.CursorModifier; } });\r\nvar CursorModifier_2 = require(\"./Charting/ChartModifiers/CursorModifier\");\r\nObject.defineProperty(exports, \"calcTooltipSize\", { enumerable: true, get: function () { return CursorModifier_2.calcTooltipSize; } });\r\nvar CursorModifier_3 = require(\"./Charting/ChartModifiers/CursorModifier\");\r\nObject.defineProperty(exports, \"adjustTooltipPosition\", { enumerable: true, get: function () { return CursorModifier_3.adjustTooltipPosition; } });\r\nvar CustomChartModifier2D_1 = require(\"./Charting/ChartModifiers/CustomChartModifier2D\");\r\nObject.defineProperty(exports, \"CustomChartModifier2D\", { enumerable: true, get: function () { return CustomChartModifier2D_1.CustomChartModifier2D; } });\r\nvar DataPointInfo_1 = require(\"./Charting/ChartModifiers/DataPointInfo\");\r\nObject.defineProperty(exports, \"DataPointInfo\", { enumerable: true, get: function () { return DataPointInfo_1.DataPointInfo; } });\r\nvar DataPointSelectionChangedArgs_1 = require(\"./Charting/ChartModifiers/DataPointSelectionChangedArgs\");\r\nObject.defineProperty(exports, \"DataPointSelectionChangedArgs\", { enumerable: true, get: function () { return DataPointSelectionChangedArgs_1.DataPointSelectionChangedArgs; } });\r\nvar DataPointSelectionModifier_1 = require(\"./Charting/ChartModifiers/DataPointSelectionModifier\");\r\nObject.defineProperty(exports, \"ESelectionMode\", { enumerable: true, get: function () { return DataPointSelectionModifier_1.ESelectionMode; } });\r\nvar DataPointSelectionModifier_2 = require(\"./Charting/ChartModifiers/DataPointSelectionModifier\");\r\nObject.defineProperty(exports, \"DataPointSelectionModifier\", { enumerable: true, get: function () { return DataPointSelectionModifier_2.DataPointSelectionModifier; } });\r\nvar LegendModifier_1 = require(\"./Charting/ChartModifiers/LegendModifier\");\r\nObject.defineProperty(exports, \"LegendModifier\", { enumerable: true, get: function () { return LegendModifier_1.LegendModifier; } });\r\nvar ModifierArgsBase_1 = require(\"./Charting/ChartModifiers/ModifierArgsBase\");\r\nObject.defineProperty(exports, \"ModifierArgsBase\", { enumerable: true, get: function () { return ModifierArgsBase_1.ModifierArgsBase; } });\r\nvar ModifierMouseArgs_1 = require(\"./Charting/ChartModifiers/ModifierMouseArgs\");\r\nObject.defineProperty(exports, \"ModifierMouseArgs\", { enumerable: true, get: function () { return ModifierMouseArgs_1.ModifierMouseArgs; } });\r\nvar MouseWheelZoomModifier_1 = require(\"./Charting/ChartModifiers/MouseWheelZoomModifier\");\r\nObject.defineProperty(exports, \"EActionType\", { enumerable: true, get: function () { return MouseWheelZoomModifier_1.EActionType; } });\r\nvar MouseWheelZoomModifier_2 = require(\"./Charting/ChartModifiers/MouseWheelZoomModifier\");\r\nObject.defineProperty(exports, \"MouseWheelZoomModifier\", { enumerable: true, get: function () { return MouseWheelZoomModifier_2.MouseWheelZoomModifier; } });\r\nvar OverviewRangeSelectionModifier_1 = require(\"./Charting/ChartModifiers/OverviewRangeSelectionModifier\");\r\nObject.defineProperty(exports, \"OverviewRangeSelectionModifier\", { enumerable: true, get: function () { return OverviewRangeSelectionModifier_1.OverviewRangeSelectionModifier; } });\r\nvar PinchZoomModifier_1 = require(\"./Charting/ChartModifiers/PinchZoomModifier\");\r\nObject.defineProperty(exports, \"PinchZoomModifier\", { enumerable: true, get: function () { return PinchZoomModifier_1.PinchZoomModifier; } });\r\nvar PointerEventsMediatorModifier_1 = require(\"./Charting/ChartModifiers/PointerEventsMediatorModifier\");\r\nObject.defineProperty(exports, \"PointerEventsMediatorModifier\", { enumerable: true, get: function () { return PointerEventsMediatorModifier_1.PointerEventsMediatorModifier; } });\r\nvar RolloverModifier_1 = require(\"./Charting/ChartModifiers/RolloverModifier\");\r\nObject.defineProperty(exports, \"RolloverModifier\", { enumerable: true, get: function () { return RolloverModifier_1.RolloverModifier; } });\r\nvar RubberBandXyZoomModifier_1 = require(\"./Charting/ChartModifiers/RubberBandXyZoomModifier\");\r\nObject.defineProperty(exports, \"RubberBandXyZoomModifier\", { enumerable: true, get: function () { return RubberBandXyZoomModifier_1.RubberBandXyZoomModifier; } });\r\nvar RubberBandXyZoomModifier_2 = require(\"./Charting/ChartModifiers/RubberBandXyZoomModifier\");\r\nObject.defineProperty(exports, \"getRubberBandRect\", { enumerable: true, get: function () { return RubberBandXyZoomModifier_2.getRubberBandRect; } });\r\nvar SeriesSelectionModifier_1 = require(\"./Charting/ChartModifiers/SeriesSelectionModifier\");\r\nObject.defineProperty(exports, \"SeriesSelectionModifier\", { enumerable: true, get: function () { return SeriesSelectionModifier_1.SeriesSelectionModifier; } });\r\nvar VerticalSliceModifier_1 = require(\"./Charting/ChartModifiers/VerticalSliceModifier\");\r\nObject.defineProperty(exports, \"VerticalSliceModifier\", { enumerable: true, get: function () { return VerticalSliceModifier_1.VerticalSliceModifier; } });\r\nvar XAxisDragModifier_1 = require(\"./Charting/ChartModifiers/XAxisDragModifier\");\r\nObject.defineProperty(exports, \"XAxisDragModifier\", { enumerable: true, get: function () { return XAxisDragModifier_1.XAxisDragModifier; } });\r\nvar YAxisDragModifier_1 = require(\"./Charting/ChartModifiers/YAxisDragModifier\");\r\nObject.defineProperty(exports, \"YAxisDragModifier\", { enumerable: true, get: function () { return YAxisDragModifier_1.YAxisDragModifier; } });\r\nvar ZoomExtentsModifier_1 = require(\"./Charting/ChartModifiers/ZoomExtentsModifier\");\r\nObject.defineProperty(exports, \"ZoomExtentsModifier\", { enumerable: true, get: function () { return ZoomExtentsModifier_1.ZoomExtentsModifier; } });\r\nvar ZoomPanModifier_1 = require(\"./Charting/ChartModifiers/ZoomPanModifier\");\r\nObject.defineProperty(exports, \"ZoomPanModifier\", { enumerable: true, get: function () { return ZoomPanModifier_1.ZoomPanModifier; } });\r\nvar BatchRenderContext_1 = require(\"./Charting/Drawing/BatchRenderContext\");\r\nObject.defineProperty(exports, \"BatchRenderContext\", { enumerable: true, get: function () { return BatchRenderContext_1.BatchRenderContext; } });\r\nvar BrushCache_1 = require(\"./Charting/Drawing/BrushCache\");\r\nObject.defineProperty(exports, \"getWebGlBrushFromCache\", { enumerable: true, get: function () { return BrushCache_1.getWebGlBrushFromCache; } });\r\nvar BrushCache_2 = require(\"./Charting/Drawing/BrushCache\");\r\nObject.defineProperty(exports, \"getScrtBrushFromCache\", { enumerable: true, get: function () { return BrushCache_2.getScrtBrushFromCache; } });\r\nvar BrushCache_3 = require(\"./Charting/Drawing/BrushCache\");\r\nObject.defineProperty(exports, \"createBrushInCache\", { enumerable: true, get: function () { return BrushCache_3.createBrushInCache; } });\r\nvar Pen2DCache_1 = require(\"./Charting/Drawing/Pen2DCache\");\r\nObject.defineProperty(exports, \"getWebGlPenFromCache\", { enumerable: true, get: function () { return Pen2DCache_1.getWebGlPenFromCache; } });\r\nvar Pen2DCache_2 = require(\"./Charting/Drawing/Pen2DCache\");\r\nObject.defineProperty(exports, \"getScrtPenFromCache\", { enumerable: true, get: function () { return Pen2DCache_2.getScrtPenFromCache; } });\r\nvar Pen2DCache_3 = require(\"./Charting/Drawing/Pen2DCache\");\r\nObject.defineProperty(exports, \"createPenInCache\", { enumerable: true, get: function () { return Pen2DCache_3.createPenInCache; } });\r\nvar RenderContext2D_1 = require(\"./Charting/Drawing/RenderContext2D\");\r\nObject.defineProperty(exports, \"RenderContext2D\", { enumerable: true, get: function () { return RenderContext2D_1.RenderContext2D; } });\r\nvar WebGlBrush_1 = require(\"./Charting/Drawing/WebGlBrush\");\r\nObject.defineProperty(exports, \"WebGlBrush\", { enumerable: true, get: function () { return WebGlBrush_1.WebGlBrush; } });\r\nvar WebGlPen_1 = require(\"./Charting/Drawing/WebGlPen\");\r\nObject.defineProperty(exports, \"WebGlPen\", { enumerable: true, get: function () { return WebGlPen_1.WebGlPen; } });\r\nvar WebGlRenderContext2D_1 = require(\"./Charting/Drawing/WebGlRenderContext2D\");\r\nObject.defineProperty(exports, \"calculateAbsoluteRenderLayer\", { enumerable: true, get: function () { return WebGlRenderContext2D_1.calculateAbsoluteRenderLayer; } });\r\nvar WebGlRenderContext2D_2 = require(\"./Charting/Drawing/WebGlRenderContext2D\");\r\nObject.defineProperty(exports, \"ELineDrawMode\", { enumerable: true, get: function () { return WebGlRenderContext2D_2.ELineDrawMode; } });\r\nvar WebGlRenderContext2D_3 = require(\"./Charting/Drawing/WebGlRenderContext2D\");\r\nObject.defineProperty(exports, \"WebGlRenderContext2D\", { enumerable: true, get: function () { return WebGlRenderContext2D_3.WebGlRenderContext2D; } });\r\nvar AxisLayoutHelpers_1 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"updateAxisLayoutState\", { enumerable: true, get: function () { return AxisLayoutHelpers_1.updateAxisLayoutState; } });\r\nvar AxisLayoutHelpers_2 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"layoutAxisParts\", { enumerable: true, get: function () { return AxisLayoutHelpers_2.layoutAxisParts; } });\r\nvar AxisLayoutHelpers_3 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"layoutAxisPartsLeftStrategy\", { enumerable: true, get: function () { return AxisLayoutHelpers_3.layoutAxisPartsLeftStrategy; } });\r\nvar AxisLayoutHelpers_4 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"layoutAxisPartsRightStrategy\", { enumerable: true, get: function () { return AxisLayoutHelpers_4.layoutAxisPartsRightStrategy; } });\r\nvar AxisLayoutHelpers_5 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"layoutAxisPartsTopStrategy\", { enumerable: true, get: function () { return AxisLayoutHelpers_5.layoutAxisPartsTopStrategy; } });\r\nvar AxisLayoutHelpers_6 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"layoutAxisPartsBottomStrategy\", { enumerable: true, get: function () { return AxisLayoutHelpers_6.layoutAxisPartsBottomStrategy; } });\r\nvar AxisLayoutHelpers_7 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"getHorizontalAxisRequiredSize\", { enumerable: true, get: function () { return AxisLayoutHelpers_7.getHorizontalAxisRequiredSize; } });\r\nvar AxisLayoutHelpers_8 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"getVerticalAxisRequiredSize\", { enumerable: true, get: function () { return AxisLayoutHelpers_8.getVerticalAxisRequiredSize; } });\r\nvar AxisLayoutHelpers_9 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"updateLeftAndRightChartLayoutState\", { enumerable: true, get: function () { return AxisLayoutHelpers_9.updateLeftAndRightChartLayoutState; } });\r\nvar AxisLayoutHelpers_10 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"updateTopAndBottomChartLayoutState\", { enumerable: true, get: function () { return AxisLayoutHelpers_10.updateTopAndBottomChartLayoutState; } });\r\nvar AxisLayoutHelpers_11 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"getValueWithCoordinateMode\", { enumerable: true, get: function () { return AxisLayoutHelpers_11.getValueWithCoordinateMode; } });\r\nvar AxisLayoutHelpers_12 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"getCoordinateWithCoordinateMode\", { enumerable: true, get: function () { return AxisLayoutHelpers_12.getCoordinateWithCoordinateMode; } });\r\nvar AxisLayoutHelpers_13 = require(\"./Charting/LayoutManager/AxisLayoutHelpers\");\r\nObject.defineProperty(exports, \"testLayoutManager\", { enumerable: true, get: function () { return AxisLayoutHelpers_13.testLayoutManager; } });\r\nvar BaseAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/BaseAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"BaseAxisLayoutStrategy\", { enumerable: true, get: function () { return BaseAxisLayoutStrategy_1.BaseAxisLayoutStrategy; } });\r\nvar BaseCenteredAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/BaseCenteredAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"BaseCenteredAxisLayoutStrategy\", { enumerable: true, get: function () { return BaseCenteredAxisLayoutStrategy_1.BaseCenteredAxisLayoutStrategy; } });\r\nvar BottomAlignedInnerAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/BottomAlignedInnerAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"BottomAlignedInnerAxisLayoutStrategy\", { enumerable: true, get: function () { return BottomAlignedInnerAxisLayoutStrategy_1.BottomAlignedInnerAxisLayoutStrategy; } });\r\nvar BottomAlignedOuterAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/BottomAlignedOuterAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"BottomAlignedOuterAxisLayoutStrategy\", { enumerable: true, get: function () { return BottomAlignedOuterAxisLayoutStrategy_1.BottomAlignedOuterAxisLayoutStrategy; } });\r\nvar BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy\", { enumerable: true, get: function () { return BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy_1.BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy; } });\r\nvar CentralAxesLayoutManager_1 = require(\"./Charting/LayoutManager/CentralAxesLayoutManager\");\r\nObject.defineProperty(exports, \"CentralAxesLayoutManager\", { enumerable: true, get: function () { return CentralAxesLayoutManager_1.CentralAxesLayoutManager; } });\r\nvar EInnerAxisPlacementCoordinateMode_1 = require(\"./Charting/LayoutManager/EInnerAxisPlacementCoordinateMode\");\r\nObject.defineProperty(exports, \"EInnerAxisPlacementCoordinateMode\", { enumerable: true, get: function () { return EInnerAxisPlacementCoordinateMode_1.EInnerAxisPlacementCoordinateMode; } });\r\nvar LayoutManager_1 = require(\"./Charting/LayoutManager/LayoutManager\");\r\nObject.defineProperty(exports, \"LayoutManager\", { enumerable: true, get: function () { return LayoutManager_1.LayoutManager; } });\r\nvar LeftAlignedInnerAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/LeftAlignedInnerAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"LeftAlignedInnerAxisLayoutStrategy\", { enumerable: true, get: function () { return LeftAlignedInnerAxisLayoutStrategy_1.LeftAlignedInnerAxisLayoutStrategy; } });\r\nvar LeftAlignedOuterAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/LeftAlignedOuterAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"LeftAlignedOuterAxisLayoutStrategy\", { enumerable: true, get: function () { return LeftAlignedOuterAxisLayoutStrategy_1.LeftAlignedOuterAxisLayoutStrategy; } });\r\nvar LeftAlignedOuterVerticallyStackedAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/LeftAlignedOuterVerticallyStackedAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"LeftAlignedOuterVerticallyStackedAxisLayoutStrategy\", { enumerable: true, get: function () { return LeftAlignedOuterVerticallyStackedAxisLayoutStrategy_1.LeftAlignedOuterVerticallyStackedAxisLayoutStrategy; } });\r\nvar RightAlignedInnerAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/RightAlignedInnerAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"RightAlignedInnerAxisLayoutStrategy\", { enumerable: true, get: function () { return RightAlignedInnerAxisLayoutStrategy_1.RightAlignedInnerAxisLayoutStrategy; } });\r\nvar RightAlignedOuterAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/RightAlignedOuterAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"RightAlignedOuterAxisLayoutStrategy\", { enumerable: true, get: function () { return RightAlignedOuterAxisLayoutStrategy_1.RightAlignedOuterAxisLayoutStrategy; } });\r\nvar RightAlignedOuterVerticallyStackedAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/RightAlignedOuterVerticallyStackedAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"RightAlignedOuterVerticallyStackedAxisLayoutStrategy\", { enumerable: true, get: function () { return RightAlignedOuterVerticallyStackedAxisLayoutStrategy_1.RightAlignedOuterVerticallyStackedAxisLayoutStrategy; } });\r\nvar SciChartHorizontalGroup_1 = require(\"./Charting/LayoutManager/SciChartHorizontalGroup\");\r\nObject.defineProperty(exports, \"SciChartHorizontalGroup\", { enumerable: true, get: function () { return SciChartHorizontalGroup_1.SciChartHorizontalGroup; } });\r\nvar SciChartVerticalGroup_1 = require(\"./Charting/LayoutManager/SciChartVerticalGroup\");\r\nObject.defineProperty(exports, \"SciChartVerticalGroup\", { enumerable: true, get: function () { return SciChartVerticalGroup_1.SciChartVerticalGroup; } });\r\nvar SynchronizedLayoutManager_1 = require(\"./Charting/LayoutManager/SynchronizedLayoutManager\");\r\nObject.defineProperty(exports, \"SynchronizedLayoutManager\", { enumerable: true, get: function () { return SynchronizedLayoutManager_1.SynchronizedLayoutManager; } });\r\nvar TopAlignedInnerAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/TopAlignedInnerAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"TopAlignedInnerAxisLayoutStrategy\", { enumerable: true, get: function () { return TopAlignedInnerAxisLayoutStrategy_1.TopAlignedInnerAxisLayoutStrategy; } });\r\nvar TopAlignedOuterAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/TopAlignedOuterAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"TopAlignedOuterAxisLayoutStrategy\", { enumerable: true, get: function () { return TopAlignedOuterAxisLayoutStrategy_1.TopAlignedOuterAxisLayoutStrategy; } });\r\nvar TopAlignedOuterHorizontallyStackedAxisLayoutStrategy_1 = require(\"./Charting/LayoutManager/TopAlignedOuterHorizontallyStackedAxisLayoutStrategy\");\r\nObject.defineProperty(exports, \"TopAlignedOuterHorizontallyStackedAxisLayoutStrategy\", { enumerable: true, get: function () { return TopAlignedOuterHorizontallyStackedAxisLayoutStrategy_1.TopAlignedOuterHorizontallyStackedAxisLayoutStrategy; } });\r\nvar BaseDataSeries_1 = require(\"./Charting/Model/BaseDataSeries\");\r\nObject.defineProperty(exports, \"BaseDataSeries\", { enumerable: true, get: function () { return BaseDataSeries_1.BaseDataSeries; } });\r\nvar BaseDataSeries_2 = require(\"./Charting/Model/BaseDataSeries\");\r\nObject.defineProperty(exports, \"getWindowedYRange\", { enumerable: true, get: function () { return BaseDataSeries_2.getWindowedYRange; } });\r\nvar BaseHeatmapDataSeries_1 = require(\"./Charting/Model/BaseHeatmapDataSeries\");\r\nObject.defineProperty(exports, \"BaseHeatmapDataSeries\", { enumerable: true, get: function () { return BaseHeatmapDataSeries_1.BaseHeatmapDataSeries; } });\r\nvar BasePaletteProvider_1 = require(\"./Charting/Model/BasePaletteProvider\");\r\nObject.defineProperty(exports, \"BasePaletteProvider\", { enumerable: true, get: function () { return BasePaletteProvider_1.BasePaletteProvider; } });\r\nvar DataPointSelectionPaletteProvider_1 = require(\"./Charting/Model/DataPointSelectionPaletteProvider\");\r\nObject.defineProperty(exports, \"DataPointSelectionPaletteProvider\", { enumerable: true, get: function () { return DataPointSelectionPaletteProvider_1.DataPointSelectionPaletteProvider; } });\r\nvar DoubleVectorProvider_1 = require(\"./Charting/Model/DoubleVectorProvider\");\r\nObject.defineProperty(exports, \"DoubleVectorProvider\", { enumerable: true, get: function () { return DoubleVectorProvider_1.DoubleVectorProvider; } });\r\nvar DoubleVectorProvider_2 = require(\"./Charting/Model/DoubleVectorProvider\");\r\nObject.defineProperty(exports, \"FIFOVectorProvider\", { enumerable: true, get: function () { return DoubleVectorProvider_2.FIFOVectorProvider; } });\r\nvar HlcDataSeries_1 = require(\"./Charting/Model/HlcDataSeries\");\r\nObject.defineProperty(exports, \"HlcDataSeries\", { enumerable: true, get: function () { return HlcDataSeries_1.HlcDataSeries; } });\r\nvar IDataSeries_1 = require(\"./Charting/Model/IDataSeries\");\r\nObject.defineProperty(exports, \"EDataSeriesType\", { enumerable: true, get: function () { return IDataSeries_1.EDataSeriesType; } });\r\nvar IDataSeries_2 = require(\"./Charting/Model/IDataSeries\");\r\nObject.defineProperty(exports, \"EDataChangeType\", { enumerable: true, get: function () { return IDataSeries_2.EDataChangeType; } });\r\nvar IDataSeries_3 = require(\"./Charting/Model/IDataSeries\");\r\nObject.defineProperty(exports, \"EDataSeriesValueType\", { enumerable: true, get: function () { return IDataSeries_3.EDataSeriesValueType; } });\r\nvar IPaletteProvider_1 = require(\"./Charting/Model/IPaletteProvider\");\r\nObject.defineProperty(exports, \"EStrokePaletteMode\", { enumerable: true, get: function () { return IPaletteProvider_1.EStrokePaletteMode; } });\r\nvar IPaletteProvider_2 = require(\"./Charting/Model/IPaletteProvider\");\r\nObject.defineProperty(exports, \"EFillPaletteMode\", { enumerable: true, get: function () { return IPaletteProvider_2.EFillPaletteMode; } });\r\nvar IPaletteProvider_3 = require(\"./Charting/Model/IPaletteProvider\");\r\nObject.defineProperty(exports, \"DefaultPaletteProvider\", { enumerable: true, get: function () { return IPaletteProvider_3.DefaultPaletteProvider; } });\r\nvar IPointMetadata_1 = require(\"./Charting/Model/IPointMetadata\");\r\nObject.defineProperty(exports, \"TemplateMetadataGenerator\", { enumerable: true, get: function () { return IPointMetadata_1.TemplateMetadataGenerator; } });\r\nvar NonUniformHeatmapDataSeries_1 = require(\"./Charting/Model/NonUniformHeatmapDataSeries\");\r\nObject.defineProperty(exports, \"NonUniformHeatmapDataSeries\", { enumerable: true, get: function () { return NonUniformHeatmapDataSeries_1.NonUniformHeatmapDataSeries; } });\r\nvar OhlcDataSeries_1 = require(\"./Charting/Model/OhlcDataSeries\");\r\nObject.defineProperty(exports, \"OhlcDataSeries\", { enumerable: true, get: function () { return OhlcDataSeries_1.OhlcDataSeries; } });\r\nvar PaletteFactory_1 = require(\"./Charting/Model/PaletteFactory\");\r\nObject.defineProperty(exports, \"PaletteFactory\", { enumerable: true, get: function () { return PaletteFactory_1.PaletteFactory; } });\r\nvar UniformHeatmapDataSeries_1 = require(\"./Charting/Model/UniformHeatmapDataSeries\");\r\nObject.defineProperty(exports, \"UniformHeatmapDataSeries\", { enumerable: true, get: function () { return UniformHeatmapDataSeries_1.UniformHeatmapDataSeries; } });\r\nvar XyDataSeries_1 = require(\"./Charting/Model/XyDataSeries\");\r\nObject.defineProperty(exports, \"XyDataSeries\", { enumerable: true, get: function () { return XyDataSeries_1.XyDataSeries; } });\r\nvar XyTextDataSeries_1 = require(\"./Charting/Model/XyTextDataSeries\");\r\nObject.defineProperty(exports, \"XyTextDataSeries\", { enumerable: true, get: function () { return XyTextDataSeries_1.XyTextDataSeries; } });\r\nvar XyyDataSeries_1 = require(\"./Charting/Model/XyyDataSeries\");\r\nObject.defineProperty(exports, \"XyyDataSeries\", { enumerable: true, get: function () { return XyyDataSeries_1.XyyDataSeries; } });\r\nvar XyzDataSeries_1 = require(\"./Charting/Model/XyzDataSeries\");\r\nObject.defineProperty(exports, \"XyzDataSeries\", { enumerable: true, get: function () { return XyzDataSeries_1.XyzDataSeries; } });\r\nvar HeatmapSeriesInfo_1 = require(\"./Charting/Model/ChartData/HeatmapSeriesInfo\");\r\nObject.defineProperty(exports, \"HeatmapSeriesInfo\", { enumerable: true, get: function () { return HeatmapSeriesInfo_1.HeatmapSeriesInfo; } });\r\nvar HlcSeriesInfo_1 = require(\"./Charting/Model/ChartData/HlcSeriesInfo\");\r\nObject.defineProperty(exports, \"HlcSeriesInfo\", { enumerable: true, get: function () { return HlcSeriesInfo_1.HlcSeriesInfo; } });\r\nvar OhlcSeriesInfo_1 = require(\"./Charting/Model/ChartData/OhlcSeriesInfo\");\r\nObject.defineProperty(exports, \"OhlcSeriesInfo\", { enumerable: true, get: function () { return OhlcSeriesInfo_1.OhlcSeriesInfo; } });\r\nvar SeriesInfo_1 = require(\"./Charting/Model/ChartData/SeriesInfo\");\r\nObject.defineProperty(exports, \"SeriesInfo\", { enumerable: true, get: function () { return SeriesInfo_1.SeriesInfo; } });\r\nvar StackedXySeriesInfo_1 = require(\"./Charting/Model/ChartData/StackedXySeriesInfo\");\r\nObject.defineProperty(exports, \"StackedXySeriesInfo\", { enumerable: true, get: function () { return StackedXySeriesInfo_1.StackedXySeriesInfo; } });\r\nvar XySeriesInfo_1 = require(\"./Charting/Model/ChartData/XySeriesInfo\");\r\nObject.defineProperty(exports, \"XySeriesInfo\", { enumerable: true, get: function () { return XySeriesInfo_1.XySeriesInfo; } });\r\nvar XyySeriesInfo_1 = require(\"./Charting/Model/ChartData/XyySeriesInfo\");\r\nObject.defineProperty(exports, \"XyySeriesInfo\", { enumerable: true, get: function () { return XyySeriesInfo_1.XyySeriesInfo; } });\r\nvar XyzSeriesInfo_1 = require(\"./Charting/Model/ChartData/XyzSeriesInfo\");\r\nObject.defineProperty(exports, \"XyzSeriesInfo\", { enumerable: true, get: function () { return XyzSeriesInfo_1.XyzSeriesInfo; } });\r\nvar DataDistributionCalculator_1 = require(\"./Charting/Model/DataDistributionCalculator/DataDistributionCalculator\");\r\nObject.defineProperty(exports, \"DataDistributionCalculator\", { enumerable: true, get: function () { return DataDistributionCalculator_1.DataDistributionCalculator; } });\r\nvar HlcCustomFilter_1 = require(\"./Charting/Model/Filters/HlcCustomFilter\");\r\nObject.defineProperty(exports, \"HlcCustomFilter\", { enumerable: true, get: function () { return HlcCustomFilter_1.HlcCustomFilter; } });\r\nvar HlcFilterBase_1 = require(\"./Charting/Model/Filters/HlcFilterBase\");\r\nObject.defineProperty(exports, \"HlcFilterBase\", { enumerable: true, get: function () { return HlcFilterBase_1.HlcFilterBase; } });\r\nvar HlcScaleOffsetFilter_1 = require(\"./Charting/Model/Filters/HlcScaleOffsetFilter\");\r\nObject.defineProperty(exports, \"HlcScaleOffsetFilter\", { enumerable: true, get: function () { return HlcScaleOffsetFilter_1.HlcScaleOffsetFilter; } });\r\nvar OhlcCustomFilter_1 = require(\"./Charting/Model/Filters/OhlcCustomFilter\");\r\nObject.defineProperty(exports, \"OhlcCustomFilter\", { enumerable: true, get: function () { return OhlcCustomFilter_1.OhlcCustomFilter; } });\r\nvar OhlcFilterBase_1 = require(\"./Charting/Model/Filters/OhlcFilterBase\");\r\nObject.defineProperty(exports, \"OhlcFilterBase\", { enumerable: true, get: function () { return OhlcFilterBase_1.OhlcFilterBase; } });\r\nvar OhlcScaleOffsetFilter_1 = require(\"./Charting/Model/Filters/OhlcScaleOffsetFilter\");\r\nObject.defineProperty(exports, \"OhlcScaleOffsetFilter\", { enumerable: true, get: function () { return OhlcScaleOffsetFilter_1.OhlcScaleOffsetFilter; } });\r\nvar XyCustomFilter_1 = require(\"./Charting/Model/Filters/XyCustomFilter\");\r\nObject.defineProperty(exports, \"XyCustomFilter\", { enumerable: true, get: function () { return XyCustomFilter_1.XyCustomFilter; } });\r\nvar XyFilterBase_1 = require(\"./Charting/Model/Filters/XyFilterBase\");\r\nObject.defineProperty(exports, \"EDataSeriesField\", { enumerable: true, get: function () { return XyFilterBase_1.EDataSeriesField; } });\r\nvar XyFilterBase_2 = require(\"./Charting/Model/Filters/XyFilterBase\");\r\nObject.defineProperty(exports, \"XyFilterBase\", { enumerable: true, get: function () { return XyFilterBase_2.XyFilterBase; } });\r\nvar XyFilterBase_3 = require(\"./Charting/Model/Filters/XyFilterBase\");\r\nObject.defineProperty(exports, \"switchData\", { enumerable: true, get: function () { return XyFilterBase_3.switchData; } });\r\nvar XyLinearTrendFilter_1 = require(\"./Charting/Model/Filters/XyLinearTrendFilter\");\r\nObject.defineProperty(exports, \"XyLinearTrendFilter\", { enumerable: true, get: function () { return XyLinearTrendFilter_1.XyLinearTrendFilter; } });\r\nvar XyMovingAverageFilter_1 = require(\"./Charting/Model/Filters/XyMovingAverageFilter\");\r\nObject.defineProperty(exports, \"XyMovingAverageFilter\", { enumerable: true, get: function () { return XyMovingAverageFilter_1.XyMovingAverageFilter; } });\r\nvar XyRatioFilter_1 = require(\"./Charting/Model/Filters/XyRatioFilter\");\r\nObject.defineProperty(exports, \"XyRatioFilter\", { enumerable: true, get: function () { return XyRatioFilter_1.XyRatioFilter; } });\r\nvar XyScaleOffsetFilter_1 = require(\"./Charting/Model/Filters/XyScaleOffsetFilter\");\r\nObject.defineProperty(exports, \"XyScaleOffsetFilter\", { enumerable: true, get: function () { return XyScaleOffsetFilter_1.XyScaleOffsetFilter; } });\r\nvar XyyCustomFilter_1 = require(\"./Charting/Model/Filters/XyyCustomFilter\");\r\nObject.defineProperty(exports, \"XyyCustomFilter\", { enumerable: true, get: function () { return XyyCustomFilter_1.XyyCustomFilter; } });\r\nvar XyyFilterBase_1 = require(\"./Charting/Model/Filters/XyyFilterBase\");\r\nObject.defineProperty(exports, \"XyyFilterBase\", { enumerable: true, get: function () { return XyyFilterBase_1.XyyFilterBase; } });\r\nvar XyyScaleOffsetFilter_1 = require(\"./Charting/Model/Filters/XyyScaleOffsetFilter\");\r\nObject.defineProperty(exports, \"XyyScaleOffsetFilter\", { enumerable: true, get: function () { return XyyScaleOffsetFilter_1.XyyScaleOffsetFilter; } });\r\nvar XyzCustomFilter_1 = require(\"./Charting/Model/Filters/XyzCustomFilter\");\r\nObject.defineProperty(exports, \"XyzCustomFilter\", { enumerable: true, get: function () { return XyzCustomFilter_1.XyzCustomFilter; } });\r\nvar XyzFilterBase_1 = require(\"./Charting/Model/Filters/XyzFilterBase\");\r\nObject.defineProperty(exports, \"XyzFilterBase\", { enumerable: true, get: function () { return XyzFilterBase_1.XyzFilterBase; } });\r\nvar XyzScaleOffsetFilter_1 = require(\"./Charting/Model/Filters/XyzScaleOffsetFilter\");\r\nObject.defineProperty(exports, \"XyzScaleOffsetFilter\", { enumerable: true, get: function () { return XyzScaleOffsetFilter_1.XyzScaleOffsetFilter; } });\r\nvar BasePointSeriesResampled_1 = require(\"./Charting/Model/PointSeries/BasePointSeriesResampled\");\r\nObject.defineProperty(exports, \"BasePointSeriesResampled\", { enumerable: true, get: function () { return BasePointSeriesResampled_1.BasePointSeriesResampled; } });\r\nvar BasePointSeriesWrapped_1 = require(\"./Charting/Model/PointSeries/BasePointSeriesWrapped\");\r\nObject.defineProperty(exports, \"BasePointSeriesWrapped\", { enumerable: true, get: function () { return BasePointSeriesWrapped_1.BasePointSeriesWrapped; } });\r\nvar HlcPointSeriesWrapped_1 = require(\"./Charting/Model/PointSeries/HlcPointSeriesWrapped\");\r\nObject.defineProperty(exports, \"HlcPointSeriesWrapped\", { enumerable: true, get: function () { return HlcPointSeriesWrapped_1.HlcPointSeriesWrapped; } });\r\nvar OhlcPointSeriesResampled_1 = require(\"./Charting/Model/PointSeries/OhlcPointSeriesResampled\");\r\nObject.defineProperty(exports, \"OhlcPointSeriesResampled\", { enumerable: true, get: function () { return OhlcPointSeriesResampled_1.OhlcPointSeriesResampled; } });\r\nvar OhlcPointSeriesWrapped_1 = require(\"./Charting/Model/PointSeries/OhlcPointSeriesWrapped\");\r\nObject.defineProperty(exports, \"OhlcPointSeriesWrapped\", { enumerable: true, get: function () { return OhlcPointSeriesWrapped_1.OhlcPointSeriesWrapped; } });\r\nvar XyPointSeriesResampled_1 = require(\"./Charting/Model/PointSeries/XyPointSeriesResampled\");\r\nObject.defineProperty(exports, \"XyPointSeriesResampled\", { enumerable: true, get: function () { return XyPointSeriesResampled_1.XyPointSeriesResampled; } });\r\nvar XyPointSeriesWrapped_1 = require(\"./Charting/Model/PointSeries/XyPointSeriesWrapped\");\r\nObject.defineProperty(exports, \"XyPointSeriesWrapped\", { enumerable: true, get: function () { return XyPointSeriesWrapped_1.XyPointSeriesWrapped; } });\r\nvar XyyPointSeriesResampled_1 = require(\"./Charting/Model/PointSeries/XyyPointSeriesResampled\");\r\nObject.defineProperty(exports, \"XyyPointSeriesResampled\", { enumerable: true, get: function () { return XyyPointSeriesResampled_1.XyyPointSeriesResampled; } });\r\nvar XyyPointSeriesWrapped_1 = require(\"./Charting/Model/PointSeries/XyyPointSeriesWrapped\");\r\nObject.defineProperty(exports, \"XyyPointSeriesWrapped\", { enumerable: true, get: function () { return XyyPointSeriesWrapped_1.XyyPointSeriesWrapped; } });\r\nvar XyzPointSeriesWrapped_1 = require(\"./Charting/Model/PointSeries/XyzPointSeriesWrapped\");\r\nObject.defineProperty(exports, \"XyzPointSeriesWrapped\", { enumerable: true, get: function () { return XyzPointSeriesWrapped_1.XyzPointSeriesWrapped; } });\r\nvar CategoryCoordinateCalculator_1 = require(\"./Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator\");\r\nObject.defineProperty(exports, \"CategoryCoordinateCalculator\", { enumerable: true, get: function () { return CategoryCoordinateCalculator_1.CategoryCoordinateCalculator; } });\r\nvar CoordinateCalculatorBase_1 = require(\"./Charting/Numerics/CoordinateCalculators/CoordinateCalculatorBase\");\r\nObject.defineProperty(exports, \"CoordinateCalculatorBase\", { enumerable: true, get: function () { return CoordinateCalculatorBase_1.CoordinateCalculatorBase; } });\r\nvar FlippedCategoryCoordinateCalculator_1 = require(\"./Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator\");\r\nObject.defineProperty(exports, \"FlippedCategoryCoordinateCalculator\", { enumerable: true, get: function () { return FlippedCategoryCoordinateCalculator_1.FlippedCategoryCoordinateCalculator; } });\r\nvar FlippedNumericCoordinateCalculator_1 = require(\"./Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator\");\r\nObject.defineProperty(exports, \"FlippedNumericCoordinateCalculator\", { enumerable: true, get: function () { return FlippedNumericCoordinateCalculator_1.FlippedNumericCoordinateCalculator; } });\r\nvar LogarithmicCoordinateCalculator_1 = require(\"./Charting/Numerics/CoordinateCalculators/LogarithmicCoordinateCalculator\");\r\nObject.defineProperty(exports, \"LogarithmicCoordinateCalculator\", { enumerable: true, get: function () { return LogarithmicCoordinateCalculator_1.LogarithmicCoordinateCalculator; } });\r\nvar NumericCoordinateCalculator_1 = require(\"./Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator\");\r\nObject.defineProperty(exports, \"NumericCoordinateCalculator\", { enumerable: true, get: function () { return NumericCoordinateCalculator_1.NumericCoordinateCalculator; } });\r\nvar ExtremeResamplerHelper_1 = require(\"./Charting/Numerics/Resamplers/ExtremeResamplerHelper\");\r\nObject.defineProperty(exports, \"ExtremeResamplerHelper\", { enumerable: true, get: function () { return ExtremeResamplerHelper_1.ExtremeResamplerHelper; } });\r\nvar ResamplingMode_1 = require(\"./Charting/Numerics/Resamplers/ResamplingMode\");\r\nObject.defineProperty(exports, \"EResamplingMode\", { enumerable: true, get: function () { return ResamplingMode_1.EResamplingMode; } });\r\nvar ResamplingParams_1 = require(\"./Charting/Numerics/Resamplers/ResamplingParams\");\r\nObject.defineProperty(exports, \"ResamplingParams\", { enumerable: true, get: function () { return ResamplingParams_1.ResamplingParams; } });\r\nvar DefaultTickCoordinatesProvider_1 = require(\"./Charting/Numerics/TickCoordinateProviders/DefaultTickCoordinatesProvider\");\r\nObject.defineProperty(exports, \"DefaultTickCoordinatesProvider\", { enumerable: true, get: function () { return DefaultTickCoordinatesProvider_1.DefaultTickCoordinatesProvider; } });\r\nvar StaticTickCoordinatesProvider_1 = require(\"./Charting/Numerics/TickCoordinateProviders/StaticTickCoordinatesProvider\");\r\nObject.defineProperty(exports, \"StaticTickCoordinatesProvider\", { enumerable: true, get: function () { return StaticTickCoordinatesProvider_1.StaticTickCoordinatesProvider; } });\r\nvar TickCoordinatesProvider_1 = require(\"./Charting/Numerics/TickCoordinateProviders/TickCoordinatesProvider\");\r\nObject.defineProperty(exports, \"TickCoordinatesProvider\", { enumerable: true, get: function () { return TickCoordinatesProvider_1.TickCoordinatesProvider; } });\r\nvar LogarithmicTickProvider_1 = require(\"./Charting/Numerics/TickProviders/LogarithmicTickProvider\");\r\nObject.defineProperty(exports, \"ELogarithmicMinorTickMode\", { enumerable: true, get: function () { return LogarithmicTickProvider_1.ELogarithmicMinorTickMode; } });\r\nvar LogarithmicTickProvider_2 = require(\"./Charting/Numerics/TickProviders/LogarithmicTickProvider\");\r\nObject.defineProperty(exports, \"ELogarithmicMajorTickMode\", { enumerable: true, get: function () { return LogarithmicTickProvider_2.ELogarithmicMajorTickMode; } });\r\nvar LogarithmicTickProvider_3 = require(\"./Charting/Numerics/TickProviders/LogarithmicTickProvider\");\r\nObject.defineProperty(exports, \"LogarithmicTickProvider\", { enumerable: true, get: function () { return LogarithmicTickProvider_3.LogarithmicTickProvider; } });\r\nvar NumericTickProvider_1 = require(\"./Charting/Numerics/TickProviders/NumericTickProvider\");\r\nObject.defineProperty(exports, \"NumericTickProvider\", { enumerable: true, get: function () { return NumericTickProvider_1.NumericTickProvider; } });\r\nvar TickProvider_1 = require(\"./Charting/Numerics/TickProviders/TickProvider\");\r\nObject.defineProperty(exports, \"TickProvider\", { enumerable: true, get: function () { return TickProvider_1.TickProvider; } });\r\nvar ChartTitleRenderer_1 = require(\"./Charting/Services/ChartTitleRenderer\");\r\nObject.defineProperty(exports, \"ChartTitleRenderer\", { enumerable: true, get: function () { return ChartTitleRenderer_1.ChartTitleRenderer; } });\r\nvar RenderPassData_1 = require(\"./Charting/Services/RenderPassData\");\r\nObject.defineProperty(exports, \"RenderPassData\", { enumerable: true, get: function () { return RenderPassData_1.RenderPassData; } });\r\nvar RenderPassDataCollection_1 = require(\"./Charting/Services/RenderPassDataCollection\");\r\nObject.defineProperty(exports, \"RenderPassDataCollection\", { enumerable: true, get: function () { return RenderPassDataCollection_1.RenderPassDataCollection; } });\r\nvar RenderPassInfo_1 = require(\"./Charting/Services/RenderPassInfo\");\r\nObject.defineProperty(exports, \"RenderPassInfo\", { enumerable: true, get: function () { return RenderPassInfo_1.RenderPassInfo; } });\r\nvar SciChartRenderer_1 = require(\"./Charting/Services/SciChartRenderer\");\r\nObject.defineProperty(exports, \"SciChartRenderer\", { enumerable: true, get: function () { return SciChartRenderer_1.SciChartRenderer; } });\r\nvar TitleRenderer_1 = require(\"./Charting/Services/TitleRenderer\");\r\nObject.defineProperty(exports, \"TitleRendererBase\", { enumerable: true, get: function () { return TitleRenderer_1.TitleRendererBase; } });\r\nvar TitleRenderer_2 = require(\"./Charting/Services/TitleRenderer\");\r\nObject.defineProperty(exports, \"getAdjustedRotation\", { enumerable: true, get: function () { return TitleRenderer_2.getAdjustedRotation; } });\r\nvar IThemeProvider_1 = require(\"./Charting/Themes/IThemeProvider\");\r\nObject.defineProperty(exports, \"AUTO_COLOR\", { enumerable: true, get: function () { return IThemeProvider_1.AUTO_COLOR; } });\r\nvar IThemeProvider_2 = require(\"./Charting/Themes/IThemeProvider\");\r\nObject.defineProperty(exports, \"ThemeProvider\", { enumerable: true, get: function () { return IThemeProvider_2.ThemeProvider; } });\r\nvar IThemeProvider_3 = require(\"./Charting/Themes/IThemeProvider\");\r\nObject.defineProperty(exports, \"stripAutoColor\", { enumerable: true, get: function () { return IThemeProvider_3.stripAutoColor; } });\r\nvar SciChartJSDarkTheme_1 = require(\"./Charting/Themes/SciChartJSDarkTheme\");\r\nObject.defineProperty(exports, \"SciChartJSDarkTheme\", { enumerable: true, get: function () { return SciChartJSDarkTheme_1.SciChartJSDarkTheme; } });\r\nvar SciChartJSDarkv2Theme_1 = require(\"./Charting/Themes/SciChartJSDarkv2Theme\");\r\nObject.defineProperty(exports, \"SciChartJSDarkv2Theme\", { enumerable: true, get: function () { return SciChartJSDarkv2Theme_1.SciChartJSDarkv2Theme; } });\r\nvar SciChartJSLightTheme_1 = require(\"./Charting/Themes/SciChartJSLightTheme\");\r\nObject.defineProperty(exports, \"SciChartJSLightTheme\", { enumerable: true, get: function () { return SciChartJSLightTheme_1.SciChartJSLightTheme; } });\r\nvar SciChartJsNavyTheme_1 = require(\"./Charting/Themes/SciChartJsNavyTheme\");\r\nObject.defineProperty(exports, \"SciChartJsNavyTheme\", { enumerable: true, get: function () { return SciChartJsNavyTheme_1.SciChartJsNavyTheme; } });\r\nvar createMaster_1 = require(\"./Charting/Visuals/createMaster\");\r\nObject.defineProperty(exports, \"getSharedWasmContext\", { enumerable: true, get: function () { return createMaster_1.getSharedWasmContext; } });\r\nvar createMaster_2 = require(\"./Charting/Visuals/createMaster\");\r\nObject.defineProperty(exports, \"initializeChartEngine2D\", { enumerable: true, get: function () { return createMaster_2.initializeChartEngine2D; } });\r\nvar HeatmapLegend_1 = require(\"./Charting/Visuals/HeatmapLegend\");\r\nObject.defineProperty(exports, \"HeatmapLegend\", { enumerable: true, get: function () { return HeatmapLegend_1.HeatmapLegend; } });\r\nvar licenseManager2dState_1 = require(\"./Charting/Visuals/licenseManager2dState\");\r\nObject.defineProperty(exports, \"licenseManager2dState\", { enumerable: true, get: function () { return licenseManager2dState_1.licenseManager2dState; } });\r\nvar loader_1 = require(\"./Charting/Visuals/loader\");\r\nObject.defineProperty(exports, \"DefaultSciChartLoader\", { enumerable: true, get: function () { return loader_1.DefaultSciChartLoader; } });\r\nvar SciChartDefaults_1 = require(\"./Charting/Visuals/SciChartDefaults\");\r\nObject.defineProperty(exports, \"SciChartDefaults\", { enumerable: true, get: function () { return SciChartDefaults_1.SciChartDefaults; } });\r\nvar SciChartOverview_1 = require(\"./Charting/Visuals/SciChartOverview\");\r\nObject.defineProperty(exports, \"SciChartOverview\", { enumerable: true, get: function () { return SciChartOverview_1.SciChartOverview; } });\r\nvar SciChartSurface_1 = require(\"./Charting/Visuals/SciChartSurface\");\r\nObject.defineProperty(exports, \"sciChartConfig\", { enumerable: true, get: function () { return SciChartSurface_1.sciChartConfig; } });\r\nvar SciChartSurface_2 = require(\"./Charting/Visuals/SciChartSurface\");\r\nObject.defineProperty(exports, \"SciChartSurface\", { enumerable: true, get: function () { return SciChartSurface_2.SciChartSurface; } });\r\nvar SciChartSurface_3 = require(\"./Charting/Visuals/SciChartSurface\");\r\nObject.defineProperty(exports, \"SciChartSubSurface\", { enumerable: true, get: function () { return SciChartSurface_3.SciChartSubSurface; } });\r\nvar SciChartSurfaceBase_1 = require(\"./Charting/Visuals/SciChartSurfaceBase\");\r\nObject.defineProperty(exports, \"DebugForDpi\", { enumerable: true, get: function () { return SciChartSurfaceBase_1.DebugForDpi; } });\r\nvar SciChartSurfaceBase_2 = require(\"./Charting/Visuals/SciChartSurfaceBase\");\r\nObject.defineProperty(exports, \"ESurfaceType\", { enumerable: true, get: function () { return SciChartSurfaceBase_2.ESurfaceType; } });\r\nvar SciChartSurfaceBase_3 = require(\"./Charting/Visuals/SciChartSurfaceBase\");\r\nObject.defineProperty(exports, \"SciChartSurfaceBase\", { enumerable: true, get: function () { return SciChartSurfaceBase_3.SciChartSurfaceBase; } });\r\nvar SciChartSurfaceBase_4 = require(\"./Charting/Visuals/SciChartSurfaceBase\");\r\nObject.defineProperty(exports, \"createChartDestination\", { enumerable: true, get: function () { return SciChartSurfaceBase_4.createChartDestination; } });\r\nvar UpdateSuspender_1 = require(\"./Charting/Visuals/UpdateSuspender\");\r\nObject.defineProperty(exports, \"UpdateSuspender\", { enumerable: true, get: function () { return UpdateSuspender_1.UpdateSuspender; } });\r\nvar AdornerLayer_1 = require(\"./Charting/Visuals/Annotations/AdornerLayer\");\r\nObject.defineProperty(exports, \"AdornerLayer\", { enumerable: true, get: function () { return AdornerLayer_1.AdornerLayer; } });\r\nvar AnnotationBase_1 = require(\"./Charting/Visuals/Annotations/AnnotationBase\");\r\nObject.defineProperty(exports, \"EDraggingGripPoint\", { enumerable: true, get: function () { return AnnotationBase_1.EDraggingGripPoint; } });\r\nvar AnnotationBase_2 = require(\"./Charting/Visuals/Annotations/AnnotationBase\");\r\nObject.defineProperty(exports, \"ECoordinateMode\", { enumerable: true, get: function () { return AnnotationBase_2.ECoordinateMode; } });\r\nvar AnnotationBase_3 = require(\"./Charting/Visuals/Annotations/AnnotationBase\");\r\nObject.defineProperty(exports, \"AnnotationBase\", { enumerable: true, get: function () { return AnnotationBase_3.AnnotationBase; } });\r\nvar AnnotationClickEventArgs_1 = require(\"./Charting/Visuals/Annotations/AnnotationClickEventArgs\");\r\nObject.defineProperty(exports, \"AnnotationClickEventArgs\", { enumerable: true, get: function () { return AnnotationClickEventArgs_1.AnnotationClickEventArgs; } });\r\nvar AnnotationDragDeltaEventArgs_1 = require(\"./Charting/Visuals/Annotations/AnnotationDragDeltaEventArgs\");\r\nObject.defineProperty(exports, \"AnnotationDragDeltaEventArgs\", { enumerable: true, get: function () { return AnnotationDragDeltaEventArgs_1.AnnotationDragDeltaEventArgs; } });\r\nvar annotationHelpers_1 = require(\"./Charting/Visuals/Annotations/annotationHelpers\");\r\nObject.defineProperty(exports, \"annotationHelpers\", { enumerable: true, get: function () { return annotationHelpers_1.annotationHelpers; } });\r\nvar AnnotationHoverEventArgs_1 = require(\"./Charting/Visuals/Annotations/AnnotationHoverEventArgs\");\r\nObject.defineProperty(exports, \"AnnotationHoverEventArgs\", { enumerable: true, get: function () { return AnnotationHoverEventArgs_1.AnnotationHoverEventArgs; } });\r\nvar AxisMarkerAnnotation_1 = require(\"./Charting/Visuals/Annotations/AxisMarkerAnnotation\");\r\nObject.defineProperty(exports, \"AxisMarkerAnnotation\", { enumerable: true, get: function () { return AxisMarkerAnnotation_1.AxisMarkerAnnotation; } });\r\nvar BoxAnnotation_1 = require(\"./Charting/Visuals/Annotations/BoxAnnotation\");\r\nObject.defineProperty(exports, \"BoxAnnotation\", { enumerable: true, get: function () { return BoxAnnotation_1.BoxAnnotation; } });\r\nvar CursorTooltipSvgAnnotation_1 = require(\"./Charting/Visuals/Annotations/CursorTooltipSvgAnnotation\");\r\nObject.defineProperty(exports, \"CursorTooltipSvgAnnotation\", { enumerable: true, get: function () { return CursorTooltipSvgAnnotation_1.CursorTooltipSvgAnnotation; } });\r\nvar CustomAnnotation_1 = require(\"./Charting/Visuals/Annotations/CustomAnnotation\");\r\nObject.defineProperty(exports, \"CustomAnnotation\", { enumerable: true, get: function () { return CustomAnnotation_1.CustomAnnotation; } });\r\nvar HorizontalLineAnnotation_1 = require(\"./Charting/Visuals/Annotations/HorizontalLineAnnotation\");\r\nObject.defineProperty(exports, \"HorizontalLineAnnotation\", { enumerable: true, get: function () { return HorizontalLineAnnotation_1.HorizontalLineAnnotation; } });\r\nvar IAnnotation_1 = require(\"./Charting/Visuals/Annotations/IAnnotation\");\r\nObject.defineProperty(exports, \"EAnnotationLayer\", { enumerable: true, get: function () { return IAnnotation_1.EAnnotationLayer; } });\r\nvar IAnnotation_2 = require(\"./Charting/Visuals/Annotations/IAnnotation\");\r\nObject.defineProperty(exports, \"EAnnotationType\", { enumerable: true, get: function () { return IAnnotation_2.EAnnotationType; } });\r\nvar LineAnnotation_1 = require(\"./Charting/Visuals/Annotations/LineAnnotation\");\r\nObject.defineProperty(exports, \"LineAnnotation\", { enumerable: true, get: function () { return LineAnnotation_1.LineAnnotation; } });\r\nvar NativeTextAnnotation_1 = require(\"./Charting/Visuals/Annotations/NativeTextAnnotation\");\r\nObject.defineProperty(exports, \"EWrapTo\", { enumerable: true, get: function () { return NativeTextAnnotation_1.EWrapTo; } });\r\nvar NativeTextAnnotation_2 = require(\"./Charting/Visuals/Annotations/NativeTextAnnotation\");\r\nObject.defineProperty(exports, \"NativeTextAnnotation\", { enumerable: true, get: function () { return NativeTextAnnotation_2.NativeTextAnnotation; } });\r\nvar OverviewCustomResizableAnnotation_1 = require(\"./Charting/Visuals/Annotations/OverviewCustomResizableAnnotation\");\r\nObject.defineProperty(exports, \"OverviewCustomResizableAnnotation\", { enumerable: true, get: function () { return OverviewCustomResizableAnnotation_1.OverviewCustomResizableAnnotation; } });\r\nvar RenderContextAnnotationBase_1 = require(\"./Charting/Visuals/Annotations/RenderContextAnnotationBase\");\r\nObject.defineProperty(exports, \"RenderContextAnnotationBase\", { enumerable: true, get: function () { return RenderContextAnnotationBase_1.RenderContextAnnotationBase; } });\r\nvar RolloverLegendSvgAnnotation_1 = require(\"./Charting/Visuals/Annotations/RolloverLegendSvgAnnotation\");\r\nObject.defineProperty(exports, \"RolloverLegendSvgAnnotation\", { enumerable: true, get: function () { return RolloverLegendSvgAnnotation_1.RolloverLegendSvgAnnotation; } });\r\nvar RolloverMarkerSvgAnnotation_1 = require(\"./Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation\");\r\nObject.defineProperty(exports, \"RolloverMarkerSvgAnnotation\", { enumerable: true, get: function () { return RolloverMarkerSvgAnnotation_1.RolloverMarkerSvgAnnotation; } });\r\nvar RolloverTooltipSvgAnnotation_1 = require(\"./Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation\");\r\nObject.defineProperty(exports, \"RolloverTooltipSvgAnnotation\", { enumerable: true, get: function () { return RolloverTooltipSvgAnnotation_1.RolloverTooltipSvgAnnotation; } });\r\nvar SvgAnnotationBase_1 = require(\"./Charting/Visuals/Annotations/SvgAnnotationBase\");\r\nObject.defineProperty(exports, \"SvgAnnotationBase\", { enumerable: true, get: function () { return SvgAnnotationBase_1.SvgAnnotationBase; } });\r\nvar TextAnnotation_1 = require(\"./Charting/Visuals/Annotations/TextAnnotation\");\r\nObject.defineProperty(exports, \"TextAnnotation\", { enumerable: true, get: function () { return TextAnnotation_1.TextAnnotation; } });\r\nvar VerticalLineAnnotation_1 = require(\"./Charting/Visuals/Annotations/VerticalLineAnnotation\");\r\nObject.defineProperty(exports, \"VerticalLineAnnotation\", { enumerable: true, get: function () { return VerticalLineAnnotation_1.VerticalLineAnnotation; } });\r\nvar AxisBase2D_1 = require(\"./Charting/Visuals/Axis/AxisBase2D\");\r\nObject.defineProperty(exports, \"EClipMode\", { enumerable: true, get: function () { return AxisBase2D_1.EClipMode; } });\r\nvar AxisBase2D_2 = require(\"./Charting/Visuals/Axis/AxisBase2D\");\r\nObject.defineProperty(exports, \"AxisBase2D\", { enumerable: true, get: function () { return AxisBase2D_2.AxisBase2D; } });\r\nvar AxisCore_1 = require(\"./Charting/Visuals/Axis/AxisCore\");\r\nObject.defineProperty(exports, \"AxisCore\", { enumerable: true, get: function () { return AxisCore_1.AxisCore; } });\r\nvar AxisLayoutState_1 = require(\"./Charting/Visuals/Axis/AxisLayoutState\");\r\nObject.defineProperty(exports, \"AxisLayoutState\", { enumerable: true, get: function () { return AxisLayoutState_1.AxisLayoutState; } });\r\nvar AxisRenderer_1 = require(\"./Charting/Visuals/Axis/AxisRenderer\");\r\nObject.defineProperty(exports, \"AxisRenderer\", { enumerable: true, get: function () { return AxisRenderer_1.AxisRenderer; } });\r\nvar AxisTitleRenderer_1 = require(\"./Charting/Visuals/Axis/AxisTitleRenderer\");\r\nObject.defineProperty(exports, \"AxisTitleRenderer\", { enumerable: true, get: function () { return AxisTitleRenderer_1.AxisTitleRenderer; } });\r\nvar CategoryAxis_1 = require(\"./Charting/Visuals/Axis/CategoryAxis\");\r\nObject.defineProperty(exports, \"CategoryAxis\", { enumerable: true, get: function () { return CategoryAxis_1.CategoryAxis; } });\r\nvar CategoryAxisBase_1 = require(\"./Charting/Visuals/Axis/CategoryAxisBase\");\r\nObject.defineProperty(exports, \"CategoryAxisBase\", { enumerable: true, get: function () { return CategoryAxisBase_1.CategoryAxisBase; } });\r\nvar DateTimeNumericAxis_1 = require(\"./Charting/Visuals/Axis/DateTimeNumericAxis\");\r\nObject.defineProperty(exports, \"DateTimeNumericAxis\", { enumerable: true, get: function () { return DateTimeNumericAxis_1.DateTimeNumericAxis; } });\r\nvar getAxisById_1 = require(\"./Charting/Visuals/Axis/getAxisById\");\r\nObject.defineProperty(exports, \"getAxisById\", { enumerable: true, get: function () { return getAxisById_1.getAxisById; } });\r\nvar getAxisById_2 = require(\"./Charting/Visuals/Axis/getAxisById\");\r\nObject.defineProperty(exports, \"getAxis3dById\", { enumerable: true, get: function () { return getAxisById_2.getAxis3dById; } });\r\nvar LogarithmicAxis_1 = require(\"./Charting/Visuals/Axis/LogarithmicAxis\");\r\nObject.defineProperty(exports, \"MIN_LOG_AXIS_VALUE\", { enumerable: true, get: function () { return LogarithmicAxis_1.MIN_LOG_AXIS_VALUE; } });\r\nvar LogarithmicAxis_2 = require(\"./Charting/Visuals/Axis/LogarithmicAxis\");\r\nObject.defineProperty(exports, \"LogarithmicAxis\", { enumerable: true, get: function () { return LogarithmicAxis_2.LogarithmicAxis; } });\r\nvar NumericAxis_1 = require(\"./Charting/Visuals/Axis/NumericAxis\");\r\nObject.defineProperty(exports, \"NumericAxis\", { enumerable: true, get: function () { return NumericAxis_1.NumericAxis; } });\r\nvar VisibleRangeChangedArgs_1 = require(\"./Charting/Visuals/Axis/VisibleRangeChangedArgs\");\r\nObject.defineProperty(exports, \"VisibleRangeChangedArgs\", { enumerable: true, get: function () { return VisibleRangeChangedArgs_1.VisibleRangeChangedArgs; } });\r\nvar CategoryDeltaCalculator_1 = require(\"./Charting/Visuals/Axis/DeltaCalculator/CategoryDeltaCalculator\");\r\nObject.defineProperty(exports, \"CategoryDeltaCalculator\", { enumerable: true, get: function () { return CategoryDeltaCalculator_1.CategoryDeltaCalculator; } });\r\nvar DateTimeDeltaCalculator_1 = require(\"./Charting/Visuals/Axis/DeltaCalculator/DateTimeDeltaCalculator\");\r\nObject.defineProperty(exports, \"DateTimeDeltaCalculator\", { enumerable: true, get: function () { return DateTimeDeltaCalculator_1.DateTimeDeltaCalculator; } });\r\nvar DeltaCalculator_1 = require(\"./Charting/Visuals/Axis/DeltaCalculator/DeltaCalculator\");\r\nObject.defineProperty(exports, \"DeltaCalculator\", { enumerable: true, get: function () { return DeltaCalculator_1.DeltaCalculator; } });\r\nvar LogarithmicDeltaCalculator_1 = require(\"./Charting/Visuals/Axis/DeltaCalculator/LogarithmicDeltaCalculator\");\r\nObject.defineProperty(exports, \"LogarithmicDeltaCalculator\", { enumerable: true, get: function () { return LogarithmicDeltaCalculator_1.LogarithmicDeltaCalculator; } });\r\nvar NumericDeltaCalculator_1 = require(\"./Charting/Visuals/Axis/DeltaCalculator/NumericDeltaCalculator\");\r\nObject.defineProperty(exports, \"NumericDeltaCalculator\", { enumerable: true, get: function () { return NumericDeltaCalculator_1.NumericDeltaCalculator; } });\r\nvar DateLabelProvider_1 = require(\"./Charting/Visuals/Axis/LabelProvider/DateLabelProvider\");\r\nObject.defineProperty(exports, \"DateLabelProvider\", { enumerable: true, get: function () { return DateLabelProvider_1.DateLabelProvider; } });\r\nvar LabelCache_1 = require(\"./Charting/Visuals/Axis/LabelProvider/LabelCache\");\r\nObject.defineProperty(exports, \"labelCache\", { enumerable: true, get: function () { return LabelCache_1.labelCache; } });\r\nvar LabelProvider_1 = require(\"./Charting/Visuals/Axis/LabelProvider/LabelProvider\");\r\nObject.defineProperty(exports, \"LabelProvider\", { enumerable: true, get: function () { return LabelProvider_1.LabelProvider; } });\r\nvar LabelProviderBase2D_1 = require(\"./Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D\");\r\nObject.defineProperty(exports, \"LabelInfo\", { enumerable: true, get: function () { return LabelProviderBase2D_1.LabelInfo; } });\r\nvar LabelProviderBase2D_2 = require(\"./Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D\");\r\nObject.defineProperty(exports, \"LabelProviderBase2D\", { enumerable: true, get: function () { return LabelProviderBase2D_2.LabelProviderBase2D; } });\r\nvar LogarithmicLabelProvider_1 = require(\"./Charting/Visuals/Axis/LabelProvider/LogarithmicLabelProvider\");\r\nObject.defineProperty(exports, \"LogarithmicLabelProvider\", { enumerable: true, get: function () { return LogarithmicLabelProvider_1.LogarithmicLabelProvider; } });\r\nvar NumericLabelProvider_1 = require(\"./Charting/Visuals/Axis/LabelProvider/NumericLabelProvider\");\r\nObject.defineProperty(exports, \"NumericLabelProvider\", { enumerable: true, get: function () { return NumericLabelProvider_1.NumericLabelProvider; } });\r\nvar PieLabelProvider_1 = require(\"./Charting/Visuals/Axis/LabelProvider/PieLabelProvider\");\r\nObject.defineProperty(exports, \"PieLabelProvider\", { enumerable: true, get: function () { return PieLabelProvider_1.PieLabelProvider; } });\r\nvar SmartDateLabelProvider_1 = require(\"./Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider\");\r\nObject.defineProperty(exports, \"ETradeChartLabelFormat\", { enumerable: true, get: function () { return SmartDateLabelProvider_1.ETradeChartLabelFormat; } });\r\nvar SmartDateLabelProvider_2 = require(\"./Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider\");\r\nObject.defineProperty(exports, \"SmartDateLabelProvider\", { enumerable: true, get: function () { return SmartDateLabelProvider_2.SmartDateLabelProvider; } });\r\nvar TextLabelProvider_1 = require(\"./Charting/Visuals/Axis/LabelProvider/TextLabelProvider\");\r\nObject.defineProperty(exports, \"TextLabelProvider\", { enumerable: true, get: function () { return TextLabelProvider_1.TextLabelProvider; } });\r\nvar TextLabelProvider_2 = require(\"./Charting/Visuals/Axis/LabelProvider/TextLabelProvider\");\r\nObject.defineProperty(exports, \"wrapText\", { enumerable: true, get: function () { return TextLabelProvider_2.wrapText; } });\r\nvar createNativeRect_1 = require(\"./Charting/Visuals/Helpers/createNativeRect\");\r\nObject.defineProperty(exports, \"createNativeRect\", { enumerable: true, get: function () { return createNativeRect_1.createNativeRect; } });\r\nvar createPen_1 = require(\"./Charting/Visuals/Helpers/createPen\");\r\nObject.defineProperty(exports, \"createSCRTPen\", { enumerable: true, get: function () { return createPen_1.createSCRTPen; } });\r\nvar createSolidBrush_1 = require(\"./Charting/Visuals/Helpers/createSolidBrush\");\r\nObject.defineProperty(exports, \"createSolidBrush\", { enumerable: true, get: function () { return createSolidBrush_1.createSolidBrush; } });\r\nvar drawBorder_1 = require(\"./Charting/Visuals/Helpers/drawBorder\");\r\nObject.defineProperty(exports, \"drawBorder\", { enumerable: true, get: function () { return drawBorder_1.drawBorder; } });\r\nvar drawLabel_1 = require(\"./Charting/Visuals/Helpers/drawLabel\");\r\nObject.defineProperty(exports, \"drawModifiersAxisLabel\", { enumerable: true, get: function () { return drawLabel_1.drawModifiersAxisLabel; } });\r\nvar drawLabel_2 = require(\"./Charting/Visuals/Helpers/drawLabel\");\r\nObject.defineProperty(exports, \"drawLineAnnotation\", { enumerable: true, get: function () { return drawLabel_2.drawLineAnnotation; } });\r\nvar drawLabel_3 = require(\"./Charting/Visuals/Helpers/drawLabel\");\r\nObject.defineProperty(exports, \"drawAxisMarkerAnnotation\", { enumerable: true, get: function () { return drawLabel_3.drawAxisMarkerAnnotation; } });\r\nvar drawLabel_4 = require(\"./Charting/Visuals/Helpers/drawLabel\");\r\nObject.defineProperty(exports, \"getLabelCoordinates\", { enumerable: true, get: function () { return drawLabel_4.getLabelCoordinates; } });\r\nvar NativeObject_1 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"FontKey\", { enumerable: true, get: function () { return NativeObject_1.FontKey; } });\r\nvar NativeObject_2 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"deleteCache\", { enumerable: true, get: function () { return NativeObject_2.deleteCache; } });\r\nvar NativeObject_3 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"freeCache\", { enumerable: true, get: function () { return NativeObject_3.freeCache; } });\r\nvar NativeObject_4 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"getVectorRectVertex\", { enumerable: true, get: function () { return NativeObject_4.getVectorRectVertex; } });\r\nvar NativeObject_5 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"getVectorColorVertex\", { enumerable: true, get: function () { return NativeObject_5.getVectorColorVertex; } });\r\nvar NativeObject_6 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"getVertex\", { enumerable: true, get: function () { return NativeObject_6.getVertex; } });\r\nvar NativeObject_7 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"getTextBounds\", { enumerable: true, get: function () { return NativeObject_7.getTextBounds; } });\r\nvar NativeObject_8 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"getNativeRect\", { enumerable: true, get: function () { return NativeObject_8.getNativeRect; } });\r\nvar NativeObject_9 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"getVector4\", { enumerable: true, get: function () { return NativeObject_9.getVector4; } });\r\nvar NativeObject_10 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"getFontKey\", { enumerable: true, get: function () { return NativeObject_10.getFontKey; } });\r\nvar NativeObject_11 = require(\"./Charting/Visuals/Helpers/NativeObject\");\r\nObject.defineProperty(exports, \"getAllFontKeys\", { enumerable: true, get: function () { return NativeObject_11.getAllFontKeys; } });\r\nvar ManualLegend_1 = require(\"./Charting/Visuals/Legend/ManualLegend\");\r\nObject.defineProperty(exports, \"ManualLegend\", { enumerable: true, get: function () { return ManualLegend_1.ManualLegend; } });\r\nvar SciChartLegend_1 = require(\"./Charting/Visuals/Legend/SciChartLegend\");\r\nObject.defineProperty(exports, \"SciChartLegend\", { enumerable: true, get: function () { return SciChartLegend_1.SciChartLegend; } });\r\nvar SciChartLegendBase_1 = require(\"./Charting/Visuals/Legend/SciChartLegendBase\");\r\nObject.defineProperty(exports, \"ELegendOrientation\", { enumerable: true, get: function () { return SciChartLegendBase_1.ELegendOrientation; } });\r\nvar SciChartLegendBase_2 = require(\"./Charting/Visuals/Legend/SciChartLegendBase\");\r\nObject.defineProperty(exports, \"ELegendPlacement\", { enumerable: true, get: function () { return SciChartLegendBase_2.ELegendPlacement; } });\r\nvar SciChartLegendBase_3 = require(\"./Charting/Visuals/Legend/SciChartLegendBase\");\r\nObject.defineProperty(exports, \"ELegendType\", { enumerable: true, get: function () { return SciChartLegendBase_3.ELegendType; } });\r\nvar SciChartLegendBase_4 = require(\"./Charting/Visuals/Legend/SciChartLegendBase\");\r\nObject.defineProperty(exports, \"SciChartLegendBase\", { enumerable: true, get: function () { return SciChartLegendBase_4.SciChartLegendBase; } });\r\nvar SciChartLegendBase_5 = require(\"./Charting/Visuals/Legend/SciChartLegendBase\");\r\nObject.defineProperty(exports, \"getLegendItemHtml\", { enumerable: true, get: function () { return SciChartLegendBase_5.getLegendItemHtml; } });\r\nvar SciChartLegendBase_6 = require(\"./Charting/Visuals/Legend/SciChartLegendBase\");\r\nObject.defineProperty(exports, \"getLegendContainerHtml\", { enumerable: true, get: function () { return SciChartLegendBase_6.getLegendContainerHtml; } });\r\nvar SciChartPieLegend_1 = require(\"./Charting/Visuals/Legend/SciChartPieLegend\");\r\nObject.defineProperty(exports, \"SciChartPieLegend\", { enumerable: true, get: function () { return SciChartPieLegend_1.SciChartPieLegend; } });\r\nvar BasePointMarker_1 = require(\"./Charting/Visuals/PointMarkers/BasePointMarker\");\r\nObject.defineProperty(exports, \"BasePointMarker\", { enumerable: true, get: function () { return BasePointMarker_1.BasePointMarker; } });\r\nvar CrossPointMarker_1 = require(\"./Charting/Visuals/PointMarkers/CrossPointMarker\");\r\nObject.defineProperty(exports, \"CrossPointMarker\", { enumerable: true, get: function () { return CrossPointMarker_1.CrossPointMarker; } });\r\nvar EllipsePointMarker_1 = require(\"./Charting/Visuals/PointMarkers/EllipsePointMarker\");\r\nObject.defineProperty(exports, \"EllipsePointMarker\", { enumerable: true, get: function () { return EllipsePointMarker_1.EllipsePointMarker; } });\r\nvar SpritePointMarker_1 = require(\"./Charting/Visuals/PointMarkers/SpritePointMarker\");\r\nObject.defineProperty(exports, \"SpritePointMarker\", { enumerable: true, get: function () { return SpritePointMarker_1.SpritePointMarker; } });\r\nvar SquarePointMarker_1 = require(\"./Charting/Visuals/PointMarkers/SquarePointMarker\");\r\nObject.defineProperty(exports, \"SquarePointMarker\", { enumerable: true, get: function () { return SquarePointMarker_1.SquarePointMarker; } });\r\nvar TrianglePointMarker_1 = require(\"./Charting/Visuals/PointMarkers/TrianglePointMarker\");\r\nObject.defineProperty(exports, \"TrianglePointMarker\", { enumerable: true, get: function () { return TrianglePointMarker_1.TrianglePointMarker; } });\r\nvar XPointMarker_1 = require(\"./Charting/Visuals/PointMarkers/XPointMarker\");\r\nObject.defineProperty(exports, \"XPointMarker\", { enumerable: true, get: function () { return XPointMarker_1.XPointMarker; } });\r\nvar BaseBandRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/BaseBandRenderableSeries\");\r\nObject.defineProperty(exports, \"BaseBandRenderableSeries\", { enumerable: true, get: function () { return BaseBandRenderableSeries_1.BaseBandRenderableSeries; } });\r\nvar BaseHeatmapRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/BaseHeatmapRenderableSeries\");\r\nObject.defineProperty(exports, \"BaseHeatmapRenderableSeries\", { enumerable: true, get: function () { return BaseHeatmapRenderableSeries_1.BaseHeatmapRenderableSeries; } });\r\nvar BaseLineRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/BaseLineRenderableSeries\");\r\nObject.defineProperty(exports, \"ELineType\", { enumerable: true, get: function () { return BaseLineRenderableSeries_1.ELineType; } });\r\nvar BaseLineRenderableSeries_2 = require(\"./Charting/Visuals/RenderableSeries/BaseLineRenderableSeries\");\r\nObject.defineProperty(exports, \"BaseLineRenderableSeries\", { enumerable: true, get: function () { return BaseLineRenderableSeries_2.BaseLineRenderableSeries; } });\r\nvar BaseMountainRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries\");\r\nObject.defineProperty(exports, \"BaseMountainRenderableSeries\", { enumerable: true, get: function () { return BaseMountainRenderableSeries_1.BaseMountainRenderableSeries; } });\r\nvar BaseOhlcRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries\");\r\nObject.defineProperty(exports, \"BaseOhlcRenderableSeries\", { enumerable: true, get: function () { return BaseOhlcRenderableSeries_1.BaseOhlcRenderableSeries; } });\r\nvar BaseRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/BaseRenderableSeries\");\r\nObject.defineProperty(exports, \"BaseRenderableSeries\", { enumerable: true, get: function () { return BaseRenderableSeries_1.BaseRenderableSeries; } });\r\nvar BaseStackedCollection_1 = require(\"./Charting/Visuals/RenderableSeries/BaseStackedCollection\");\r\nObject.defineProperty(exports, \"BaseStackedCollection\", { enumerable: true, get: function () { return BaseStackedCollection_1.BaseStackedCollection; } });\r\nvar BaseStackedRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries\");\r\nObject.defineProperty(exports, \"BaseStackedRenderableSeries\", { enumerable: true, get: function () { return BaseStackedRenderableSeries_1.BaseStackedRenderableSeries; } });\r\nvar FastBandRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastBandRenderableSeries\");\r\nObject.defineProperty(exports, \"FastBandRenderableSeries\", { enumerable: true, get: function () { return FastBandRenderableSeries_1.FastBandRenderableSeries; } });\r\nvar FastBubbleRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries\");\r\nObject.defineProperty(exports, \"FastBubbleRenderableSeries\", { enumerable: true, get: function () { return FastBubbleRenderableSeries_1.FastBubbleRenderableSeries; } });\r\nvar FastCandlestickRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastCandlestickRenderableSeries\");\r\nObject.defineProperty(exports, \"FastCandlestickRenderableSeries\", { enumerable: true, get: function () { return FastCandlestickRenderableSeries_1.FastCandlestickRenderableSeries; } });\r\nvar FastColumnRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastColumnRenderableSeries\");\r\nObject.defineProperty(exports, \"FastColumnRenderableSeries\", { enumerable: true, get: function () { return FastColumnRenderableSeries_1.FastColumnRenderableSeries; } });\r\nvar FastColumnRenderableSeries_2 = require(\"./Charting/Visuals/RenderableSeries/FastColumnRenderableSeries\");\r\nObject.defineProperty(exports, \"getXRange\", { enumerable: true, get: function () { return FastColumnRenderableSeries_2.getXRange; } });\r\nvar FastErrorBarsRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastErrorBarsRenderableSeries\");\r\nObject.defineProperty(exports, \"FastErrorBarsRenderableSeries\", { enumerable: true, get: function () { return FastErrorBarsRenderableSeries_1.FastErrorBarsRenderableSeries; } });\r\nvar FastImpulseRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastImpulseRenderableSeries\");\r\nObject.defineProperty(exports, \"FastImpulseRenderableSeries\", { enumerable: true, get: function () { return FastImpulseRenderableSeries_1.FastImpulseRenderableSeries; } });\r\nvar FastLineRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastLineRenderableSeries\");\r\nObject.defineProperty(exports, \"FastLineRenderableSeries\", { enumerable: true, get: function () { return FastLineRenderableSeries_1.FastLineRenderableSeries; } });\r\nvar FastMountainRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastMountainRenderableSeries\");\r\nObject.defineProperty(exports, \"FastMountainRenderableSeries\", { enumerable: true, get: function () { return FastMountainRenderableSeries_1.FastMountainRenderableSeries; } });\r\nvar FastOhlcRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastOhlcRenderableSeries\");\r\nObject.defineProperty(exports, \"FastOhlcRenderableSeries\", { enumerable: true, get: function () { return FastOhlcRenderableSeries_1.FastOhlcRenderableSeries; } });\r\nvar FastTextRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/FastTextRenderableSeries\");\r\nObject.defineProperty(exports, \"FastTextRenderableSeries\", { enumerable: true, get: function () { return FastTextRenderableSeries_1.FastTextRenderableSeries; } });\r\nvar GlowEffect_1 = require(\"./Charting/Visuals/RenderableSeries/GlowEffect\");\r\nObject.defineProperty(exports, \"GlowEffect\", { enumerable: true, get: function () { return GlowEffect_1.GlowEffect; } });\r\nvar HeatmapColorMap_1 = require(\"./Charting/Visuals/RenderableSeries/HeatmapColorMap\");\r\nObject.defineProperty(exports, \"HeatmapColorMap\", { enumerable: true, get: function () { return HeatmapColorMap_1.HeatmapColorMap; } });\r\nvar HoveredChangedArgs_1 = require(\"./Charting/Visuals/RenderableSeries/HoveredChangedArgs\");\r\nObject.defineProperty(exports, \"HoveredChangedArgs\", { enumerable: true, get: function () { return HoveredChangedArgs_1.HoveredChangedArgs; } });\r\nvar NonUniformHeatmapRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/NonUniformHeatmapRenderableSeries\");\r\nObject.defineProperty(exports, \"NonUniformHeatmapRenderableSeries\", { enumerable: true, get: function () { return NonUniformHeatmapRenderableSeries_1.NonUniformHeatmapRenderableSeries; } });\r\nvar SelectionChangedArgs_1 = require(\"./Charting/Visuals/RenderableSeries/SelectionChangedArgs\");\r\nObject.defineProperty(exports, \"SelectionChangedArgs\", { enumerable: true, get: function () { return SelectionChangedArgs_1.SelectionChangedArgs; } });\r\nvar SeriesHoveredArgs_1 = require(\"./Charting/Visuals/RenderableSeries/SeriesHoveredArgs\");\r\nObject.defineProperty(exports, \"SeriesHoveredArgs\", { enumerable: true, get: function () { return SeriesHoveredArgs_1.SeriesHoveredArgs; } });\r\nvar SeriesSelectedArgs_1 = require(\"./Charting/Visuals/RenderableSeries/SeriesSelectedArgs\");\r\nObject.defineProperty(exports, \"SeriesSelectedArgs\", { enumerable: true, get: function () { return SeriesSelectedArgs_1.SeriesSelectedArgs; } });\r\nvar SeriesVisibleChangedArgs_1 = require(\"./Charting/Visuals/RenderableSeries/SeriesVisibleChangedArgs\");\r\nObject.defineProperty(exports, \"SeriesVisibleChangedArgs\", { enumerable: true, get: function () { return SeriesVisibleChangedArgs_1.SeriesVisibleChangedArgs; } });\r\nvar ShaderEffect_1 = require(\"./Charting/Visuals/RenderableSeries/ShaderEffect\");\r\nObject.defineProperty(exports, \"ShaderEffect\", { enumerable: true, get: function () { return ShaderEffect_1.ShaderEffect; } });\r\nvar ShadowEffect_1 = require(\"./Charting/Visuals/RenderableSeries/ShadowEffect\");\r\nObject.defineProperty(exports, \"ShadowEffect\", { enumerable: true, get: function () { return ShadowEffect_1.ShadowEffect; } });\r\nvar SmoothStackedMountainRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/SmoothStackedMountainRenderableSeries\");\r\nObject.defineProperty(exports, \"SmoothStackedMountainRenderableSeries\", { enumerable: true, get: function () { return SmoothStackedMountainRenderableSeries_1.SmoothStackedMountainRenderableSeries; } });\r\nvar SplineBandRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/SplineBandRenderableSeries\");\r\nObject.defineProperty(exports, \"SplineBandRenderableSeries\", { enumerable: true, get: function () { return SplineBandRenderableSeries_1.SplineBandRenderableSeries; } });\r\nvar SplineLineRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/SplineLineRenderableSeries\");\r\nObject.defineProperty(exports, \"SplineLineRenderableSeries\", { enumerable: true, get: function () { return SplineLineRenderableSeries_1.SplineLineRenderableSeries; } });\r\nvar SplineMountainRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries\");\r\nObject.defineProperty(exports, \"SplineMountainRenderableSeries\", { enumerable: true, get: function () { return SplineMountainRenderableSeries_1.SplineMountainRenderableSeries; } });\r\nvar StackedColumnCollection_1 = require(\"./Charting/Visuals/RenderableSeries/StackedColumnCollection\");\r\nObject.defineProperty(exports, \"StackedColumnCollection\", { enumerable: true, get: function () { return StackedColumnCollection_1.StackedColumnCollection; } });\r\nvar StackedColumnRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries\");\r\nObject.defineProperty(exports, \"StackedColumnRenderableSeries\", { enumerable: true, get: function () { return StackedColumnRenderableSeries_1.StackedColumnRenderableSeries; } });\r\nvar StackedMountainCollection_1 = require(\"./Charting/Visuals/RenderableSeries/StackedMountainCollection\");\r\nObject.defineProperty(exports, \"StackedMountainCollection\", { enumerable: true, get: function () { return StackedMountainCollection_1.StackedMountainCollection; } });\r\nvar StackedMountainRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries\");\r\nObject.defineProperty(exports, \"StackedMountainRenderableSeries\", { enumerable: true, get: function () { return StackedMountainRenderableSeries_1.StackedMountainRenderableSeries; } });\r\nvar UniformContoursRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries\");\r\nObject.defineProperty(exports, \"EContourColorMapMode\", { enumerable: true, get: function () { return UniformContoursRenderableSeries_1.EContourColorMapMode; } });\r\nvar UniformContoursRenderableSeries_2 = require(\"./Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries\");\r\nObject.defineProperty(exports, \"UniformContoursRenderableSeries\", { enumerable: true, get: function () { return UniformContoursRenderableSeries_2.UniformContoursRenderableSeries; } });\r\nvar UniformHeatmapRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries\");\r\nObject.defineProperty(exports, \"UniformHeatmapRenderableSeries\", { enumerable: true, get: function () { return UniformHeatmapRenderableSeries_1.UniformHeatmapRenderableSeries; } });\r\nvar XyScatterRenderableSeries_1 = require(\"./Charting/Visuals/RenderableSeries/XyScatterRenderableSeries\");\r\nObject.defineProperty(exports, \"XyScatterRenderableSeries\", { enumerable: true, get: function () { return XyScatterRenderableSeries_1.XyScatterRenderableSeries; } });\r\nvar animationHelpers_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/animationHelpers\");\r\nObject.defineProperty(exports, \"animationHelpers\", { enumerable: true, get: function () { return animationHelpers_1.animationHelpers; } });\r\nvar BandAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/BandAnimation\");\r\nObject.defineProperty(exports, \"BandAnimation\", { enumerable: true, get: function () { return BandAnimation_1.BandAnimation; } });\r\nvar BandAnimationStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/BandAnimationStyle\");\r\nObject.defineProperty(exports, \"BandAnimationStyle\", { enumerable: true, get: function () { return BandAnimationStyle_1.BandAnimationStyle; } });\r\nvar BaseAnimationStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/BaseAnimationStyle\");\r\nObject.defineProperty(exports, \"BaseAnimationStyle\", { enumerable: true, get: function () { return BaseAnimationStyle_1.BaseAnimationStyle; } });\r\nvar BasePointMarkerStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/BasePointMarkerStyle\");\r\nObject.defineProperty(exports, \"BasePointMarkerStyle\", { enumerable: true, get: function () { return BasePointMarkerStyle_1.BasePointMarkerStyle; } });\r\nvar BubbleAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/BubbleAnimation\");\r\nObject.defineProperty(exports, \"BubbleAnimation\", { enumerable: true, get: function () { return BubbleAnimation_1.BubbleAnimation; } });\r\nvar CandlestickAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/CandlestickAnimation\");\r\nObject.defineProperty(exports, \"CandlestickAnimation\", { enumerable: true, get: function () { return CandlestickAnimation_1.CandlestickAnimation; } });\r\nvar CandlestickAnimationStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/CandlestickAnimationStyle\");\r\nObject.defineProperty(exports, \"CandlestickAnimationStyle\", { enumerable: true, get: function () { return CandlestickAnimationStyle_1.CandlestickAnimationStyle; } });\r\nvar ColumnAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/ColumnAnimation\");\r\nObject.defineProperty(exports, \"ColumnAnimation\", { enumerable: true, get: function () { return ColumnAnimation_1.ColumnAnimation; } });\r\nvar ColumnAnimationStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/ColumnAnimationStyle\");\r\nObject.defineProperty(exports, \"ColumnAnimationStyle\", { enumerable: true, get: function () { return ColumnAnimationStyle_1.ColumnAnimationStyle; } });\r\nvar CustomPointMarkerStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/CustomPointMarkerStyle\");\r\nObject.defineProperty(exports, \"CustomPointMarkerStyle\", { enumerable: true, get: function () { return CustomPointMarkerStyle_1.CustomPointMarkerStyle; } });\r\nvar FadeAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/FadeAnimation\");\r\nObject.defineProperty(exports, \"FadeAnimation\", { enumerable: true, get: function () { return FadeAnimation_1.FadeAnimation; } });\r\nvar LineAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/LineAnimation\");\r\nObject.defineProperty(exports, \"LineAnimation\", { enumerable: true, get: function () { return LineAnimation_1.LineAnimation; } });\r\nvar MountainAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/MountainAnimation\");\r\nObject.defineProperty(exports, \"MountainAnimation\", { enumerable: true, get: function () { return MountainAnimation_1.MountainAnimation; } });\r\nvar MountainAnimationStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/MountainAnimationStyle\");\r\nObject.defineProperty(exports, \"MountainAnimationStyle\", { enumerable: true, get: function () { return MountainAnimationStyle_1.MountainAnimationStyle; } });\r\nvar OhlcAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/OhlcAnimation\");\r\nObject.defineProperty(exports, \"OhlcAnimation\", { enumerable: true, get: function () { return OhlcAnimation_1.OhlcAnimation; } });\r\nvar OhlcAnimationStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/OhlcAnimationStyle\");\r\nObject.defineProperty(exports, \"OhlcAnimationStyle\", { enumerable: true, get: function () { return OhlcAnimationStyle_1.OhlcAnimationStyle; } });\r\nvar PointMarkerStyle_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/PointMarkerStyle\");\r\nObject.defineProperty(exports, \"PointMarkerStyle\", { enumerable: true, get: function () { return PointMarkerStyle_1.PointMarkerStyle; } });\r\nvar ScaleAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/ScaleAnimation\");\r\nObject.defineProperty(exports, \"ScaleAnimation\", { enumerable: true, get: function () { return ScaleAnimation_1.ScaleAnimation; } });\r\nvar ScatterAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/ScatterAnimation\");\r\nObject.defineProperty(exports, \"ScatterAnimation\", { enumerable: true, get: function () { return ScatterAnimation_1.ScatterAnimation; } });\r\nvar SeriesAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/SeriesAnimation\");\r\nObject.defineProperty(exports, \"SeriesAnimation\", { enumerable: true, get: function () { return SeriesAnimation_1.SeriesAnimation; } });\r\nvar SweepAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/SweepAnimation\");\r\nObject.defineProperty(exports, \"SweepAnimation\", { enumerable: true, get: function () { return SweepAnimation_1.SweepAnimation; } });\r\nvar WaveAnimation_1 = require(\"./Charting/Visuals/RenderableSeries/Animations/WaveAnimation\");\r\nObject.defineProperty(exports, \"WaveAnimation\", { enumerable: true, get: function () { return WaveAnimation_1.WaveAnimation; } });\r\nvar BandSeriesDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/BandSeriesDataLabelProvider\");\r\nObject.defineProperty(exports, \"BandSeriesDataLabelProvider\", { enumerable: true, get: function () { return BandSeriesDataLabelProvider_1.BandSeriesDataLabelProvider; } });\r\nvar BaseDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/BaseDataLabelProvider\");\r\nObject.defineProperty(exports, \"BaseDataLabelProvider\", { enumerable: true, get: function () { return BaseDataLabelProvider_1.BaseDataLabelProvider; } });\r\nvar BubbleSeriesDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/BubbleSeriesDataLabelProvider\");\r\nObject.defineProperty(exports, \"BubbleSeriesDataLabelProvider\", { enumerable: true, get: function () { return BubbleSeriesDataLabelProvider_1.BubbleSeriesDataLabelProvider; } });\r\nvar ColumnSeriesDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/ColumnSeriesDataLabelProvider\");\r\nObject.defineProperty(exports, \"EColumnDataLabelPosition\", { enumerable: true, get: function () { return ColumnSeriesDataLabelProvider_1.EColumnDataLabelPosition; } });\r\nvar ColumnSeriesDataLabelProvider_2 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/ColumnSeriesDataLabelProvider\");\r\nObject.defineProperty(exports, \"ColumnSeriesDataLabelProvider\", { enumerable: true, get: function () { return ColumnSeriesDataLabelProvider_2.ColumnSeriesDataLabelProvider; } });\r\nvar ContoursDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/ContoursDataLabelProvider\");\r\nObject.defineProperty(exports, \"ContoursDataLabelProvider\", { enumerable: true, get: function () { return ContoursDataLabelProvider_1.ContoursDataLabelProvider; } });\r\nvar DataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider\");\r\nObject.defineProperty(exports, \"DataLabelProvider\", { enumerable: true, get: function () { return DataLabelProvider_1.DataLabelProvider; } });\r\nvar DataLabelState_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/DataLabelState\");\r\nObject.defineProperty(exports, \"DataLabelState\", { enumerable: true, get: function () { return DataLabelState_1.DataLabelState; } });\r\nvar HeatMapDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/HeatMapDataLabelProvider\");\r\nObject.defineProperty(exports, \"HeatMapDataLabelProvider\", { enumerable: true, get: function () { return HeatMapDataLabelProvider_1.HeatMapDataLabelProvider; } });\r\nvar LineSeriesDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/LineSeriesDataLabelProvider\");\r\nObject.defineProperty(exports, \"LineSeriesDataLabelProvider\", { enumerable: true, get: function () { return LineSeriesDataLabelProvider_1.LineSeriesDataLabelProvider; } });\r\nvar NonUniformHeatmapDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/NonUniformHeatmapDataLabelProvider\");\r\nObject.defineProperty(exports, \"NonUniformHeatMapDataLabelProvider\", { enumerable: true, get: function () { return NonUniformHeatmapDataLabelProvider_1.NonUniformHeatMapDataLabelProvider; } });\r\nvar StackedCollectionDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/StackedCollectionDataLabelProvider\");\r\nObject.defineProperty(exports, \"StackedCollectionDataLabelProvider\", { enumerable: true, get: function () { return StackedCollectionDataLabelProvider_1.StackedCollectionDataLabelProvider; } });\r\nvar StackedColumnSeriesDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/StackedColumnSeriesDataLabelProvider\");\r\nObject.defineProperty(exports, \"StackedColumnSeriesDataLabelProvider\", { enumerable: true, get: function () { return StackedColumnSeriesDataLabelProvider_1.StackedColumnSeriesDataLabelProvider; } });\r\nvar TextDataLabelProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DataLabels/TextDataLabelProvider\");\r\nObject.defineProperty(exports, \"TextDataLabelProvider\", { enumerable: true, get: function () { return TextDataLabelProvider_1.TextDataLabelProvider; } });\r\nvar BandSeriesDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"BandSeriesDrawingProvider\", { enumerable: true, get: function () { return BandSeriesDrawingProvider_1.BandSeriesDrawingProvider; } });\r\nvar BaseSeriesDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"BaseSeriesDrawingProvider\", { enumerable: true, get: function () { return BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider; } });\r\nvar BubbleSeriesDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"BubbleSeriesDrawingProvider\", { enumerable: true, get: function () { return BubbleSeriesDrawingProvider_1.BubbleSeriesDrawingProvider; } });\r\nvar ColumnSeriesDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"ColumnSeriesDrawingProvider\", { enumerable: true, get: function () { return ColumnSeriesDrawingProvider_1.ColumnSeriesDrawingProvider; } });\r\nvar ErrorSeriesDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/ErrorSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"ErrorSeriesDrawingProvider\", { enumerable: true, get: function () { return ErrorSeriesDrawingProvider_1.ErrorSeriesDrawingProvider; } });\r\nvar HeatmapHelpers_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers\");\r\nObject.defineProperty(exports, \"getColorDataForTexture\", { enumerable: true, get: function () { return HeatmapHelpers_1.getColorDataForTexture; } });\r\nvar HeatmapHelpers_2 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers\");\r\nObject.defineProperty(exports, \"getColor\", { enumerable: true, get: function () { return HeatmapHelpers_2.getColor; } });\r\nvar HeatmapHelpers_3 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers\");\r\nObject.defineProperty(exports, \"createColorMap\", { enumerable: true, get: function () { return HeatmapHelpers_3.createColorMap; } });\r\nvar HeatmapHelpers_4 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers\");\r\nObject.defineProperty(exports, \"calculateOffsets\", { enumerable: true, get: function () { return HeatmapHelpers_4.calculateOffsets; } });\r\nvar HeatmapHelpers_5 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers\");\r\nObject.defineProperty(exports, \"calculateCellCoordinates\", { enumerable: true, get: function () { return HeatmapHelpers_5.calculateCellCoordinates; } });\r\nvar HeatmapHelpers_6 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers\");\r\nObject.defineProperty(exports, \"calculateHeatmapTexture\", { enumerable: true, get: function () { return HeatmapHelpers_6.calculateHeatmapTexture; } });\r\nvar LineSeriesDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"LineSeriesDrawingProvider\", { enumerable: true, get: function () { return LineSeriesDrawingProvider_1.LineSeriesDrawingProvider; } });\r\nvar MountainSeriesDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"MountainSeriesDrawingProvider\", { enumerable: true, get: function () { return MountainSeriesDrawingProvider_1.MountainSeriesDrawingProvider; } });\r\nvar NonUniformHeatmapDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/NonUniformHeatmapDrawingProvider\");\r\nObject.defineProperty(exports, \"NonUniformHeatmapDrawingProvider\", { enumerable: true, get: function () { return NonUniformHeatmapDrawingProvider_1.NonUniformHeatmapDrawingProvider; } });\r\nvar OhlcSeriesDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"EOhlcDrawingMode\", { enumerable: true, get: function () { return OhlcSeriesDrawingProvider_1.EOhlcDrawingMode; } });\r\nvar OhlcSeriesDrawingProvider_2 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider\");\r\nObject.defineProperty(exports, \"OhlcSeriesDrawingProvider\", { enumerable: true, get: function () { return OhlcSeriesDrawingProvider_2.OhlcSeriesDrawingProvider; } });\r\nvar PointMarkerDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider\");\r\nObject.defineProperty(exports, \"PointMarkerDrawingProvider\", { enumerable: true, get: function () { return PointMarkerDrawingProvider_1.PointMarkerDrawingProvider; } });\r\nvar UniformContoursDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/UniformContoursDrawingProvider\");\r\nObject.defineProperty(exports, \"UniformContoursDrawingProvider\", { enumerable: true, get: function () { return UniformContoursDrawingProvider_1.UniformContoursDrawingProvider; } });\r\nvar UniformHeatmapDrawingProvider_1 = require(\"./Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider\");\r\nObject.defineProperty(exports, \"UniformHeatmapDrawingProvider\", { enumerable: true, get: function () { return UniformHeatmapDrawingProvider_1.UniformHeatmapDrawingProvider; } });\r\nvar BandSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/BandSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"BandSeriesHitTestProvider\", { enumerable: true, get: function () { return BandSeriesHitTestProvider_1.BandSeriesHitTestProvider; } });\r\nvar BaseHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/BaseHitTestProvider\");\r\nObject.defineProperty(exports, \"BaseHitTestProvider\", { enumerable: true, get: function () { return BaseHitTestProvider_1.BaseHitTestProvider; } });\r\nvar BubbleSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"BubbleSeriesHitTestProvider\", { enumerable: true, get: function () { return BubbleSeriesHitTestProvider_1.BubbleSeriesHitTestProvider; } });\r\nvar ColumnSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/ColumnSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"ColumnSeriesHitTestProvider\", { enumerable: true, get: function () { return ColumnSeriesHitTestProvider_1.ColumnSeriesHitTestProvider; } });\r\nvar ErrorSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/ErrorSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"ErrorSeriesHitTestProvider\", { enumerable: true, get: function () { return ErrorSeriesHitTestProvider_1.ErrorSeriesHitTestProvider; } });\r\nvar hitTestHelpers_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers\");\r\nObject.defineProperty(exports, \"hitTestHelpers\", { enumerable: true, get: function () { return hitTestHelpers_1.hitTestHelpers; } });\r\nvar HitTestInfo_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/HitTestInfo\");\r\nObject.defineProperty(exports, \"HitTestInfo\", { enumerable: true, get: function () { return HitTestInfo_1.HitTestInfo; } });\r\nvar ImpulseSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/ImpulseSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"ImpulseSeriesHitTestProvider\", { enumerable: true, get: function () { return ImpulseSeriesHitTestProvider_1.ImpulseSeriesHitTestProvider; } });\r\nvar LineSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/LineSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"LineSeriesHitTestProvider\", { enumerable: true, get: function () { return LineSeriesHitTestProvider_1.LineSeriesHitTestProvider; } });\r\nvar MountainSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/MountainSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"MountainSeriesHitTestProvider\", { enumerable: true, get: function () { return MountainSeriesHitTestProvider_1.MountainSeriesHitTestProvider; } });\r\nvar NonUniformHeatmapHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/NonUniformHeatmapHitTestProvider\");\r\nObject.defineProperty(exports, \"NonUniformHeatmapHitTestProvider\", { enumerable: true, get: function () { return NonUniformHeatmapHitTestProvider_1.NonUniformHeatmapHitTestProvider; } });\r\nvar OhlcSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/OhlcSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"OhlcSeriesHitTestProvider\", { enumerable: true, get: function () { return OhlcSeriesHitTestProvider_1.OhlcSeriesHitTestProvider; } });\r\nvar ScatterSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/ScatterSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"ScatterSeriesHitTestProvider\", { enumerable: true, get: function () { return ScatterSeriesHitTestProvider_1.ScatterSeriesHitTestProvider; } });\r\nvar StackedColumnSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/StackedColumnSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"StackedColumnSeriesHitTestProvider\", { enumerable: true, get: function () { return StackedColumnSeriesHitTestProvider_1.StackedColumnSeriesHitTestProvider; } });\r\nvar StackedMountainSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/StackedMountainSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"StackedMountainSeriesHitTestProvider\", { enumerable: true, get: function () { return StackedMountainSeriesHitTestProvider_1.StackedMountainSeriesHitTestProvider; } });\r\nvar TextSeriesHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/TextSeriesHitTestProvider\");\r\nObject.defineProperty(exports, \"TextSeriesHitTestProvider\", { enumerable: true, get: function () { return TextSeriesHitTestProvider_1.TextSeriesHitTestProvider; } });\r\nvar UniformHeatmapHitTestProvider_1 = require(\"./Charting/Visuals/RenderableSeries/HitTest/UniformHeatmapHitTestProvider\");\r\nObject.defineProperty(exports, \"UniformHeatmapHitTestProvider\", { enumerable: true, get: function () { return UniformHeatmapHitTestProvider_1.UniformHeatmapHitTestProvider; } });\r\nvar BaseRenderDataTransform_1 = require(\"./Charting/Visuals/RenderableSeries/RenderDataTransforms/BaseRenderDataTransform\");\r\nObject.defineProperty(exports, \"BaseRenderDataTransform\", { enumerable: true, get: function () { return BaseRenderDataTransform_1.BaseRenderDataTransform; } });\r\nvar BezierRenderDataTransform_1 = require(\"./Charting/Visuals/RenderableSeries/RenderDataTransforms/BezierRenderDataTransform\");\r\nObject.defineProperty(exports, \"bezierTransform\", { enumerable: true, get: function () { return BezierRenderDataTransform_1.bezierTransform; } });\r\nvar BezierRenderDataTransform_2 = require(\"./Charting/Visuals/RenderableSeries/RenderDataTransforms/BezierRenderDataTransform\");\r\nObject.defineProperty(exports, \"BezierRenderDataTransform\", { enumerable: true, get: function () { return BezierRenderDataTransform_2.BezierRenderDataTransform; } });\r\nvar BezierRenderDataTransform_3 = require(\"./Charting/Visuals/RenderableSeries/RenderDataTransforms/BezierRenderDataTransform\");\r\nObject.defineProperty(exports, \"XyyBezierRenderDataTransform\", { enumerable: true, get: function () { return BezierRenderDataTransform_3.XyyBezierRenderDataTransform; } });\r\nvar BezierRenderDataTransform_4 = require(\"./Charting/Visuals/RenderableSeries/RenderDataTransforms/BezierRenderDataTransform\");\r\nObject.defineProperty(exports, \"SmoothStackedRenderDataTransform\", { enumerable: true, get: function () { return BezierRenderDataTransform_4.SmoothStackedRenderDataTransform; } });\r\nvar SplineRenderDataTransform_1 = require(\"./Charting/Visuals/RenderableSeries/RenderDataTransforms/SplineRenderDataTransform\");\r\nObject.defineProperty(exports, \"SplineRenderDataTransform\", { enumerable: true, get: function () { return SplineRenderDataTransform_1.SplineRenderDataTransform; } });\r\nvar XyySplineRenderDataTransform_1 = require(\"./Charting/Visuals/RenderableSeries/RenderDataTransforms/XyySplineRenderDataTransform\");\r\nObject.defineProperty(exports, \"XyySplineRenderDataTransform\", { enumerable: true, get: function () { return XyySplineRenderDataTransform_1.XyySplineRenderDataTransform; } });\r\nvar RolloverModifierRenderableSeriesProps_1 = require(\"./Charting/Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps\");\r\nObject.defineProperty(exports, \"RolloverModifierRenderableSeriesProps\", { enumerable: true, get: function () { return RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps; } });\r\nvar RubberBandSvgRect_1 = require(\"./Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect\");\r\nObject.defineProperty(exports, \"RubberBandSvgRect\", { enumerable: true, get: function () { return RubberBandSvgRect_1.RubberBandSvgRect; } });\r\nvar SciChartPieSurface_1 = require(\"./Charting/Visuals/SciChartPieSurface/SciChartPieSurface\");\r\nObject.defineProperty(exports, \"ESizingMode\", { enumerable: true, get: function () { return SciChartPieSurface_1.ESizingMode; } });\r\nvar SciChartPieSurface_2 = require(\"./Charting/Visuals/SciChartPieSurface/SciChartPieSurface\");\r\nObject.defineProperty(exports, \"EPieType\", { enumerable: true, get: function () { return SciChartPieSurface_2.EPieType; } });\r\nvar SciChartPieSurface_3 = require(\"./Charting/Visuals/SciChartPieSurface/SciChartPieSurface\");\r\nObject.defineProperty(exports, \"EPieValueMode\", { enumerable: true, get: function () { return SciChartPieSurface_3.EPieValueMode; } });\r\nvar SciChartPieSurface_4 = require(\"./Charting/Visuals/SciChartPieSurface/SciChartPieSurface\");\r\nObject.defineProperty(exports, \"SciChartPieSurface\", { enumerable: true, get: function () { return SciChartPieSurface_4.SciChartPieSurface; } });\r\nvar PieSegment_1 = require(\"./Charting/Visuals/SciChartPieSurface/PieSegment/PieSegment\");\r\nObject.defineProperty(exports, \"PieSegment\", { enumerable: true, get: function () { return PieSegment_1.PieSegment; } });\r\nvar CanvasTexture_1 = require(\"./Charting/Visuals/TextureManager/CanvasTexture\");\r\nObject.defineProperty(exports, \"CanvasTexture\", { enumerable: true, get: function () { return CanvasTexture_1.CanvasTexture; } });\r\nvar DpiHelper_1 = require(\"./Charting/Visuals/TextureManager/DpiHelper\");\r\nObject.defineProperty(exports, \"DpiHelper\", { enumerable: true, get: function () { return DpiHelper_1.DpiHelper; } });\r\nvar TextureManager_1 = require(\"./Charting/Visuals/TextureManager/TextureManager\");\r\nObject.defineProperty(exports, \"TextureManager\", { enumerable: true, get: function () { return TextureManager_1.TextureManager; } });\r\nvar TextureManager_2 = require(\"./Charting/Visuals/TextureManager/TextureManager\");\r\nObject.defineProperty(exports, \"measureTextHeight\", { enumerable: true, get: function () { return TextureManager_2.measureTextHeight; } });\r\nvar TextureManager_3 = require(\"./Charting/Visuals/TextureManager/TextureManager\");\r\nObject.defineProperty(exports, \"measureTextWidth\", { enumerable: true, get: function () { return TextureManager_3.measureTextWidth; } });\r\nvar CameraController_1 = require(\"./Charting3D/CameraController\");\r\nObject.defineProperty(exports, \"ECameraProjectionMode\", { enumerable: true, get: function () { return CameraController_1.ECameraProjectionMode; } });\r\nvar CameraController_2 = require(\"./Charting3D/CameraController\");\r\nObject.defineProperty(exports, \"CameraController\", { enumerable: true, get: function () { return CameraController_2.CameraController; } });\r\nvar Vector3_1 = require(\"./Charting3D/Vector3\");\r\nObject.defineProperty(exports, \"Vector3\", { enumerable: true, get: function () { return Vector3_1.Vector3; } });\r\nvar ChartModifierBase3D_1 = require(\"./Charting3D/ChartModifiers/ChartModifierBase3D\");\r\nObject.defineProperty(exports, \"ChartModifierBase3D\", { enumerable: true, get: function () { return ChartModifierBase3D_1.ChartModifierBase3D; } });\r\nvar CustomChartModifier3D_1 = require(\"./Charting3D/ChartModifiers/CustomChartModifier3D\");\r\nObject.defineProperty(exports, \"CustomChartModifier3D\", { enumerable: true, get: function () { return CustomChartModifier3D_1.CustomChartModifier3D; } });\r\nvar MouseWheelZoomModifier3D_1 = require(\"./Charting3D/ChartModifiers/MouseWheelZoomModifier3D\");\r\nObject.defineProperty(exports, \"MouseWheelZoomModifier3D\", { enumerable: true, get: function () { return MouseWheelZoomModifier3D_1.MouseWheelZoomModifier3D; } });\r\nvar OrbitModifier3D_1 = require(\"./Charting3D/ChartModifiers/OrbitModifier3D\");\r\nObject.defineProperty(exports, \"OrbitModifier3D\", { enumerable: true, get: function () { return OrbitModifier3D_1.OrbitModifier3D; } });\r\nvar PinchZoomModifier3D_1 = require(\"./Charting3D/ChartModifiers/PinchZoomModifier3D\");\r\nObject.defineProperty(exports, \"PinchZoomModifier3D\", { enumerable: true, get: function () { return PinchZoomModifier3D_1.PinchZoomModifier3D; } });\r\nvar ResetCamera3DModifier_1 = require(\"./Charting3D/ChartModifiers/ResetCamera3DModifier\");\r\nObject.defineProperty(exports, \"ResetCamera3DModifier\", { enumerable: true, get: function () { return ResetCamera3DModifier_1.ResetCamera3DModifier; } });\r\nvar TooltipModifier3D_1 = require(\"./Charting3D/ChartModifiers/TooltipModifier3D\");\r\nObject.defineProperty(exports, \"TooltipModifier3D\", { enumerable: true, get: function () { return TooltipModifier3D_1.TooltipModifier3D; } });\r\nvar TooltipModifier3D_2 = require(\"./Charting3D/ChartModifiers/TooltipModifier3D\");\r\nObject.defineProperty(exports, \"adjustTooltipPosition3D\", { enumerable: true, get: function () { return TooltipModifier3D_2.adjustTooltipPosition3D; } });\r\nvar BaseDataSeries3D_1 = require(\"./Charting3D/Model/DataSeries/BaseDataSeries3D\");\r\nObject.defineProperty(exports, \"EDataSeriesType3D\", { enumerable: true, get: function () { return BaseDataSeries3D_1.EDataSeriesType3D; } });\r\nvar BaseDataSeries3D_2 = require(\"./Charting3D/Model/DataSeries/BaseDataSeries3D\");\r\nObject.defineProperty(exports, \"BaseDataSeries3D\", { enumerable: true, get: function () { return BaseDataSeries3D_2.BaseDataSeries3D; } });\r\nvar BaseGridDataSeries3D_1 = require(\"./Charting3D/Model/DataSeries/BaseGridDataSeries3D\");\r\nObject.defineProperty(exports, \"BaseGridDataSeries3D\", { enumerable: true, get: function () { return BaseGridDataSeries3D_1.BaseGridDataSeries3D; } });\r\nvar UniformGridDataSeries3D_1 = require(\"./Charting3D/Model/DataSeries/UniformGridDataSeries3D\");\r\nObject.defineProperty(exports, \"UniformGridDataSeries3D\", { enumerable: true, get: function () { return UniformGridDataSeries3D_1.UniformGridDataSeries3D; } });\r\nvar XyzDataSeries3D_1 = require(\"./Charting3D/Model/DataSeries/XyzDataSeries3D\");\r\nObject.defineProperty(exports, \"XyzDataSeries3D\", { enumerable: true, get: function () { return XyzDataSeries3D_1.XyzDataSeries3D; } });\r\nvar createSingle3d_1 = require(\"./Charting3D/Visuals/createSingle3d\");\r\nObject.defineProperty(exports, \"createSingle3dInternal\", { enumerable: true, get: function () { return createSingle3d_1.createSingle3dInternal; } });\r\nvar DefaultViewportManager3D_1 = require(\"./Charting3D/Visuals/DefaultViewportManager3D\");\r\nObject.defineProperty(exports, \"DefaultViewportManager3D\", { enumerable: true, get: function () { return DefaultViewportManager3D_1.DefaultViewportManager3D; } });\r\nvar GizmoEntity_1 = require(\"./Charting3D/Visuals/GizmoEntity\");\r\nObject.defineProperty(exports, \"GizmoEntity\", { enumerable: true, get: function () { return GizmoEntity_1.GizmoEntity; } });\r\nvar RootSceneEntity_1 = require(\"./Charting3D/Visuals/RootSceneEntity\");\r\nObject.defineProperty(exports, \"RootSceneEntity\", { enumerable: true, get: function () { return RootSceneEntity_1.RootSceneEntity; } });\r\nvar SciChart3DRenderer_1 = require(\"./Charting3D/Visuals/SciChart3DRenderer\");\r\nObject.defineProperty(exports, \"SciChart3DRenderer\", { enumerable: true, get: function () { return SciChart3DRenderer_1.SciChart3DRenderer; } });\r\nvar SciChart3DSurface_1 = require(\"./Charting3D/Visuals/SciChart3DSurface\");\r\nObject.defineProperty(exports, \"sciChartConfig3D\", { enumerable: true, get: function () { return SciChart3DSurface_1.sciChartConfig3D; } });\r\nvar SciChart3DSurface_2 = require(\"./Charting3D/Visuals/SciChart3DSurface\");\r\nObject.defineProperty(exports, \"SciChart3DSurface\", { enumerable: true, get: function () { return SciChart3DSurface_2.SciChart3DSurface; } });\r\nvar ViewportManager3DBase_1 = require(\"./Charting3D/Visuals/ViewportManager3DBase\");\r\nObject.defineProperty(exports, \"ViewportManager3DBase\", { enumerable: true, get: function () { return ViewportManager3DBase_1.ViewportManager3DBase; } });\r\nvar TooltipSvgAnnotation3D_1 = require(\"./Charting3D/Visuals/Annotations/TooltipSvgAnnotation3D\");\r\nObject.defineProperty(exports, \"TooltipSvgAnnotation3D\", { enumerable: true, get: function () { return TooltipSvgAnnotation3D_1.TooltipSvgAnnotation3D; } });\r\nvar AxisBase3D_1 = require(\"./Charting3D/Visuals/Axis/AxisBase3D\");\r\nObject.defineProperty(exports, \"EWhichAxis\", { enumerable: true, get: function () { return AxisBase3D_1.EWhichAxis; } });\r\nvar AxisBase3D_2 = require(\"./Charting3D/Visuals/Axis/AxisBase3D\");\r\nObject.defineProperty(exports, \"AxisBase3D\", { enumerable: true, get: function () { return AxisBase3D_2.AxisBase3D; } });\r\nvar AxisBase3DLabelStyle_1 = require(\"./Charting3D/Visuals/Axis/AxisBase3DLabelStyle\");\r\nObject.defineProperty(exports, \"AxisBase3DLabelStyle\", { enumerable: true, get: function () { return AxisBase3DLabelStyle_1.AxisBase3DLabelStyle; } });\r\nvar AxisCubeEntity_1 = require(\"./Charting3D/Visuals/Axis/AxisCubeEntity\");\r\nObject.defineProperty(exports, \"AxisCubeEntity\", { enumerable: true, get: function () { return AxisCubeEntity_1.AxisCubeEntity; } });\r\nvar EAxisSideClipping_1 = require(\"./Charting3D/Visuals/Axis/EAxisSideClipping\");\r\nObject.defineProperty(exports, \"EAxisSideClipping\", { enumerable: true, get: function () { return EAxisSideClipping_1.EAxisSideClipping; } });\r\nvar ETextAlignment3D_1 = require(\"./Charting3D/Visuals/Axis/ETextAlignment3D\");\r\nObject.defineProperty(exports, \"ETextAlignment3D\", { enumerable: true, get: function () { return ETextAlignment3D_1.ETextAlignment3D; } });\r\nvar IAxisDescriptor_1 = require(\"./Charting3D/Visuals/Axis/IAxisDescriptor\");\r\nObject.defineProperty(exports, \"getDescriptorsEqual\", { enumerable: true, get: function () { return IAxisDescriptor_1.getDescriptorsEqual; } });\r\nvar IAxisDescriptor_2 = require(\"./Charting3D/Visuals/Axis/IAxisDescriptor\");\r\nObject.defineProperty(exports, \"getLineStylesEqual\", { enumerable: true, get: function () { return IAxisDescriptor_2.getLineStylesEqual; } });\r\nvar IAxisDescriptor_3 = require(\"./Charting3D/Visuals/Axis/IAxisDescriptor\");\r\nObject.defineProperty(exports, \"getTArgbEqual\", { enumerable: true, get: function () { return IAxisDescriptor_3.getTArgbEqual; } });\r\nvar IAxisDescriptor_4 = require(\"./Charting3D/Visuals/Axis/IAxisDescriptor\");\r\nObject.defineProperty(exports, \"getTextStylesEqual\", { enumerable: true, get: function () { return IAxisDescriptor_4.getTextStylesEqual; } });\r\nvar IAxisDescriptor_5 = require(\"./Charting3D/Visuals/Axis/IAxisDescriptor\");\r\nObject.defineProperty(exports, \"getArraysEqual\", { enumerable: true, get: function () { return IAxisDescriptor_5.getArraysEqual; } });\r\nvar NumericAxis3D_1 = require(\"./Charting3D/Visuals/Axis/NumericAxis3D\");\r\nObject.defineProperty(exports, \"NumericAxis3D\", { enumerable: true, get: function () { return NumericAxis3D_1.NumericAxis3D; } });\r\nvar BaseMeshPointMarker3D_1 = require(\"./Charting3D/Visuals/PointMarkers/BaseMeshPointMarker3D\");\r\nObject.defineProperty(exports, \"BaseMeshPointMarker3D\", { enumerable: true, get: function () { return BaseMeshPointMarker3D_1.BaseMeshPointMarker3D; } });\r\nvar BasePointMarker3D_1 = require(\"./Charting3D/Visuals/PointMarkers/BasePointMarker3D\");\r\nObject.defineProperty(exports, \"EMarkerType\", { enumerable: true, get: function () { return BasePointMarker3D_1.EMarkerType; } });\r\nvar BasePointMarker3D_2 = require(\"./Charting3D/Visuals/PointMarkers/BasePointMarker3D\");\r\nObject.defineProperty(exports, \"BasePointMarker3D\", { enumerable: true, get: function () { return BasePointMarker3D_2.BasePointMarker3D; } });\r\nvar BaseTexturePointMarker3D_1 = require(\"./Charting3D/Visuals/PointMarkers/BaseTexturePointMarker3D\");\r\nObject.defineProperty(exports, \"BaseTexturePointMarker3D\", { enumerable: true, get: function () { return BaseTexturePointMarker3D_1.BaseTexturePointMarker3D; } });\r\nvar DefaultPointMarkers_1 = require(\"./Charting3D/Visuals/PointMarkers/DefaultPointMarkers\");\r\nObject.defineProperty(exports, \"SpherePointMarker3D\", { enumerable: true, get: function () { return DefaultPointMarkers_1.SpherePointMarker3D; } });\r\nvar DefaultPointMarkers_2 = require(\"./Charting3D/Visuals/PointMarkers/DefaultPointMarkers\");\r\nObject.defineProperty(exports, \"CubePointMarker3D\", { enumerable: true, get: function () { return DefaultPointMarkers_2.CubePointMarker3D; } });\r\nvar DefaultPointMarkers_3 = require(\"./Charting3D/Visuals/PointMarkers/DefaultPointMarkers\");\r\nObject.defineProperty(exports, \"PyramidPointMarker3D\", { enumerable: true, get: function () { return DefaultPointMarkers_3.PyramidPointMarker3D; } });\r\nvar DefaultPointMarkers_4 = require(\"./Charting3D/Visuals/PointMarkers/DefaultPointMarkers\");\r\nObject.defineProperty(exports, \"CylinderPointMarker3D\", { enumerable: true, get: function () { return DefaultPointMarkers_4.CylinderPointMarker3D; } });\r\nvar DefaultPointMarkers_5 = require(\"./Charting3D/Visuals/PointMarkers/DefaultPointMarkers\");\r\nObject.defineProperty(exports, \"PixelPointMarker3D\", { enumerable: true, get: function () { return DefaultPointMarkers_5.PixelPointMarker3D; } });\r\nvar DefaultPointMarkers_6 = require(\"./Charting3D/Visuals/PointMarkers/DefaultPointMarkers\");\r\nObject.defineProperty(exports, \"QuadPointMarker\", { enumerable: true, get: function () { return DefaultPointMarkers_6.QuadPointMarker; } });\r\nvar DefaultPointMarkers_7 = require(\"./Charting3D/Visuals/PointMarkers/DefaultPointMarkers\");\r\nObject.defineProperty(exports, \"EllipsePointMarker3D\", { enumerable: true, get: function () { return DefaultPointMarkers_7.EllipsePointMarker3D; } });\r\nvar DefaultPointMarkers_8 = require(\"./Charting3D/Visuals/PointMarkers/DefaultPointMarkers\");\r\nObject.defineProperty(exports, \"TrianglePointMarker3D\", { enumerable: true, get: function () { return DefaultPointMarkers_8.TrianglePointMarker3D; } });\r\nvar AxisCubeDescriptor_1 = require(\"./Charting3D/Visuals/Primitives/AxisCubeDescriptor\");\r\nObject.defineProperty(exports, \"AxisCubeDescriptor\", { enumerable: true, get: function () { return AxisCubeDescriptor_1.AxisCubeDescriptor; } });\r\nvar BaseSceneEntity3D_1 = require(\"./Charting3D/Visuals/Primitives/BaseSceneEntity3D\");\r\nObject.defineProperty(exports, \"BaseSceneEntity3D\", { enumerable: true, get: function () { return BaseSceneEntity3D_1.BaseSceneEntity3D; } });\r\nvar CrosshairLinesSceneEntity_1 = require(\"./Charting3D/Visuals/Primitives/CrosshairLinesSceneEntity\");\r\nObject.defineProperty(exports, \"CrosshairLinesSceneEntity\", { enumerable: true, get: function () { return CrosshairLinesSceneEntity_1.CrosshairLinesSceneEntity; } });\r\nvar EntityIdProvider_1 = require(\"./Charting3D/Visuals/Primitives/EntityIdProvider\");\r\nObject.defineProperty(exports, \"DefaultEntityIdProvider\", { enumerable: true, get: function () { return EntityIdProvider_1.DefaultEntityIdProvider; } });\r\nvar PointLine3DSceneEntity_1 = require(\"./Charting3D/Visuals/Primitives/PointLine3DSceneEntity\");\r\nObject.defineProperty(exports, \"PointLine3DSceneEntity\", { enumerable: true, get: function () { return PointLine3DSceneEntity_1.PointLine3DSceneEntity; } });\r\nvar RenderableSeriesSceneEntity_1 = require(\"./Charting3D/Visuals/Primitives/RenderableSeriesSceneEntity\");\r\nObject.defineProperty(exports, \"RenderableSeriesSceneEntity\", { enumerable: true, get: function () { return RenderableSeriesSceneEntity_1.RenderableSeriesSceneEntity; } });\r\nvar RenderableSeriesSceneEntityState_1 = require(\"./Charting3D/Visuals/Primitives/RenderableSeriesSceneEntityState\");\r\nObject.defineProperty(exports, \"RenderableSeriesSceneEntityState\", { enumerable: true, get: function () { return RenderableSeriesSceneEntityState_1.RenderableSeriesSceneEntityState; } });\r\nvar RenderPassInfo3D_1 = require(\"./Charting3D/Visuals/Primitives/RenderPassInfo3D\");\r\nObject.defineProperty(exports, \"RenderPassInfo3D\", { enumerable: true, get: function () { return RenderPassInfo3D_1.RenderPassInfo3D; } });\r\nvar ScatterPointsSceneEntity_1 = require(\"./Charting3D/Visuals/Primitives/ScatterPointsSceneEntity\");\r\nObject.defineProperty(exports, \"ScatterPointsSceneEntity\", { enumerable: true, get: function () { return ScatterPointsSceneEntity_1.ScatterPointsSceneEntity; } });\r\nvar SceneDescriptor_1 = require(\"./Charting3D/Visuals/Primitives/SceneDescriptor\");\r\nObject.defineProperty(exports, \"SceneDescriptor\", { enumerable: true, get: function () { return SceneDescriptor_1.SceneDescriptor; } });\r\nvar SurfaceMeshSceneEntity_1 = require(\"./Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity\");\r\nObject.defineProperty(exports, \"SurfaceMeshSceneEntityState\", { enumerable: true, get: function () { return SurfaceMeshSceneEntity_1.SurfaceMeshSceneEntityState; } });\r\nvar SurfaceMeshSceneEntity_2 = require(\"./Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity\");\r\nObject.defineProperty(exports, \"SurfaceMeshSceneEntity\", { enumerable: true, get: function () { return SurfaceMeshSceneEntity_2.SurfaceMeshSceneEntity; } });\r\nvar BaseRenderableSeries3D_1 = require(\"./Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D\");\r\nObject.defineProperty(exports, \"BaseRenderableSeries3D\", { enumerable: true, get: function () { return BaseRenderableSeries3D_1.BaseRenderableSeries3D; } });\r\nvar ESeriesType_1 = require(\"./Charting3D/Visuals/RenderableSeries/ESeriesType\");\r\nObject.defineProperty(exports, \"ESeriesType3D\", { enumerable: true, get: function () { return ESeriesType_1.ESeriesType3D; } });\r\nvar HitTestInfo3D_1 = require(\"./Charting3D/Visuals/RenderableSeries/HitTestInfo3D\");\r\nObject.defineProperty(exports, \"HitTestInfo3D\", { enumerable: true, get: function () { return HitTestInfo3D_1.HitTestInfo3D; } });\r\nvar PointLineRenderableSeries3D_1 = require(\"./Charting3D/Visuals/RenderableSeries/PointLineRenderableSeries3D\");\r\nObject.defineProperty(exports, \"PointLineRenderableSeries3D\", { enumerable: true, get: function () { return PointLineRenderableSeries3D_1.PointLineRenderableSeries3D; } });\r\nvar ScatterRenderableSeries3D_1 = require(\"./Charting3D/Visuals/RenderableSeries/ScatterRenderableSeries3D\");\r\nObject.defineProperty(exports, \"ScatterRenderableSeries3D\", { enumerable: true, get: function () { return ScatterRenderableSeries3D_1.ScatterRenderableSeries3D; } });\r\nvar SeriesInfo3D_1 = require(\"./Charting3D/Visuals/RenderableSeries/SeriesInfo3D\");\r\nObject.defineProperty(exports, \"SeriesInfo3D\", { enumerable: true, get: function () { return SeriesInfo3D_1.SeriesInfo3D; } });\r\nvar SurfaceMeshSeriesInfo3D_1 = require(\"./Charting3D/Visuals/RenderableSeries/SurfaceMeshSeriesInfo3D\");\r\nObject.defineProperty(exports, \"SurfaceMeshSeriesInfo3D\", { enumerable: true, get: function () { return SurfaceMeshSeriesInfo3D_1.SurfaceMeshSeriesInfo3D; } });\r\nvar XyzSeriesInfo3D_1 = require(\"./Charting3D/Visuals/RenderableSeries/XyzSeriesInfo3D\");\r\nObject.defineProperty(exports, \"XyzSeriesInfo3D\", { enumerable: true, get: function () { return XyzSeriesInfo3D_1.XyzSeriesInfo3D; } });\r\nvar GradientColorPalette_1 = require(\"./Charting3D/Visuals/RenderableSeries/SurfaceMesh/GradientColorPalette\");\r\nObject.defineProperty(exports, \"GradientColorPalette\", { enumerable: true, get: function () { return GradientColorPalette_1.GradientColorPalette; } });\r\nvar MeshColorPalette_1 = require(\"./Charting3D/Visuals/RenderableSeries/SurfaceMesh/MeshColorPalette\");\r\nObject.defineProperty(exports, \"MeshColorPalette\", { enumerable: true, get: function () { return MeshColorPalette_1.MeshColorPalette; } });\r\nvar SolidColorBrushPalette_1 = require(\"./Charting3D/Visuals/RenderableSeries/SurfaceMesh/SolidColorBrushPalette\");\r\nObject.defineProperty(exports, \"SolidColorBrushPalette\", { enumerable: true, get: function () { return SolidColorBrushPalette_1.SolidColorBrushPalette; } });\r\nvar SurfaceMeshRenderableSeries3D_1 = require(\"./Charting3D/Visuals/RenderableSeries/SurfaceMesh/SurfaceMeshRenderableSeries3D\");\r\nObject.defineProperty(exports, \"EDrawMeshAs\", { enumerable: true, get: function () { return SurfaceMeshRenderableSeries3D_1.EDrawMeshAs; } });\r\nvar SurfaceMeshRenderableSeries3D_2 = require(\"./Charting3D/Visuals/RenderableSeries/SurfaceMesh/SurfaceMeshRenderableSeries3D\");\r\nObject.defineProperty(exports, \"EMeshPaletteMode\", { enumerable: true, get: function () { return SurfaceMeshRenderableSeries3D_2.EMeshPaletteMode; } });\r\nvar SurfaceMeshRenderableSeries3D_3 = require(\"./Charting3D/Visuals/RenderableSeries/SurfaceMesh/SurfaceMeshRenderableSeries3D\");\r\nObject.defineProperty(exports, \"EMeshResolution\", { enumerable: true, get: function () { return SurfaceMeshRenderableSeries3D_3.EMeshResolution; } });\r\nvar SurfaceMeshRenderableSeries3D_4 = require(\"./Charting3D/Visuals/RenderableSeries/SurfaceMesh/SurfaceMeshRenderableSeries3D\");\r\nObject.defineProperty(exports, \"SurfaceMeshRenderableSeries3D\", { enumerable: true, get: function () { return SurfaceMeshRenderableSeries3D_4.SurfaceMeshRenderableSeries3D; } });\r\nvar AnimationToken_1 = require(\"./Core/AnimationToken\");\r\nObject.defineProperty(exports, \"AnimationToken\", { enumerable: true, get: function () { return AnimationToken_1.AnimationToken; } });\r\nvar BuildStamp_1 = require(\"./Core/BuildStamp\");\r\nObject.defineProperty(exports, \"libraryVersion\", { enumerable: true, get: function () { return BuildStamp_1.libraryVersion; } });\r\nvar BuildStamp_2 = require(\"./Core/BuildStamp\");\r\nObject.defineProperty(exports, \"checkBuildStamp\", { enumerable: true, get: function () { return BuildStamp_2.checkBuildStamp; } });\r\nvar DeletableEntity_1 = require(\"./Core/DeletableEntity\");\r\nObject.defineProperty(exports, \"DeletableEntity\", { enumerable: true, get: function () { return DeletableEntity_1.DeletableEntity; } });\r\nvar Deleter_1 = require(\"./Core/Deleter\");\r\nObject.defineProperty(exports, \"deleteSafe\", { enumerable: true, get: function () { return Deleter_1.deleteSafe; } });\r\nvar Dictionary_1 = require(\"./Core/Dictionary\");\r\nObject.defineProperty(exports, \"Dictionary\", { enumerable: true, get: function () { return Dictionary_1.Dictionary; } });\r\nvar EventHandler_1 = require(\"./Core/EventHandler\");\r\nObject.defineProperty(exports, \"EventHandler\", { enumerable: true, get: function () { return EventHandler_1.EventHandler; } });\r\nvar GradientParams_1 = require(\"./Core/GradientParams\");\r\nObject.defineProperty(exports, \"GradientParams\", { enumerable: true, get: function () { return GradientParams_1.GradientParams; } });\r\nvar Guard_1 = require(\"./Core/Guard\");\r\nObject.defineProperty(exports, \"Guard\", { enumerable: true, get: function () { return Guard_1.Guard; } });\r\nvar List_1 = require(\"./Core/List\");\r\nObject.defineProperty(exports, \"List\", { enumerable: true, get: function () { return List_1.List; } });\r\nvar NumberRange_1 = require(\"./Core/NumberRange\");\r\nObject.defineProperty(exports, \"NumberRange\", { enumerable: true, get: function () { return NumberRange_1.NumberRange; } });\r\nvar NumberUtil_1 = require(\"./Core/NumberUtil\");\r\nObject.defineProperty(exports, \"NumberUtil\", { enumerable: true, get: function () { return NumberUtil_1.NumberUtil; } });\r\nvar ObservableArray_1 = require(\"./Core/ObservableArray\");\r\nObject.defineProperty(exports, \"ObservableArrayBase\", { enumerable: true, get: function () { return ObservableArray_1.ObservableArrayBase; } });\r\nvar ObservableArray_2 = require(\"./Core/ObservableArray\");\r\nObject.defineProperty(exports, \"ObservableArray\", { enumerable: true, get: function () { return ObservableArray_2.ObservableArray; } });\r\nvar ObservableArrayChangedArgs_1 = require(\"./Core/ObservableArrayChangedArgs\");\r\nObject.defineProperty(exports, \"EObservableArrayChangedAction\", { enumerable: true, get: function () { return ObservableArrayChangedArgs_1.EObservableArrayChangedAction; } });\r\nvar ObservableArrayChangedArgs_2 = require(\"./Core/ObservableArrayChangedArgs\");\r\nObject.defineProperty(exports, \"ObservableArrayChangedArgs\", { enumerable: true, get: function () { return ObservableArrayChangedArgs_2.ObservableArrayChangedArgs; } });\r\nvar OneTimePerformanceWarning_1 = require(\"./Core/OneTimePerformanceWarning\");\r\nObject.defineProperty(exports, \"OneTimePerformanceWarning\", { enumerable: true, get: function () { return OneTimePerformanceWarning_1.OneTimePerformanceWarning; } });\r\nvar Point_1 = require(\"./Core/Point\");\r\nObject.defineProperty(exports, \"Point\", { enumerable: true, get: function () { return Point_1.Point; } });\r\nvar PropertyChangedEventArgs_1 = require(\"./Core/PropertyChangedEventArgs\");\r\nObject.defineProperty(exports, \"PropertyChangedEventArgs\", { enumerable: true, get: function () { return PropertyChangedEventArgs_1.PropertyChangedEventArgs; } });\r\nvar Rect_1 = require(\"./Core/Rect\");\r\nObject.defineProperty(exports, \"Rect\", { enumerable: true, get: function () { return Rect_1.Rect; } });\r\nvar Telemetry_1 = require(\"./Core/Telemetry\");\r\nObject.defineProperty(exports, \"getUserCookie\", { enumerable: true, get: function () { return Telemetry_1.getUserCookie; } });\r\nvar Telemetry_2 = require(\"./Core/Telemetry\");\r\nObject.defineProperty(exports, \"shouldSendTelemetry\", { enumerable: true, get: function () { return Telemetry_2.shouldSendTelemetry; } });\r\nvar Telemetry_3 = require(\"./Core/Telemetry\");\r\nObject.defineProperty(exports, \"sendTelemetry\", { enumerable: true, get: function () { return Telemetry_3.sendTelemetry; } });\r\nvar Thickness_1 = require(\"./Core/Thickness\");\r\nObject.defineProperty(exports, \"Thickness\", { enumerable: true, get: function () { return Thickness_1.Thickness; } });\r\nvar WebGlHelper_1 = require(\"./Core/WebGlHelper\");\r\nObject.defineProperty(exports, \"EWebGLSupport\", { enumerable: true, get: function () { return WebGlHelper_1.EWebGLSupport; } });\r\nvar WebGlHelper_2 = require(\"./Core/WebGlHelper\");\r\nObject.defineProperty(exports, \"WebGlHelper\", { enumerable: true, get: function () { return WebGlHelper_2.WebGlHelper; } });\r\nvar AnimationFiniteStateMachine_1 = require(\"./Core/Animations/AnimationFiniteStateMachine\");\r\nObject.defineProperty(exports, \"EAnimationState\", { enumerable: true, get: function () { return AnimationFiniteStateMachine_1.EAnimationState; } });\r\nvar AnimationFiniteStateMachine_2 = require(\"./Core/Animations/AnimationFiniteStateMachine\");\r\nObject.defineProperty(exports, \"EAnimationStateTransition\", { enumerable: true, get: function () { return AnimationFiniteStateMachine_2.EAnimationStateTransition; } });\r\nvar AnimationFiniteStateMachine_3 = require(\"./Core/Animations/AnimationFiniteStateMachine\");\r\nObject.defineProperty(exports, \"AnimationFiniteStateMachine\", { enumerable: true, get: function () { return AnimationFiniteStateMachine_3.AnimationFiniteStateMachine; } });\r\nvar AnimationFiniteStateMachine_4 = require(\"./Core/Animations/AnimationFiniteStateMachine\");\r\nObject.defineProperty(exports, \"SeriesAnimationFiniteStateMachine\", { enumerable: true, get: function () { return AnimationFiniteStateMachine_4.SeriesAnimationFiniteStateMachine; } });\r\nvar Animator_1 = require(\"./Core/Animations/Animator\");\r\nObject.defineProperty(exports, \"animateAny\", { enumerable: true, get: function () { return Animator_1.animateAny; } });\r\nvar DoubleAnimator_1 = require(\"./Core/Animations/DoubleAnimator\");\r\nObject.defineProperty(exports, \"DoubleAnimator\", { enumerable: true, get: function () { return DoubleAnimator_1.DoubleAnimator; } });\r\nvar EasingFunctions_1 = require(\"./Core/Animations/EasingFunctions\");\r\nObject.defineProperty(exports, \"easing\", { enumerable: true, get: function () { return EasingFunctions_1.easing; } });\r\nvar EasingFunctions_2 = require(\"./Core/Animations/EasingFunctions\");\r\nObject.defineProperty(exports, \"autoReverseEasing\", { enumerable: true, get: function () { return EasingFunctions_2.autoReverseEasing; } });\r\nvar GenericAnimation_1 = require(\"./Core/Animations/GenericAnimation\");\r\nObject.defineProperty(exports, \"GenericAnimation\", { enumerable: true, get: function () { return GenericAnimation_1.GenericAnimation; } });\r\nvar NumberRangeAnimator_1 = require(\"./Core/Animations/NumberRangeAnimator\");\r\nObject.defineProperty(exports, \"NumberRangeAnimator\", { enumerable: true, get: function () { return NumberRangeAnimator_1.NumberRangeAnimator; } });\r\nvar MouseManager_1 = require(\"./Core/Mouse/MouseManager\");\r\nObject.defineProperty(exports, \"MouseManager\", { enumerable: true, get: function () { return MouseManager_1.MouseManager; } });\r\nvar localStorageApi_1 = require(\"./Core/storage/localStorageApi\");\r\nObject.defineProperty(exports, \"localStorageApi\", { enumerable: true, get: function () { return localStorageApi_1.localStorageApi; } });\r\nvar AnchorPoint_1 = require(\"./types/AnchorPoint\");\r\nObject.defineProperty(exports, \"EHorizontalAnchorPoint\", { enumerable: true, get: function () { return AnchorPoint_1.EHorizontalAnchorPoint; } });\r\nvar AnchorPoint_2 = require(\"./types/AnchorPoint\");\r\nObject.defineProperty(exports, \"EVerticalAnchorPoint\", { enumerable: true, get: function () { return AnchorPoint_2.EVerticalAnchorPoint; } });\r\nvar AnimationType_1 = require(\"./types/AnimationType\");\r\nObject.defineProperty(exports, \"EAnimationType\", { enumerable: true, get: function () { return AnimationType_1.EAnimationType; } });\r\nvar AutoColorMode_1 = require(\"./types/AutoColorMode\");\r\nObject.defineProperty(exports, \"EAutoColorMode\", { enumerable: true, get: function () { return AutoColorMode_1.EAutoColorMode; } });\r\nvar AutoRange_1 = require(\"./types/AutoRange\");\r\nObject.defineProperty(exports, \"EAutoRange\", { enumerable: true, get: function () { return AutoRange_1.EAutoRange; } });\r\nvar AxisAlignment_1 = require(\"./types/AxisAlignment\");\r\nObject.defineProperty(exports, \"EAxisAlignment\", { enumerable: true, get: function () { return AxisAlignment_1.EAxisAlignment; } });\r\nvar AxisAlignment_2 = require(\"./types/AxisAlignment\");\r\nObject.defineProperty(exports, \"getIsHorizontal\", { enumerable: true, get: function () { return AxisAlignment_2.getIsHorizontal; } });\r\nvar AxisAlignment_3 = require(\"./types/AxisAlignment\");\r\nObject.defineProperty(exports, \"getIsVertical\", { enumerable: true, get: function () { return AxisAlignment_3.getIsVertical; } });\r\nvar AxisAlignment_4 = require(\"./types/AxisAlignment\");\r\nObject.defineProperty(exports, \"handleInvalidAxisAlignment\", { enumerable: true, get: function () { return AxisAlignment_4.handleInvalidAxisAlignment; } });\r\nvar AxisType_1 = require(\"./types/AxisType\");\r\nObject.defineProperty(exports, \"EAxisType\", { enumerable: true, get: function () { return AxisType_1.EAxisType; } });\r\nvar BaseType_1 = require(\"./types/BaseType\");\r\nObject.defineProperty(exports, \"EBaseType\", { enumerable: true, get: function () { return BaseType_1.EBaseType; } });\r\nvar ChartModifierType_1 = require(\"./types/ChartModifierType\");\r\nObject.defineProperty(exports, \"EChart2DModifierType\", { enumerable: true, get: function () { return ChartModifierType_1.EChart2DModifierType; } });\r\nvar ChartModifierType_2 = require(\"./types/ChartModifierType\");\r\nObject.defineProperty(exports, \"EChart3DModifierType\", { enumerable: true, get: function () { return ChartModifierType_2.EChart3DModifierType; } });\r\nvar Color_1 = require(\"./types/Color\");\r\nObject.defineProperty(exports, \"EColor\", { enumerable: true, get: function () { return Color_1.EColor; } });\r\nvar CursorStyle_1 = require(\"./types/CursorStyle\");\r\nObject.defineProperty(exports, \"ECursorStyle\", { enumerable: true, get: function () { return CursorStyle_1.ECursorStyle; } });\r\nvar DataFilterType_1 = require(\"./types/DataFilterType\");\r\nObject.defineProperty(exports, \"EDataFilterType\", { enumerable: true, get: function () { return DataFilterType_1.EDataFilterType; } });\r\nvar DataLabelProviderType_1 = require(\"./types/DataLabelProviderType\");\r\nObject.defineProperty(exports, \"EDataLabelProviderType\", { enumerable: true, get: function () { return DataLabelProviderType_1.EDataLabelProviderType; } });\r\nvar DataLabelSkipMode_1 = require(\"./types/DataLabelSkipMode\");\r\nObject.defineProperty(exports, \"EDataLabelSkipMode\", { enumerable: true, get: function () { return DataLabelSkipMode_1.EDataLabelSkipMode; } });\r\nvar DataPointWidthMode_1 = require(\"./types/DataPointWidthMode\");\r\nObject.defineProperty(exports, \"EDataPointWidthMode\", { enumerable: true, get: function () { return DataPointWidthMode_1.EDataPointWidthMode; } });\r\nvar DefaultRenderLayer_1 = require(\"./types/DefaultRenderLayer\");\r\nObject.defineProperty(exports, \"EDefaultRenderLayer\", { enumerable: true, get: function () { return DefaultRenderLayer_1.EDefaultRenderLayer; } });\r\nvar DragMode_1 = require(\"./types/DragMode\");\r\nObject.defineProperty(exports, \"EDragMode\", { enumerable: true, get: function () { return DragMode_1.EDragMode; } });\r\nvar ErrorDirection_1 = require(\"./types/ErrorDirection\");\r\nObject.defineProperty(exports, \"EErrorDirection\", { enumerable: true, get: function () { return ErrorDirection_1.EErrorDirection; } });\r\nvar ErrorMode_1 = require(\"./types/ErrorMode\");\r\nObject.defineProperty(exports, \"EErrorMode\", { enumerable: true, get: function () { return ErrorMode_1.EErrorMode; } });\r\nvar ExecuteOn_1 = require(\"./types/ExecuteOn\");\r\nObject.defineProperty(exports, \"EExecuteOn\", { enumerable: true, get: function () { return ExecuteOn_1.EExecuteOn; } });\r\nvar HoverMode_1 = require(\"./types/HoverMode\");\r\nObject.defineProperty(exports, \"EHoverMode\", { enumerable: true, get: function () { return HoverMode_1.EHoverMode; } });\r\nvar LabelAlignment_1 = require(\"./types/LabelAlignment\");\r\nObject.defineProperty(exports, \"ELabelAlignment\", { enumerable: true, get: function () { return LabelAlignment_1.ELabelAlignment; } });\r\nvar LabelPlacement_1 = require(\"./types/LabelPlacement\");\r\nObject.defineProperty(exports, \"ELabelPlacement\", { enumerable: true, get: function () { return LabelPlacement_1.ELabelPlacement; } });\r\nvar LabelPlacement_2 = require(\"./types/LabelPlacement\");\r\nObject.defineProperty(exports, \"EHorizontalAlignment\", { enumerable: true, get: function () { return LabelPlacement_2.EHorizontalAlignment; } });\r\nvar LabelPlacement_3 = require(\"./types/LabelPlacement\");\r\nObject.defineProperty(exports, \"EVerticalAlignment\", { enumerable: true, get: function () { return LabelPlacement_3.EVerticalAlignment; } });\r\nvar LabelProviderType_1 = require(\"./types/LabelProviderType\");\r\nObject.defineProperty(exports, \"ELabelProviderType\", { enumerable: true, get: function () { return LabelProviderType_1.ELabelProviderType; } });\r\nvar LayoutMangerType_1 = require(\"./types/LayoutMangerType\");\r\nObject.defineProperty(exports, \"ELayoutManagerType\", { enumerable: true, get: function () { return LayoutMangerType_1.ELayoutManagerType; } });\r\nvar LayoutStrategyType_1 = require(\"./types/LayoutStrategyType\");\r\nObject.defineProperty(exports, \"ELayoutStrategyType\", { enumerable: true, get: function () { return LayoutStrategyType_1.ELayoutStrategyType; } });\r\nvar MousePosition_1 = require(\"./types/MousePosition\");\r\nObject.defineProperty(exports, \"EMousePosition\", { enumerable: true, get: function () { return MousePosition_1.EMousePosition; } });\r\nvar NumberArray_1 = require(\"./types/NumberArray\");\r\nObject.defineProperty(exports, \"isTypedArray\", { enumerable: true, get: function () { return NumberArray_1.isTypedArray; } });\r\nvar NumberArray_2 = require(\"./types/NumberArray\");\r\nObject.defineProperty(exports, \"isNumberArray\", { enumerable: true, get: function () { return NumberArray_2.isNumberArray; } });\r\nvar NumberArray_3 = require(\"./types/NumberArray\");\r\nObject.defineProperty(exports, \"subArray\", { enumerable: true, get: function () { return NumberArray_3.subArray; } });\r\nvar NumericFormat_1 = require(\"./types/NumericFormat\");\r\nObject.defineProperty(exports, \"ENumericFormat\", { enumerable: true, get: function () { return NumericFormat_1.ENumericFormat; } });\r\nvar PaletteProviderType_1 = require(\"./types/PaletteProviderType\");\r\nObject.defineProperty(exports, \"EPaletteProviderType\", { enumerable: true, get: function () { return PaletteProviderType_1.EPaletteProviderType; } });\r\nvar PointMarkerType_1 = require(\"./types/PointMarkerType\");\r\nObject.defineProperty(exports, \"EPointMarkerType\", { enumerable: true, get: function () { return PointMarkerType_1.EPointMarkerType; } });\r\nvar RenderLayer_1 = require(\"./types/RenderLayer\");\r\nObject.defineProperty(exports, \"ERenderLayer\", { enumerable: true, get: function () { return RenderLayer_1.ERenderLayer; } });\r\nvar SceneEntityType_1 = require(\"./types/SceneEntityType\");\r\nObject.defineProperty(exports, \"ESceneEntityType\", { enumerable: true, get: function () { return SceneEntityType_1.ESceneEntityType; } });\r\nvar SciChartSurfaceType_1 = require(\"./types/SciChartSurfaceType\");\r\nObject.defineProperty(exports, \"ESciChartSurfaceType\", { enumerable: true, get: function () { return SciChartSurfaceType_1.ESciChartSurfaceType; } });\r\nvar SearchMode_1 = require(\"./types/SearchMode\");\r\nObject.defineProperty(exports, \"ESearchMode\", { enumerable: true, get: function () { return SearchMode_1.ESearchMode; } });\r\nvar SearchMode_2 = require(\"./types/SearchMode\");\r\nObject.defineProperty(exports, \"convertSearchMode\", { enumerable: true, get: function () { return SearchMode_2.convertSearchMode; } });\r\nvar SeriesType_1 = require(\"./types/SeriesType\");\r\nObject.defineProperty(exports, \"ESeriesType\", { enumerable: true, get: function () { return SeriesType_1.ESeriesType; } });\r\nvar ShaderEffectType_1 = require(\"./types/ShaderEffectType\");\r\nObject.defineProperty(exports, \"EShaderEffectType\", { enumerable: true, get: function () { return ShaderEffectType_1.EShaderEffectType; } });\r\nvar Size_1 = require(\"./types/Size\");\r\nObject.defineProperty(exports, \"Size\", { enumerable: true, get: function () { return Size_1.Size; } });\r\nvar SvgClippingMode_1 = require(\"./types/SvgClippingMode\");\r\nObject.defineProperty(exports, \"ESvgClippingMode\", { enumerable: true, get: function () { return SvgClippingMode_1.ESvgClippingMode; } });\r\nvar TextPosition_1 = require(\"./types/TextPosition\");\r\nObject.defineProperty(exports, \"EHorizontalTextPosition\", { enumerable: true, get: function () { return TextPosition_1.EHorizontalTextPosition; } });\r\nvar TextPosition_2 = require(\"./types/TextPosition\");\r\nObject.defineProperty(exports, \"EVerticalTextPosition\", { enumerable: true, get: function () { return TextPosition_2.EVerticalTextPosition; } });\r\nvar TextPosition_3 = require(\"./types/TextPosition\");\r\nObject.defineProperty(exports, \"EMultiLineAlignment\", { enumerable: true, get: function () { return TextPosition_3.EMultiLineAlignment; } });\r\nvar TextPosition_4 = require(\"./types/TextPosition\");\r\nObject.defineProperty(exports, \"convertMultiLineAlignment\", { enumerable: true, get: function () { return TextPosition_4.convertMultiLineAlignment; } });\r\nvar TextStyle_1 = require(\"./types/TextStyle\");\r\nObject.defineProperty(exports, \"ETextAlignment\", { enumerable: true, get: function () { return TextStyle_1.ETextAlignment; } });\r\nvar TextStyle_2 = require(\"./types/TextStyle\");\r\nObject.defineProperty(exports, \"ETitlePosition\", { enumerable: true, get: function () { return TextStyle_2.ETitlePosition; } });\r\nvar ThemeProviderType_1 = require(\"./types/ThemeProviderType\");\r\nObject.defineProperty(exports, \"EThemeProviderType\", { enumerable: true, get: function () { return ThemeProviderType_1.EThemeProviderType; } });\r\nvar TLinearColorMap_1 = require(\"./types/TLinearColorMap\");\r\nObject.defineProperty(exports, \"EColorMapMode\", { enumerable: true, get: function () { return TLinearColorMap_1.EColorMapMode; } });\r\nvar WatermarkPosition_1 = require(\"./types/WatermarkPosition\");\r\nObject.defineProperty(exports, \"EWatermarkPosition\", { enumerable: true, get: function () { return WatermarkPosition_1.EWatermarkPosition; } });\r\nvar XyDirection_1 = require(\"./types/XyDirection\");\r\nObject.defineProperty(exports, \"EXyDirection\", { enumerable: true, get: function () { return XyDirection_1.EXyDirection; } });\r\nvar YRangeMode_1 = require(\"./types/YRangeMode\");\r\nObject.defineProperty(exports, \"EYRangeMode\", { enumerable: true, get: function () { return YRangeMode_1.EYRangeMode; } });\r\nvar ZoomState_1 = require(\"./types/ZoomState\");\r\nObject.defineProperty(exports, \"EZoomState\", { enumerable: true, get: function () { return ZoomState_1.EZoomState; } });\r\nvar array_1 = require(\"./utils/array\");\r\nObject.defineProperty(exports, \"getUniqueValues\", { enumerable: true, get: function () { return array_1.getUniqueValues; } });\r\nvar array_2 = require(\"./utils/array\");\r\nObject.defineProperty(exports, \"countUnique\", { enumerable: true, get: function () { return array_2.countUnique; } });\r\nvar array_3 = require(\"./utils/array\");\r\nObject.defineProperty(exports, \"areArraysEqual\", { enumerable: true, get: function () { return array_3.areArraysEqual; } });\r\nvar array_4 = require(\"./utils/array\");\r\nObject.defineProperty(exports, \"arrayRemove\", { enumerable: true, get: function () { return array_4.arrayRemove; } });\r\nvar array_5 = require(\"./utils/array\");\r\nObject.defineProperty(exports, \"isArraySorted\", { enumerable: true, get: function () { return array_5.isArraySorted; } });\r\nvar array_6 = require(\"./utils/array\");\r\nObject.defineProperty(exports, \"makeIncArray\", { enumerable: true, get: function () { return array_6.makeIncArray; } });\r\nvar array_7 = require(\"./utils/array\");\r\nObject.defineProperty(exports, \"appendRangeFifo\", { enumerable: true, get: function () { return array_7.appendRangeFifo; } });\r\nvar calcAverage_1 = require(\"./utils/calcAverage\");\r\nObject.defineProperty(exports, \"calcAverageForDoubleVector\", { enumerable: true, get: function () { return calcAverage_1.calcAverageForDoubleVector; } });\r\nvar calcAverage_2 = require(\"./utils/calcAverage\");\r\nObject.defineProperty(exports, \"calcAverageForArray\", { enumerable: true, get: function () { return calcAverage_2.calcAverageForArray; } });\r\nvar colorUtil_1 = require(\"./utils/colorUtil\");\r\nObject.defineProperty(exports, \"uintArgbColorLerp24bit\", { enumerable: true, get: function () { return colorUtil_1.uintArgbColorLerp24bit; } });\r\nvar colorUtil_2 = require(\"./utils/colorUtil\");\r\nObject.defineProperty(exports, \"uintArgbColorLerp\", { enumerable: true, get: function () { return colorUtil_2.uintArgbColorLerp; } });\r\nvar colorUtil_3 = require(\"./utils/colorUtil\");\r\nObject.defineProperty(exports, \"linearColorMapLerp\", { enumerable: true, get: function () { return colorUtil_3.linearColorMapLerp; } });\r\nvar colorUtil_4 = require(\"./utils/colorUtil\");\r\nObject.defineProperty(exports, \"uintArgbColorToAbgr\", { enumerable: true, get: function () { return colorUtil_4.uintArgbColorToAbgr; } });\r\nvar colorUtil_5 = require(\"./utils/colorUtil\");\r\nObject.defineProperty(exports, \"uintArgbColorMultiplyOpacity\", { enumerable: true, get: function () { return colorUtil_5.uintArgbColorMultiplyOpacity; } });\r\nvar colorUtil_6 = require(\"./utils/colorUtil\");\r\nObject.defineProperty(exports, \"uintArgbColorOverrideOpacity\", { enumerable: true, get: function () { return colorUtil_6.uintArgbColorOverrideOpacity; } });\r\nvar colorUtil_7 = require(\"./utils/colorUtil\");\r\nObject.defineProperty(exports, \"uintArgbColorIsTransparent\", { enumerable: true, get: function () { return colorUtil_7.uintArgbColorIsTransparent; } });\r\nvar colorUtil_8 = require(\"./utils/colorUtil\");\r\nObject.defineProperty(exports, \"applyOpacityToHtmlColor\", { enumerable: true, get: function () { return colorUtil_8.applyOpacityToHtmlColor; } });\r\nvar convertColor_1 = require(\"./utils/convertColor\");\r\nObject.defineProperty(exports, \"convertColor\", { enumerable: true, get: function () { return convertColor_1.convertColor; } });\r\nvar convertColor_2 = require(\"./utils/convertColor\");\r\nObject.defineProperty(exports, \"convertRgbToHexColor\", { enumerable: true, get: function () { return convertColor_2.convertRgbToHexColor; } });\r\nvar convertToPixel_1 = require(\"./utils/convertToPixel\");\r\nObject.defineProperty(exports, \"convertToPixel\", { enumerable: true, get: function () { return convertToPixel_1.convertToPixel; } });\r\nvar copyVector_1 = require(\"./utils/copyVector\");\r\nObject.defineProperty(exports, \"copyDoubleVector\", { enumerable: true, get: function () { return copyVector_1.copyDoubleVector; } });\r\nvar date_1 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanString\", { enumerable: true, get: function () { return date_1.formatUnixDateToHumanString; } });\r\nvar date_2 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringDDMMYY\", { enumerable: true, get: function () { return date_2.formatUnixDateToHumanStringDDMMYY; } });\r\nvar date_3 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringDDMMHHMM\", { enumerable: true, get: function () { return date_3.formatUnixDateToHumanStringDDMMHHMM; } });\r\nvar date_4 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringDDMM\", { enumerable: true, get: function () { return date_4.formatUnixDateToHumanStringDDMM; } });\r\nvar date_5 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringHHMMSS\", { enumerable: true, get: function () { return date_5.formatUnixDateToHumanStringHHMMSS; } });\r\nvar date_6 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringSSms\", { enumerable: true, get: function () { return date_6.formatUnixDateToHumanStringSSms; } });\r\nvar date_7 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringHHMM\", { enumerable: true, get: function () { return date_7.formatUnixDateToHumanStringHHMM; } });\r\nvar date_8 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringMMMDD\", { enumerable: true, get: function () { return date_8.formatUnixDateToHumanStringMMMDD; } });\r\nvar date_9 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringMMM\", { enumerable: true, get: function () { return date_9.formatUnixDateToHumanStringMMM; } });\r\nvar date_10 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringDD\", { enumerable: true, get: function () { return date_10.formatUnixDateToHumanStringDD; } });\r\nvar date_11 = require(\"./utils/date\");\r\nObject.defineProperty(exports, \"formatUnixDateToHumanStringYYYY\", { enumerable: true, get: function () { return date_11.formatUnixDateToHumanStringYYYY; } });\r\nvar debug_1 = require(\"./utils/debug\");\r\nObject.defineProperty(exports, \"logDoubleVector\", { enumerable: true, get: function () { return debug_1.logDoubleVector; } });\r\nvar font_1 = require(\"./utils/font\");\r\nObject.defineProperty(exports, \"getFontString\", { enumerable: true, get: function () { return font_1.getFontString; } });\r\nvar guid_1 = require(\"./utils/guid\");\r\nObject.defineProperty(exports, \"generateGuid\", { enumerable: true, get: function () { return guid_1.generateGuid; } });\r\nvar guid_2 = require(\"./utils/guid\");\r\nObject.defineProperty(exports, \"base64Id\", { enumerable: true, get: function () { return guid_2.base64Id; } });\r\nvar hasAllProperties_1 = require(\"./utils/hasAllProperties\");\r\nObject.defineProperty(exports, \"hasAllProperties\", { enumerable: true, get: function () { return hasAllProperties_1.hasAllProperties; } });\r\nvar hash_1 = require(\"./utils/hash\");\r\nObject.defineProperty(exports, \"hashUtils\", { enumerable: true, get: function () { return hash_1.hashUtils; } });\r\nvar html_1 = require(\"./utils/html\");\r\nObject.defineProperty(exports, \"htmlToElement\", { enumerable: true, get: function () { return html_1.htmlToElement; } });\r\nvar html_2 = require(\"./utils/html\");\r\nObject.defineProperty(exports, \"stringOccurrences\", { enumerable: true, get: function () { return html_2.stringOccurrences; } });\r\nvar imageUtil_1 = require(\"./utils/imageUtil\");\r\nObject.defineProperty(exports, \"createImageAsync\", { enumerable: true, get: function () { return imageUtil_1.createImageAsync; } });\r\nvar imageUtil_2 = require(\"./utils/imageUtil\");\r\nObject.defineProperty(exports, \"createImagesArrayAsync\", { enumerable: true, get: function () { return imageUtil_2.createImagesArrayAsync; } });\r\nvar includedAxis_1 = require(\"./utils/includedAxis\");\r\nObject.defineProperty(exports, \"getIncludedAxis\", { enumerable: true, get: function () { return includedAxis_1.getIncludedAxis; } });\r\nvar includedAxis_2 = require(\"./utils/includedAxis\");\r\nObject.defineProperty(exports, \"testHasExcluded\", { enumerable: true, get: function () { return includedAxis_2.testHasExcluded; } });\r\nvar isRealNumber_1 = require(\"./utils/isRealNumber\");\r\nObject.defineProperty(exports, \"isRealNumber\", { enumerable: true, get: function () { return isRealNumber_1.isRealNumber; } });\r\nvar logger_1 = require(\"./utils/logger\");\r\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\r\nvar math_1 = require(\"./utils/math\");\r\nObject.defineProperty(exports, \"getNoisySinewave\", { enumerable: true, get: function () { return math_1.getNoisySinewave; } });\r\nvar math_2 = require(\"./utils/math\");\r\nObject.defineProperty(exports, \"fillNoisySinewave\", { enumerable: true, get: function () { return math_2.fillNoisySinewave; } });\r\nvar math_3 = require(\"./utils/math\");\r\nObject.defineProperty(exports, \"logToBase\", { enumerable: true, get: function () { return math_3.logToBase; } });\r\nvar memoize_1 = require(\"./utils/memoize\");\r\nObject.defineProperty(exports, \"memoize\", { enumerable: true, get: function () { return memoize_1.memoize; } });\r\nvar MemoryUsageHelper_1 = require(\"./utils/MemoryUsageHelper\");\r\nObject.defineProperty(exports, \"ObjectRegistry\", { enumerable: true, get: function () { return MemoryUsageHelper_1.ObjectRegistry; } });\r\nvar MemoryUsageHelper_2 = require(\"./utils/MemoryUsageHelper\");\r\nObject.defineProperty(exports, \"MemoryUsageHelper\", { enumerable: true, get: function () { return MemoryUsageHelper_2.MemoryUsageHelper; } });\r\nvar number_1 = require(\"./utils/number\");\r\nObject.defineProperty(exports, \"formatNumber2Digits\", { enumerable: true, get: function () { return number_1.formatNumber2Digits; } });\r\nvar number_2 = require(\"./utils/number\");\r\nObject.defineProperty(exports, \"numericHashCode\", { enumerable: true, get: function () { return number_2.numericHashCode; } });\r\nvar number_3 = require(\"./utils/number\");\r\nObject.defineProperty(exports, \"formatNumber\", { enumerable: true, get: function () { return number_3.formatNumber; } });\r\nvar number_4 = require(\"./utils/number\");\r\nObject.defineProperty(exports, \"toSuperScript\", { enumerable: true, get: function () { return number_4.toSuperScript; } });\r\nvar number_5 = require(\"./utils/number\");\r\nObject.defineProperty(exports, \"toScientific\", { enumerable: true, get: function () { return number_5.toScientific; } });\r\nvar number_6 = require(\"./utils/number\");\r\nObject.defineProperty(exports, \"toEngineering\", { enumerable: true, get: function () { return number_6.toEngineering; } });\r\nvar number_7 = require(\"./utils/number\");\r\nObject.defineProperty(exports, \"checkIsNaN\", { enumerable: true, get: function () { return number_7.checkIsNaN; } });\r\nvar parseColor_1 = require(\"./utils/parseColor\");\r\nObject.defineProperty(exports, \"parseColorToHexStringArgb\", { enumerable: true, get: function () { return parseColor_1.parseColorToHexStringArgb; } });\r\nvar parseColor_2 = require(\"./utils/parseColor\");\r\nObject.defineProperty(exports, \"parseColorToHexStringAbgr\", { enumerable: true, get: function () { return parseColor_2.parseColorToHexStringAbgr; } });\r\nvar parseColor_3 = require(\"./utils/parseColor\");\r\nObject.defineProperty(exports, \"parseColorToUIntArgb\", { enumerable: true, get: function () { return parseColor_3.parseColorToUIntArgb; } });\r\nvar parseColor_4 = require(\"./utils/parseColor\");\r\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return parseColor_4.toHex; } });\r\nvar parseColor_5 = require(\"./utils/parseColor\");\r\nObject.defineProperty(exports, \"parseColorToTArgb\", { enumerable: true, get: function () { return parseColor_5.parseColorToTArgb; } });\r\nvar parseColor_6 = require(\"./utils/parseColor\");\r\nObject.defineProperty(exports, \"parseArgbToHtmlColor\", { enumerable: true, get: function () { return parseColor_6.parseArgbToHtmlColor; } });\r\nvar parseColor_7 = require(\"./utils/parseColor\");\r\nObject.defineProperty(exports, \"parseTArgbToHtmlColor\", { enumerable: true, get: function () { return parseColor_7.parseTArgbToHtmlColor; } });\r\nvar perfomance_1 = require(\"./utils/perfomance\");\r\nObject.defineProperty(exports, \"EPerformanceMarkType\", { enumerable: true, get: function () { return perfomance_1.EPerformanceMarkType; } });\r\nvar perfomance_2 = require(\"./utils/perfomance\");\r\nObject.defineProperty(exports, \"PerformanceDebugHelper\", { enumerable: true, get: function () { return perfomance_2.PerformanceDebugHelper; } });\r\nvar pointUtil_1 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"calcDistanceFromLine\", { enumerable: true, get: function () { return pointUtil_1.calcDistanceFromLine; } });\r\nvar pointUtil_2 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"calcCrossProduct\", { enumerable: true, get: function () { return pointUtil_2.calcCrossProduct; } });\r\nvar pointUtil_3 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"calcDistance\", { enumerable: true, get: function () { return pointUtil_3.calcDistance; } });\r\nvar pointUtil_4 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"testIsInBounds\", { enumerable: true, get: function () { return pointUtil_4.testIsInBounds; } });\r\nvar pointUtil_5 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"calcAnnotationBordersForAxisMarker\", { enumerable: true, get: function () { return pointUtil_5.calcAnnotationBordersForAxisMarker; } });\r\nvar pointUtil_6 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"testIsInXBounds\", { enumerable: true, get: function () { return pointUtil_6.testIsInXBounds; } });\r\nvar pointUtil_7 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"testIsInInterval\", { enumerable: true, get: function () { return pointUtil_7.testIsInInterval; } });\r\nvar pointUtil_8 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"calcDotProduct\", { enumerable: true, get: function () { return pointUtil_8.calcDotProduct; } });\r\nvar pointUtil_9 = require(\"./utils/pointUtil\");\r\nObject.defineProperty(exports, \"calcDistanceFromLineSegment\", { enumerable: true, get: function () { return pointUtil_9.calcDistanceFromLineSegment; } });\r\nvar random_1 = require(\"./utils/random\");\r\nObject.defineProperty(exports, \"getRandomInRange\", { enumerable: true, get: function () { return random_1.getRandomInRange; } });\r\nvar randomPricesDataSource_1 = require(\"./utils/randomPricesDataSource\");\r\nObject.defineProperty(exports, \"getStocksDataFactory\", { enumerable: true, get: function () { return randomPricesDataSource_1.getStocksDataFactory; } });\r\nvar randomPricesDataSource_2 = require(\"./utils/randomPricesDataSource\");\r\nObject.defineProperty(exports, \"getNextRandomPriceBarFactory\", { enumerable: true, get: function () { return randomPricesDataSource_2.getNextRandomPriceBarFactory; } });\r\nvar svgString_1 = require(\"./utils/svgString\");\r\nObject.defineProperty(exports, \"getAttributeFromString\", { enumerable: true, get: function () { return svgString_1.getAttributeFromString; } });\r\nvar text_1 = require(\"./utils/text\");\r\nObject.defineProperty(exports, \"wrapNativeText\", { enumerable: true, get: function () { return text_1.wrapNativeText; } });\r\nvar text_2 = require(\"./utils/text\");\r\nObject.defineProperty(exports, \"getNativeTextSize\", { enumerable: true, get: function () { return text_2.getNativeTextSize; } });\r\nvar tooltip_1 = require(\"./utils/tooltip\");\r\nObject.defineProperty(exports, \"ESize\", { enumerable: true, get: function () { return tooltip_1.ESize; } });\r\nvar tooltip_2 = require(\"./utils/tooltip\");\r\nObject.defineProperty(exports, \"ECoord\", { enumerable: true, get: function () { return tooltip_2.ECoord; } });\r\nvar tooltip_3 = require(\"./utils/tooltip\");\r\nObject.defineProperty(exports, \"EShift\", { enumerable: true, get: function () { return tooltip_3.EShift; } });\r\nvar translate_1 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"translateFromCanvasToSeriesViewRect\", { enumerable: true, get: function () { return translate_1.translateFromCanvasToSeriesViewRect; } });\r\nvar translate_2 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"translateFromSeriesViewRectToCanvas\", { enumerable: true, get: function () { return translate_2.translateFromSeriesViewRectToCanvas; } });\r\nvar translate_3 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"translateFromCanvasToSeriesViewRectX\", { enumerable: true, get: function () { return translate_3.translateFromCanvasToSeriesViewRectX; } });\r\nvar translate_4 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"translateFromCanvasToSeriesViewRectY\", { enumerable: true, get: function () { return translate_4.translateFromCanvasToSeriesViewRectY; } });\r\nvar translate_5 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"translateFromSeriesViewRectToCanvasX\", { enumerable: true, get: function () { return translate_5.translateFromSeriesViewRectToCanvasX; } });\r\nvar translate_6 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"translateFromSeriesViewRectToCanvasY\", { enumerable: true, get: function () { return translate_6.translateFromSeriesViewRectToCanvasY; } });\r\nvar translate_7 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"translateToNotScaled\", { enumerable: true, get: function () { return translate_7.translateToNotScaled; } });\r\nvar translate_8 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"translateDataValueRectToAbsolute\", { enumerable: true, get: function () { return translate_8.translateDataValueRectToAbsolute; } });\r\nvar translate_9 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"convertToHtmlPx\", { enumerable: true, get: function () { return translate_9.convertToHtmlPx; } });\r\nvar translate_10 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"convertToRelativeHtmlSize\", { enumerable: true, get: function () { return translate_10.convertToRelativeHtmlSize; } });\r\nvar translate_11 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"fitElementToViewRect\", { enumerable: true, get: function () { return translate_11.fitElementToViewRect; } });\r\nvar translate_12 = require(\"./utils/translate\");\r\nObject.defineProperty(exports, \"fitSvgToViewRect\", { enumerable: true, get: function () { return translate_12.fitSvgToViewRect; } });\r\nvar tsrExtensions_1 = require(\"./utils/tsrExtensions\");\r\nObject.defineProperty(exports, \"updateTsrVector4\", { enumerable: true, get: function () { return tsrExtensions_1.updateTsrVector4; } });\r\nvar tsrExtensions_2 = require(\"./utils/tsrExtensions\");\r\nObject.defineProperty(exports, \"fromTsrVector4\", { enumerable: true, get: function () { return tsrExtensions_2.fromTsrVector4; } });\r\nvar zeroArray2D_1 = require(\"./utils/zeroArray2D\");\r\nObject.defineProperty(exports, \"zeroArray2D\", { enumerable: true, get: function () { return zeroArray2D_1.zeroArray2D; } });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EVerticalAnchorPoint = exports.EHorizontalAnchorPoint = void 0;\r\nvar EHorizontalAnchorPoint;\r\n(function (EHorizontalAnchorPoint) {\r\n EHorizontalAnchorPoint[\"Left\"] = \"Left\";\r\n EHorizontalAnchorPoint[\"Center\"] = \"Center\";\r\n EHorizontalAnchorPoint[\"Right\"] = \"Right\";\r\n})(EHorizontalAnchorPoint = exports.EHorizontalAnchorPoint || (exports.EHorizontalAnchorPoint = {}));\r\nvar EVerticalAnchorPoint;\r\n(function (EVerticalAnchorPoint) {\r\n EVerticalAnchorPoint[\"Top\"] = \"Top\";\r\n EVerticalAnchorPoint[\"Center\"] = \"Center\";\r\n EVerticalAnchorPoint[\"Bottom\"] = \"Bottom\";\r\n})(EVerticalAnchorPoint = exports.EVerticalAnchorPoint || (exports.EVerticalAnchorPoint = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EAnimationType = void 0;\r\n/**\r\n * Enumeration constants to define the type of animations that a {@link BaseAnimation} represents\r\n */\r\nvar EAnimationType;\r\n(function (EAnimationType) {\r\n EAnimationType[\"Fade\"] = \"Fade\";\r\n EAnimationType[\"Scale\"] = \"Scale\";\r\n EAnimationType[\"Sweep\"] = \"Sweep\";\r\n EAnimationType[\"Wave\"] = \"Wave\";\r\n EAnimationType[\"Style\"] = \"Style\";\r\n EAnimationType[\"Custom\"] = \"Custom\";\r\n})(EAnimationType = exports.EAnimationType || (exports.EAnimationType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EAutoColorMode = void 0;\r\n/**\r\n * Enumeration constants to define when the auto coloring should be resolved.\r\n */\r\nvar EAutoColorMode;\r\n(function (EAutoColorMode) {\r\n EAutoColorMode[\"Never\"] = \"Never\";\r\n EAutoColorMode[\"Once\"] = \"Once\";\r\n EAutoColorMode[\"OnAddRemoveSeries\"] = \"OnAddRemoveSeries\";\r\n EAutoColorMode[\"Always\"] = \"Always\";\r\n})(EAutoColorMode = exports.EAutoColorMode || (exports.EAutoColorMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EAutoRange = void 0;\r\n/**\r\n * List of values for Autorange behaviour on Axis in SciChart\r\n */\r\nvar EAutoRange;\r\n(function (EAutoRange) {\r\n /**\r\n * (Default mode) AutoRange once on startup, after that, the user must specify {@link AxisCore.visibleRange}\r\n * or call {@link SciChartSurface.zoomExtents}\r\n */\r\n EAutoRange[\"Once\"] = \"Once\";\r\n /**\r\n * Autorange Always when the data changes\r\n */\r\n EAutoRange[\"Always\"] = \"Always\";\r\n /**\r\n * Never autorange (full manual mode)\r\n */\r\n EAutoRange[\"Never\"] = \"Never\";\r\n})(EAutoRange = exports.EAutoRange || (exports.EAutoRange = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.handleInvalidAxisAlignment = exports.getIsVertical = exports.getIsHorizontal = exports.EAxisAlignment = void 0;\r\n/**\r\n * Enumeration constants to define {@link AxisBase2D.alignment}\r\n */\r\nvar EAxisAlignment;\r\n(function (EAxisAlignment) {\r\n EAxisAlignment[\"Right\"] = \"Right\";\r\n EAxisAlignment[\"Left\"] = \"Left\";\r\n EAxisAlignment[\"Top\"] = \"Top\";\r\n EAxisAlignment[\"Bottom\"] = \"Bottom\";\r\n})(EAxisAlignment = exports.EAxisAlignment || (exports.EAxisAlignment = {}));\r\nvar getIsHorizontal = function (alignment) {\r\n if ([EAxisAlignment.Bottom, EAxisAlignment.Top].includes(alignment)) {\r\n return true;\r\n }\r\n if ([EAxisAlignment.Right, EAxisAlignment.Left].includes(alignment)) {\r\n return false;\r\n }\r\n return undefined;\r\n};\r\nexports.getIsHorizontal = getIsHorizontal;\r\nvar getIsVertical = function (alignment) {\r\n if ((0, exports.getIsHorizontal)(alignment) === false) {\r\n return true;\r\n }\r\n if ((0, exports.getIsHorizontal)(alignment) === true) {\r\n return false;\r\n }\r\n return undefined;\r\n};\r\nexports.getIsVertical = getIsVertical;\r\nvar handleInvalidAxisAlignment = function (alignment) {\r\n throw new Error(\"Invalid Axis Alignment value: \\\"\".concat(alignment, \"\\\"!\"));\r\n};\r\nexports.handleInvalidAxisAlignment = handleInvalidAxisAlignment;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EAxisType = void 0;\r\n/**\r\n * Enumeration constants to define the type of {@link AxisCore | Axis}\r\n */\r\nvar EAxisType;\r\n(function (EAxisType) {\r\n /**\r\n * The Axis is a Category Axis. X-values are measured based on index, not data-value\r\n */\r\n EAxisType[\"CategoryAxis\"] = \"CategoryAxis\";\r\n /**\r\n * The Axis is a Numeric value Axis. X-Values are measured based on value, not index\r\n */\r\n EAxisType[\"NumericAxis\"] = \"NumericAxis\";\r\n /**\r\n * The Axis is a Logarithmic Numeric value Axis. X/Y Values are measured based on logN(value)\r\n */\r\n EAxisType[\"LogarithmicAxis\"] = \"LogarithmicAxis\";\r\n /**\r\n * The Axis is a 3D Chart Numeric value Axis. X-Values are measured based on value, not index\r\n */\r\n EAxisType[\"NumericAxis3D\"] = \"NumericAxis3D\";\r\n /**\r\n * The Axis is a Date / Time value Axis. X-Values are measured based on value, not index\r\n */\r\n EAxisType[\"DateTimeNumericAxis\"] = \"DateTimeNumericAxis\";\r\n})(EAxisType = exports.EAxisType || (exports.EAxisType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EBaseType = void 0;\r\n/**\r\n * Enumeration constants to define Base types that can be registered using {@link registerType} or {@link registerFunction}\r\n * for use with the builder api\r\n */\r\nvar EBaseType;\r\n(function (EBaseType) {\r\n /** Subtype EAxisType */\r\n EBaseType[\"Axis\"] = \"Axis\";\r\n /** SubType EAnnotationType */\r\n EBaseType[\"Annotation\"] = \"Annotation\";\r\n /** Subtype ESeriesType */\r\n EBaseType[\"RenderableSeries\"] = \"RenderableSeries\";\r\n /** Subtype ELayoutManagerType */\r\n EBaseType[\"LayoutManager\"] = \"LayoutManager\";\r\n /** Subtype EThemeProviderType or your own type */\r\n EBaseType[\"ThemeProvider\"] = \"ThemeProvider\";\r\n /** Subtype EChart2DModifierType */\r\n EBaseType[\"Chart2DModifier\"] = \"Chart2DModifier\";\r\n /** Subtype ELabelProviderType */\r\n EBaseType[\"LabelProvider\"] = \"LabelProvider\";\r\n /** Subtype EPointMarkerType */\r\n EBaseType[\"PointMarker\"] = \"PointMarker\";\r\n /** Subtype ELayoutManagerType */\r\n EBaseType[\"ShaderEffect\"] = \"ShaderEffect\";\r\n /** SubType EPaletteProviderType */\r\n EBaseType[\"PaletteProvider\"] = \"PaletteProvider\";\r\n /** Subtype EAnimationType */\r\n EBaseType[\"Animation\"] = \"Animation\";\r\n /** Subtypes are \"Default\" or your own type */\r\n EBaseType[\"Loader\"] = \"Loader\";\r\n /** Subtypes are \"Template\" or your own type */\r\n EBaseType[\"MetadataGenerator\"] = \"MetadataGenerator\";\r\n /** Used for options that are functions */\r\n EBaseType[\"OptionFunction\"] = \"OptionFunction\";\r\n /** Used for functions that perform post-creation configuration for builder charts */\r\n EBaseType[\"OnCreateFunction\"] = \"OnCreateFunction\";\r\n /** Subtype EDataFilterType */\r\n EBaseType[\"DataFilter\"] = \"DataFilter\";\r\n /** Subtype ELayoutStrategyType */\r\n EBaseType[\"LayoutStrategy\"] = \"LayoutStrategy\";\r\n /** Subtype EDataLabelProviderType */\r\n EBaseType[\"DataLabelProvider\"] = \"DataLabelProvider\";\r\n})(EBaseType = exports.EBaseType || (exports.EBaseType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EChart3DModifierType = exports.EChart2DModifierType = void 0;\r\nvar EChart2DModifierType;\r\n(function (EChart2DModifierType) {\r\n EChart2DModifierType[\"Cursor\"] = \"Cursor\";\r\n EChart2DModifierType[\"DataPointSelection\"] = \"DataPointSelection\";\r\n EChart2DModifierType[\"Legend\"] = \"Legend\";\r\n EChart2DModifierType[\"MouseWheelZoom\"] = \"MouseWheelZoom\";\r\n EChart2DModifierType[\"PinchZoom\"] = \"PinchZoom\";\r\n EChart2DModifierType[\"Rollover\"] = \"Rollover\";\r\n EChart2DModifierType[\"VerticalSlice\"] = \"VerticalSlice\";\r\n EChart2DModifierType[\"RubberBandXYZoom\"] = \"RubberBandXYZoom\";\r\n EChart2DModifierType[\"SeriesSelection\"] = \"SeriesSelection\";\r\n EChart2DModifierType[\"XAxisDrag\"] = \"XAxisDrag\";\r\n EChart2DModifierType[\"YAxisDrag\"] = \"YAxisDrag\";\r\n EChart2DModifierType[\"ZoomExtents\"] = \"ZoomExtents\";\r\n EChart2DModifierType[\"ZoomPan\"] = \"ZoomPan\";\r\n EChart2DModifierType[\"OverviewRangeSelection\"] = \"OverviewRangeSelection\";\r\n EChart2DModifierType[\"AnnotationHover\"] = \"AnnotationHover\";\r\n EChart2DModifierType[\"Custom\"] = \"Custom\";\r\n})(EChart2DModifierType = exports.EChart2DModifierType || (exports.EChart2DModifierType = {}));\r\nvar EChart3DModifierType;\r\n(function (EChart3DModifierType) {\r\n EChart3DModifierType[\"MouseWheelZoom\"] = \"MouseWheelZoom\";\r\n EChart3DModifierType[\"Orbit\"] = \"Orbit\";\r\n EChart3DModifierType[\"ZoomExtents\"] = \"ZoomExtents\";\r\n EChart3DModifierType[\"Tooltip\"] = \"Tooltip\";\r\n EChart3DModifierType[\"PinchZoom\"] = \"PinchZoom\";\r\n EChart3DModifierType[\"Custom\"] = \"Custom\";\r\n})(EChart3DModifierType = exports.EChart3DModifierType || (exports.EChart3DModifierType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EColor = void 0;\r\nvar EColor;\r\n(function (EColor) {\r\n EColor[\"Aqua\"] = \"#00ffff\";\r\n EColor[\"BackgroundColor\"] = \"#1c1c1e\";\r\n EColor[\"Blue\"] = \"#368BC1\";\r\n EColor[\"DarkGreen\"] = \"#03925e\";\r\n EColor[\"DarkRed\"] = \"#be0000\";\r\n EColor[\"DarkGrey\"] = \"#7e8486\";\r\n EColor[\"DefaultGridBandsColor\"] = \"#202123\";\r\n EColor[\"DefaultTextColor\"] = \"#c8c7c3\";\r\n EColor[\"DodgerBlue\"] = \"#1E90FF\";\r\n EColor[\"Green\"] = \"#228B22\";\r\n EColor[\"LightGrey\"] = \"#eeeeee\";\r\n EColor[\"LightSteelBlue\"] = \"#b0c4de\";\r\n EColor[\"LimeGreen\"] = \"#32CD32\";\r\n EColor[\"Orange\"] = \"#ff6600\";\r\n EColor[\"OrangeRed\"] = \"#FF4500\";\r\n EColor[\"Purple\"] = \"#B200FF\";\r\n EColor[\"Red\"] = \"#ff0000\";\r\n EColor[\"White\"] = \"#ffffff\";\r\n EColor[\"Yellow\"] = \"#FFFF00\";\r\n})(EColor = exports.EColor || (exports.EColor = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ECursorStyle = void 0;\r\nvar ECursorStyle;\r\n(function (ECursorStyle) {\r\n ECursorStyle[\"NS\"] = \"ns-resize\";\r\n ECursorStyle[\"EW\"] = \"ew-resize\";\r\n ECursorStyle[\"Defalut\"] = \"auto\";\r\n})(ECursorStyle = exports.ECursorStyle || (exports.ECursorStyle = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EDataFilterType = void 0;\r\nvar EDataFilterType;\r\n(function (EDataFilterType) {\r\n EDataFilterType[\"XyLinearTrend\"] = \"XyLinearTrend\";\r\n EDataFilterType[\"XyMovingAverage\"] = \"XyMovingAverage\";\r\n EDataFilterType[\"XyRatio\"] = \"XyRatio\";\r\n EDataFilterType[\"XyScaleOffset\"] = \"XyScaleOffset\";\r\n EDataFilterType[\"XyyScaleOffset\"] = \"XyyScaleOffset\";\r\n EDataFilterType[\"XyzScaleOffset\"] = \"XyzScaleOffset\";\r\n EDataFilterType[\"HlcScaleOffset\"] = \"HlcScaleOffset\";\r\n EDataFilterType[\"OhlcScaleOffset\"] = \"OhlcScaleOffset\";\r\n})(EDataFilterType = exports.EDataFilterType || (exports.EDataFilterType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EDataLabelProviderType = void 0;\r\n/**\r\n * Enumeration constants to define the type of {@link DataLabelProvider | DataLabelProvider}\r\n */\r\nvar EDataLabelProviderType;\r\n(function (EDataLabelProviderType) {\r\n EDataLabelProviderType[\"Default\"] = \"Default\";\r\n EDataLabelProviderType[\"Line\"] = \"Line\";\r\n EDataLabelProviderType[\"Column\"] = \"Column\";\r\n EDataLabelProviderType[\"Text\"] = \"Text\";\r\n EDataLabelProviderType[\"Heatmap\"] = \"Heatmap\";\r\n EDataLabelProviderType[\"Band\"] = \"Band\";\r\n EDataLabelProviderType[\"Bubble\"] = \"Bubble\";\r\n EDataLabelProviderType[\"NonUniformHeatmap\"] = \"NonUniformHeatmap\";\r\n EDataLabelProviderType[\"Contours\"] = \"Contours\";\r\n EDataLabelProviderType[\"StackedCollection\"] = \"StackedCollection\";\r\n EDataLabelProviderType[\"Custom\"] = \"Custom\";\r\n})(EDataLabelProviderType = exports.EDataLabelProviderType || (exports.EDataLabelProviderType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EDataLabelSkipMode = void 0;\r\n/**\r\n * Specifies Data Label Skip Modes as applied to {@DataLabelProvider.skipMode}\r\n */\r\nvar EDataLabelSkipMode;\r\n(function (EDataLabelSkipMode) {\r\n /**\r\n * Show all data labels\r\n */\r\n EDataLabelSkipMode[\"ShowAll\"] = \"ShowAll\";\r\n /**\r\n * Skip N=skipNumber labels if the current overlaps the previous\r\n */\r\n EDataLabelSkipMode[\"SkipIfOverlapPrevious\"] = \"SkipIfOverlapPrevious\";\r\n /**\r\n * Skip N=skipNumber labels if the current overlaps the next\r\n */\r\n EDataLabelSkipMode[\"SkipIfOverlapNext\"] = \"SkipIfOverlapNext\";\r\n /**\r\n * Skip N=skipNumber labels if the current has the same value as the previous\r\n */\r\n EDataLabelSkipMode[\"SkipIfSame\"] = \"SkipIfSame\";\r\n})(EDataLabelSkipMode = exports.EDataLabelSkipMode || (exports.EDataLabelSkipMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EDataPointWidthMode = void 0;\r\n/**\r\n * Defines enumeration constants for mode of {@link FastErrorBarsRenderableSeries.dataPointWidth}\r\n */\r\nvar EDataPointWidthMode;\r\n(function (EDataPointWidthMode) {\r\n /**\r\n * Interprets Data Point Width as an absolute values\r\n */\r\n EDataPointWidthMode[\"Absolute\"] = \"Absolute\";\r\n /**\r\n * Interprets Data Point Width as a relative value\r\n */\r\n EDataPointWidthMode[\"Relative\"] = \"Relative\";\r\n})(EDataPointWidthMode = exports.EDataPointWidthMode || (exports.EDataPointWidthMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EDefaultRenderLayer = void 0;\r\nvar EDefaultRenderLayer;\r\n(function (EDefaultRenderLayer) {\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"Background\"] = 0] = \"Background\";\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"AxisBandsLayer\"] = 1] = \"AxisBandsLayer\";\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"MinorGridLinesLayer\"] = 2] = \"MinorGridLinesLayer\";\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"MajorGridLinesLayer\"] = 3] = \"MajorGridLinesLayer\";\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"AnnotationsBelowSeriesLayer\"] = 4] = \"AnnotationsBelowSeriesLayer\";\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"SeriesLayer\"] = 5] = \"SeriesLayer\";\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"AxisBordersLayer\"] = 6] = \"AxisBordersLayer\";\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"AxesLayer\"] = 7] = \"AxesLayer\";\r\n EDefaultRenderLayer[EDefaultRenderLayer[\"AnnotationsAboveSeriesLayer\"] = 8] = \"AnnotationsAboveSeriesLayer\";\r\n})(EDefaultRenderLayer = exports.EDefaultRenderLayer || (exports.EDefaultRenderLayer = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EDragMode = void 0;\r\n/**\r\n * Enumeration constants to define the drag mode of {@link XAxisDragModifier | YAxisDragModifier}\r\n */\r\nvar EDragMode;\r\n(function (EDragMode) {\r\n /**\r\n * When this EDragMode is chosen, the axis scales at the top and bottom when dragging the mouse\r\n */\r\n EDragMode[\"Scaling\"] = \"Scaling\";\r\n /**\r\n * When this EDragMode is chosen, the axis pans on dragging\r\n */\r\n EDragMode[\"Panning\"] = \"Panning\";\r\n})(EDragMode = exports.EDragMode || (exports.EDragMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EErrorDirection = void 0;\r\n/**\r\n * List of values for errorDirection in {@link FastErrorBarsRenderableSeries}\r\n */\r\nvar EErrorDirection;\r\n(function (EErrorDirection) {\r\n /**\r\n * Draw error bars horizontally\r\n */\r\n EErrorDirection[\"Horizontal\"] = \"Horizontal\";\r\n /**\r\n * Draw error bars vertically\r\n */\r\n EErrorDirection[\"Vertical\"] = \"Vertical\";\r\n})(EErrorDirection = exports.EErrorDirection || (exports.EErrorDirection = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EErrorMode = void 0;\r\n/**\r\n * List of values for errorMode in {@link FastErrorBarsRenderableSeries}\r\n */\r\nvar EErrorMode;\r\n(function (EErrorMode) {\r\n /**\r\n * Draw both high and low error values\r\n */\r\n EErrorMode[\"Both\"] = \"Both\";\r\n /**\r\n * Draw high error value only\r\n */\r\n EErrorMode[\"High\"] = \"High\";\r\n /**\r\n * Draw low error value only\r\n */\r\n EErrorMode[\"Low\"] = \"Low\";\r\n})(EErrorMode = exports.EErrorMode || (exports.EErrorMode = {}));\r\n","\"use strict\";\r\n// MouseEvent button values accordingly to https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button#value\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EExecuteOn = void 0;\r\n/**\r\n * Defines constants for when a {@link ChartModifierBase | Chart Modifier} operation occurs\r\n */\r\nvar EExecuteOn;\r\n(function (EExecuteOn) {\r\n /**\r\n * Execute on MouseRightButton\r\n */\r\n EExecuteOn[EExecuteOn[\"MouseLeftButton\"] = 0] = \"MouseLeftButton\";\r\n /**\r\n * Execute on MouseRightButton\r\n */\r\n EExecuteOn[EExecuteOn[\"MouseMiddleButton\"] = 1] = \"MouseMiddleButton\";\r\n /**\r\n * Execute on MouseRightButton\r\n */\r\n EExecuteOn[EExecuteOn[\"MouseRightButton\"] = 2] = \"MouseRightButton\";\r\n /**\r\n * Execute on BrowserBackButton\r\n */\r\n EExecuteOn[EExecuteOn[\"BrowserBackButton\"] = 3] = \"BrowserBackButton\";\r\n /**\r\n * Execute on MouseDoubleClick\r\n */\r\n EExecuteOn[EExecuteOn[\"BrowserForwardButton\"] = 4] = \"BrowserForwardButton\";\r\n})(EExecuteOn = exports.EExecuteOn || (exports.EExecuteOn = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EHoverMode = void 0;\r\n/**\r\n * Modes defining the rules for detecting a hover event\r\n */\r\nvar EHoverMode;\r\n(function (EHoverMode) {\r\n /** Treat all included entities as hovered if it is hit */\r\n EHoverMode[\"Multi\"] = \"Multi\";\r\n /** Treat a single topmost entity as hovered if it hit and above included target */\r\n EHoverMode[\"TopmostIncluded\"] = \"TopmostIncluded\";\r\n /** Treat a single topmost entity as hovered if hit and above any other hoverable target (included or not) */\r\n EHoverMode[\"AbsoluteTopmost\"] = \"AbsoluteTopmost\";\r\n})(EHoverMode = exports.EHoverMode || (exports.EHoverMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ELabelAlignment = void 0;\r\n/**\r\n * Enumeration constants to define 2D text label horizontal alignment for vertical axes\r\n */\r\nvar ELabelAlignment;\r\n(function (ELabelAlignment) {\r\n /**\r\n * Aligned to minimise the space between the label and axis, ie right for left axis and left for right axis (opposite if inner axis)\r\n */\r\n ELabelAlignment[\"Auto\"] = \"Auto\";\r\n /**\r\n * Left Aligned\r\n */\r\n ELabelAlignment[\"Left\"] = \"Left\";\r\n /**\r\n * Right Aligned\r\n */\r\n ELabelAlignment[\"Right\"] = \"Right\";\r\n /**\r\n * Center Aligned\r\n */\r\n ELabelAlignment[\"Center\"] = \"Center\";\r\n})(ELabelAlignment = exports.ELabelAlignment || (exports.ELabelAlignment = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EVerticalAlignment = exports.EHorizontalAlignment = exports.ELabelPlacement = void 0;\r\nvar ELabelPlacement;\r\n(function (ELabelPlacement) {\r\n ELabelPlacement[\"Right\"] = \"Right\";\r\n ELabelPlacement[\"TopRight\"] = \"TopRight\";\r\n ELabelPlacement[\"BottomRight\"] = \"BottomRight\";\r\n ELabelPlacement[\"Bottom\"] = \"Bottom\";\r\n ELabelPlacement[\"Left\"] = \"Left\";\r\n ELabelPlacement[\"TopLeft\"] = \"TopLeft\";\r\n ELabelPlacement[\"BottomLeft\"] = \"BottomLeft\";\r\n ELabelPlacement[\"Top\"] = \"Top\";\r\n ELabelPlacement[\"Axis\"] = \"Axis\";\r\n ELabelPlacement[\"Auto\"] = \"Auto\";\r\n})(ELabelPlacement = exports.ELabelPlacement || (exports.ELabelPlacement = {}));\r\nvar EHorizontalAlignment;\r\n(function (EHorizontalAlignment) {\r\n EHorizontalAlignment[\"Right\"] = \"Right\";\r\n EHorizontalAlignment[\"Left\"] = \"Left\";\r\n})(EHorizontalAlignment = exports.EHorizontalAlignment || (exports.EHorizontalAlignment = {}));\r\nvar EVerticalAlignment;\r\n(function (EVerticalAlignment) {\r\n EVerticalAlignment[\"Top\"] = \"Top\";\r\n EVerticalAlignment[\"Bottom\"] = \"Bottom\";\r\n})(EVerticalAlignment = exports.EVerticalAlignment || (exports.EVerticalAlignment = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ELabelProviderType = void 0;\r\n/**\r\n * Enumeration constants to define the type of {@link LabelProvider | LabelProvider}\r\n */\r\nvar ELabelProviderType;\r\n(function (ELabelProviderType) {\r\n /**\r\n * Formats numbers using a variety of formats see {@link ENumericFormat}\r\n */\r\n ELabelProviderType[\"Numeric\"] = \"Numeric\";\r\n /**\r\n * Numeric formatting for logarithmic axis, including base aware scientific notation\r\n */\r\n ELabelProviderType[\"Logarithmic\"] = \"Logarithmic\";\r\n /**\r\n * Formats timestamps as a Date. DDMMYYYY by default\r\n */\r\n ELabelProviderType[\"Date\"] = \"Date\";\r\n /**\r\n * Formats timestamps as a DateTime, using times or dates depending on the range.\r\n */\r\n ELabelProviderType[\"SmartDate\"] = \"SmartDate\";\r\n /**\r\n * Maps values to text provided\r\n */\r\n ELabelProviderType[\"Text\"] = \"Text\";\r\n /**\r\n * Label provider for PieSurface\r\n */\r\n ELabelProviderType[\"Pie\"] = \"Pie\";\r\n})(ELabelProviderType = exports.ELabelProviderType || (exports.ELabelProviderType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ELayoutManagerType = void 0;\r\n/**\r\n * Enumeration constants to define the type of {@link LayoutManager | LayoutManager}\r\n */\r\nvar ELayoutManagerType;\r\n(function (ELayoutManagerType) {\r\n ELayoutManagerType[\"Default\"] = \"Default\";\r\n ELayoutManagerType[\"CentralAxes\"] = \"CentralAxes\";\r\n ELayoutManagerType[\"Synchronised\"] = \"Synchronised\";\r\n})(ELayoutManagerType = exports.ELayoutManagerType || (exports.ELayoutManagerType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ELayoutStrategyType = void 0;\r\nvar ELayoutStrategyType;\r\n(function (ELayoutStrategyType) {\r\n ELayoutStrategyType[\"LeftOuter\"] = \"LeftOuter\";\r\n ELayoutStrategyType[\"RightOuter\"] = \"RightOuter\";\r\n ELayoutStrategyType[\"TopOuter\"] = \"TopOuter\";\r\n ELayoutStrategyType[\"BottomOuter\"] = \"BottomOuter\";\r\n ELayoutStrategyType[\"LeftInner\"] = \"LeftInner\";\r\n ELayoutStrategyType[\"RightInner\"] = \"RightInner\";\r\n ELayoutStrategyType[\"TopInner\"] = \"TopInner\";\r\n ELayoutStrategyType[\"BottomInner\"] = \"BottomInner\";\r\n ELayoutStrategyType[\"LeftStacked\"] = \"LeftStacked\";\r\n ELayoutStrategyType[\"RightStacked\"] = \"RightStacked\";\r\n ELayoutStrategyType[\"TopStacked\"] = \"TopStacked\";\r\n ELayoutStrategyType[\"BottomStacked\"] = \"BottomStacked\";\r\n ELayoutStrategyType[\"Custom\"] = \"Custom\";\r\n})(ELayoutStrategyType = exports.ELayoutStrategyType || (exports.ELayoutStrategyType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EMousePosition = void 0;\r\n/**\r\n * Defines the MousePosition enum constants, used by the {@link CursorModifier} and {@link RolloverModifier}\r\n */\r\nvar EMousePosition;\r\n(function (EMousePosition) {\r\n /**\r\n * The mouse position is outside the main canvas\r\n */\r\n EMousePosition[\"OutOfCanvas\"] = \"OutOfCanvas\";\r\n /**\r\n * The mouse position is in the Axis area\r\n */\r\n EMousePosition[\"AxisArea\"] = \"AxisArea\";\r\n /**\r\n * The mouse position is in the Series area\r\n */\r\n EMousePosition[\"SeriesArea\"] = \"SeriesArea\";\r\n})(EMousePosition = exports.EMousePosition || (exports.EMousePosition = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.subArray = exports.isNumberArray = exports.isTypedArray = void 0;\r\nfunction isTypedArray(a) {\r\n return a instanceof Float64Array;\r\n}\r\nexports.isTypedArray = isTypedArray;\r\nfunction isNumberArray(a) {\r\n // Check type is an array, and first element is number\r\n return Array.isArray(a) && (a.length > 0 ? typeof a[0] === \"number\" : true);\r\n}\r\nexports.isNumberArray = isNumberArray;\r\nfunction subArray(array, startIndex, endIndex) {\r\n if (isTypedArray(array)) {\r\n // We can define a view\r\n return array.subarray(startIndex, endIndex);\r\n }\r\n else {\r\n // Slice is faster than new Float64Array(array).subarray\r\n return array.slice(startIndex, endIndex);\r\n }\r\n}\r\nexports.subArray = subArray;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ENumericFormat = void 0;\r\n/**\r\n * Enumeration constants for standard formatting strings\r\n */\r\nvar ENumericFormat;\r\n(function (ENumericFormat) {\r\n /**\r\n * No format, return the string representation unchanged\r\n */\r\n ENumericFormat[\"NoFormat\"] = \"NoFormat\";\r\n /**\r\n * Format to a specified number of decimal places\r\n */\r\n ENumericFormat[\"Decimal\"] = \"Decimal\";\r\n /**\r\n * Format to a specified number of significant figures\r\n */\r\n ENumericFormat[\"SignificantFigures\"] = \"SignificantFigures\";\r\n /**\r\n * Format as a date in format DD/MM/YYYY\r\n */\r\n ENumericFormat[\"Date_DDMMYYYY\"] = \"Date_DDMMYYYY\";\r\n /**\r\n * Format as a date in format DD/MM/YY\r\n */\r\n ENumericFormat[\"Date_DDMMYY\"] = \"Date_DDMMYY\";\r\n /**\r\n * Format as a date in format DD/MM HH:MM\r\n */\r\n ENumericFormat[\"Date_DDMMHHMM\"] = \"Date_DDMMHHMM\";\r\n /**\r\n * Format as a date in format DD/MM\r\n */\r\n ENumericFormat[\"Date_DDMM\"] = \"Date_DDMM\";\r\n /**\r\n * Format as a date in format HH:MM\r\n */\r\n ENumericFormat[\"Date_HHMM\"] = \"Date_HHMM\";\r\n /**\r\n * Format as a date in format HH:MM:SS\r\n */\r\n ENumericFormat[\"Date_HHMMSS\"] = \"Date_HHMMSS\";\r\n /**\r\n * Format as a date in format SS.ms\r\n */\r\n ENumericFormat[\"Date_SSms\"] = \"Date_SSms\";\r\n /**\r\n * Format using Exponential notation to a specified number of significant figures eg 1.0E0, 1.5E1, 2.7E2\r\n * Note that this will ALWAYS be base 10, even when used on a Logarithmic axis\r\n */\r\n ENumericFormat[\"Exponential\"] = \"Exponential\";\r\n /**\r\n * Format using Scientific notation to a specified number of significant figures eg 1.0x10^1, 1.5x10^2, 2.7x10^3\r\n * On a Logarithmic axis, the base will be the same as the axis logarithmic base\r\n */\r\n ENumericFormat[\"Scientific\"] = \"Scientific\";\r\n /**\r\n * Engineering notation, eg 12.32K, 1.5M, 2.7G\r\n * @feature You can pass your custom prefixes as {@link IEngineeringPrefix}\r\n */\r\n ENumericFormat[\"Engineering\"] = \"Engineering\";\r\n})(ENumericFormat = exports.ENumericFormat || (exports.ENumericFormat = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EPaletteProviderType = void 0;\r\n/**\r\n * Enumeration constants to define the type of {@link PaletteProvider | PaletteProvider}\r\n */\r\nvar EPaletteProviderType;\r\n(function (EPaletteProviderType) {\r\n /** PaletteProvider created by {@link PaletteFactory.createGradient | PaletteFactory.createGradient} */\r\n EPaletteProviderType[\"Gradient\"] = \"Gradient\";\r\n /** Simple PaletteProvider to apply a different style to selected datapoints\r\n * Used in conjunction with {@link DataPointSelectionModifier }\r\n */\r\n EPaletteProviderType[\"DataPointSelection\"] = \"DataPointSelection\";\r\n /** User created PaletteProvider. Use customType to specify the name of the registered custom type. */\r\n EPaletteProviderType[\"Custom\"] = \"Custom\";\r\n})(EPaletteProviderType = exports.EPaletteProviderType || (exports.EPaletteProviderType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EPointMarkerType = void 0;\r\n/**\r\n * Enumeration constants to define the type of {@link BasePointMarker}\r\n */\r\nvar EPointMarkerType;\r\n(function (EPointMarkerType) {\r\n /**\r\n * The EllipsePointMarker\r\n */\r\n EPointMarkerType[\"Ellipse\"] = \"Ellipse\";\r\n /**\r\n * The CrossPointMarker\r\n */\r\n EPointMarkerType[\"Cross\"] = \"Cross\";\r\n /**\r\n * The SpritePointMarker\r\n */\r\n EPointMarkerType[\"Sprite\"] = \"Sprite\";\r\n /**\r\n * The SquarePointMarker\r\n */\r\n EPointMarkerType[\"Square\"] = \"Square\";\r\n /**\r\n * The TrianglePointMarker\r\n */\r\n EPointMarkerType[\"Triangle\"] = \"Triangle\";\r\n /**\r\n * The XPointMarker\r\n */\r\n EPointMarkerType[\"X\"] = \"X\";\r\n /** A user defined custom point marker. Use customType in the definition to specify the name */\r\n EPointMarkerType[\"Custom\"] = \"Custom\";\r\n})(EPointMarkerType = exports.EPointMarkerType || (exports.EPointMarkerType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ERenderLayer = void 0;\r\nvar ERenderLayer;\r\n(function (ERenderLayer) {\r\n ERenderLayer[ERenderLayer[\"First\"] = 0] = \"First\";\r\n ERenderLayer[ERenderLayer[\"Second\"] = 1] = \"Second\";\r\n ERenderLayer[ERenderLayer[\"Third\"] = 2] = \"Third\";\r\n})(ERenderLayer = exports.ERenderLayer || (exports.ERenderLayer = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ESceneEntityType = void 0;\r\n/**\r\n * Enumeration constants to define the type of {@link BaseSceneEntity3D | Scene Entity }\r\n */\r\nvar ESceneEntityType;\r\n(function (ESceneEntityType) {\r\n /**\r\n * The entity is an axis cube\r\n */\r\n ESceneEntityType[ESceneEntityType[\"AxisCubeEntity\"] = 0] = \"AxisCubeEntity\";\r\n /**\r\n * The entity is a custom entity\r\n */\r\n ESceneEntityType[ESceneEntityType[\"Custom\"] = 1] = \"Custom\";\r\n /**\r\n * The entity is an Xyz gizmo\r\n */\r\n ESceneEntityType[ESceneEntityType[\"GizmoEntity\"] = 2] = \"GizmoEntity\";\r\n /**\r\n * The entity is the root scene entity\r\n */\r\n ESceneEntityType[ESceneEntityType[\"RootSceneEntity\"] = 3] = \"RootSceneEntity\";\r\n /**\r\n * The entity is a Scatter 3D or Bubble 3D entity\r\n */\r\n ESceneEntityType[ESceneEntityType[\"ScatterPointsSceneEntity\"] = 4] = \"ScatterPointsSceneEntity\";\r\n /**\r\n * A generic WebAssembly native entity\r\n */\r\n ESceneEntityType[ESceneEntityType[\"SCRTSceneEntity\"] = 5] = \"SCRTSceneEntity\";\r\n /**\r\n * The entity is a Surface Mesh or Surface Plot 3D entity\r\n */\r\n ESceneEntityType[ESceneEntityType[\"SurfaceMeshSceneEntity\"] = 6] = \"SurfaceMeshSceneEntity\";\r\n /**\r\n * the entity is a Point Line 3D or Line 3D entity\r\n */\r\n ESceneEntityType[ESceneEntityType[\"PointLine3DSceneEntity\"] = 7] = \"PointLine3DSceneEntity\";\r\n})(ESceneEntityType = exports.ESceneEntityType || (exports.ESceneEntityType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ESciChartSurfaceType = void 0;\r\nvar ESciChartSurfaceType;\r\n(function (ESciChartSurfaceType) {\r\n ESciChartSurfaceType[\"Default2D\"] = \"Default2D\";\r\n ESciChartSurfaceType[\"Pie2D\"] = \"Pie2D\";\r\n ESciChartSurfaceType[\"Default3D\"] = \"Default3D\";\r\n})(ESciChartSurfaceType = exports.ESciChartSurfaceType || (exports.ESciChartSurfaceType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.convertSearchMode = exports.ESearchMode = void 0;\r\n/**\r\n * Enumeration constants to define search mode\r\n */\r\nvar ESearchMode;\r\n(function (ESearchMode) {\r\n /**\r\n * Specifies exact search. If the index is not found, -1 is returned\r\n */\r\n ESearchMode[\"Exact\"] = \"Exact\";\r\n /**\r\n * Specifies the nearest index. This will round up or down if the search is in-between x-values\r\n */\r\n ESearchMode[\"Nearest\"] = \"Nearest\";\r\n /**\r\n * Rounds down to the nearest index\r\n */\r\n ESearchMode[\"RoundDown\"] = \"RoundDown\";\r\n /**\r\n * Rounds up to the nearest index\r\n */\r\n ESearchMode[\"RoundUp\"] = \"RoundUp\";\r\n})(ESearchMode = exports.ESearchMode || (exports.ESearchMode = {}));\r\n/**\r\n * Converts ESearchMode (typescript friendly Enum) to SCRTFindIndexSearchMode which is required by the webassembly engine\r\n * @param wasmContext\r\n * @param mode\r\n */\r\nvar convertSearchMode = function (wasmContext, mode) {\r\n switch (mode) {\r\n case ESearchMode.Exact:\r\n return wasmContext.SCRTFindIndexSearchMode.Exact;\r\n case ESearchMode.Nearest:\r\n return wasmContext.SCRTFindIndexSearchMode.Nearest;\r\n case ESearchMode.RoundDown:\r\n return wasmContext.SCRTFindIndexSearchMode.RoundDown;\r\n case ESearchMode.RoundUp:\r\n return wasmContext.SCRTFindIndexSearchMode.RoundUp;\r\n }\r\n};\r\nexports.convertSearchMode = convertSearchMode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ESeriesType = void 0;\r\n/**\r\n * Enumeration constants to define the type of series, or chart type that a {@link BaseRenderableSeries} represents\r\n */\r\nvar ESeriesType;\r\n(function (ESeriesType) {\r\n /** Type of {@link FastBandRenderableSeries} */\r\n ESeriesType[\"BandSeries\"] = \"BandSeries\";\r\n /** Type of {@link SplineBandRenderableSeries} */\r\n ESeriesType[\"SplineBandSeries\"] = \"SplineBandSeries\";\r\n /** Type of {@link FastBubbleRenderableSeries } */\r\n ESeriesType[\"BubbleSeries\"] = \"BubbleSeries\";\r\n /** Type of {@link FastCandlestickRenderableSeries } */\r\n ESeriesType[\"CandlestickSeries\"] = \"CandlestickSeries\";\r\n /** Type of {@link FastColumnRenderableSeries} */\r\n ESeriesType[\"ColumnSeries\"] = \"ColumnSeries\";\r\n /** Type of {@link FastImpulseRenderableSeries} */\r\n ESeriesType[\"ImpulseSeries\"] = \"ImpulseSeries\";\r\n /** Type of {@link FastLineRenderableSeries} */\r\n ESeriesType[\"LineSeries\"] = \"LineSeries\";\r\n /** Type of {@link SplineLineRenderableSeries} */\r\n ESeriesType[\"SplineLineSeries\"] = \"SplineLineSeries\";\r\n /** Type of {@link FastMountainRenderableSeries} */\r\n ESeriesType[\"MountainSeries\"] = \"MountainSeries\";\r\n /** Type of {@link SplineMountainRenderableSeries} */\r\n ESeriesType[\"SplineMountainSeries\"] = \"SplineMountainSeries\";\r\n /** Type of {@link FastOhlcRenderableSeries} */\r\n ESeriesType[\"OhlcSeries\"] = \"OhlcSeries\";\r\n /** Type of {@link StackedColumnRenderableSeries} */\r\n ESeriesType[\"StackedColumnSeries\"] = \"StackedColumnSeries\";\r\n /** Type of {@link StackedMountainRenderableSeries} */\r\n ESeriesType[\"StackedMountainSeries\"] = \"StackedMountainSeries\";\r\n /** Type of {@link UniformContoursRenderableSeries} */\r\n ESeriesType[\"UniformContoursSeries\"] = \"UniformContoursSeries\";\r\n /** Type of {@link UniformHeatmapRenderableSeries} */\r\n ESeriesType[\"UniformHeatmapSeries\"] = \"UniformHeatmapSeries\";\r\n /** Type of {@link NonUniformHeatmapRenderableSeries} */\r\n ESeriesType[\"NonUniformHeatmapSeries\"] = \"NonUniformHeatmapSeries\";\r\n /** Type of {@link StackedMountainCollection} */\r\n ESeriesType[\"StackedMountainCollection\"] = \"StackedMountainCollection\";\r\n /** Type of {@link StackedColumnCollection} */\r\n ESeriesType[\"StackedColumnCollection\"] = \"StackedColumnCollection\";\r\n /** Type of {@link XyScatterRenderableSeries} */\r\n ESeriesType[\"ScatterSeries\"] = \"ScatterSeries\";\r\n /** Type of {@link FastErrorBarsRenderableSeries} */\r\n ESeriesType[\"ErrorBarsSeries\"] = \"ErrorBarsSeries\";\r\n /** Type of {@link FastTextRenderableSeries} */\r\n ESeriesType[\"TextSeries\"] = \"TextSeries\";\r\n /** Custom series type */\r\n ESeriesType[\"Custom\"] = \"Custom\";\r\n})(ESeriesType = exports.ESeriesType || (exports.ESeriesType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EShaderEffectType = void 0;\r\nvar EShaderEffectType;\r\n(function (EShaderEffectType) {\r\n EShaderEffectType[\"Glow\"] = \"Glow\";\r\n EShaderEffectType[\"Shadow\"] = \"Shadow\";\r\n})(EShaderEffectType = exports.EShaderEffectType || (exports.EShaderEffectType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Size = void 0;\r\n/**\r\n * Defines a Size type with Width, Height\r\n */\r\nvar Size = /** @class */ (function () {\r\n /**\r\n * Creates an instance of the Size with specified width and height\r\n * @param width\r\n * @param height\r\n */\r\n function Size(width, height) {\r\n this.width = width;\r\n this.height = height;\r\n }\r\n /**\r\n * The static Empty size returns a Size with Width=0, Height=0\r\n */\r\n Size.EMPTY = new Size(0, 0);\r\n return Size;\r\n}());\r\nexports.Size = Size;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ESvgClippingMode = void 0;\r\n/**\r\n * Enumeration constants for SciChartSurface SVG Clipping mode, used for SVG annotations\r\n */\r\nvar ESvgClippingMode;\r\n(function (ESvgClippingMode) {\r\n /**\r\n * Clips to the series view rect\r\n */\r\n ESvgClippingMode[\"SeriesViewRect\"] = \"SeriesViewRect\";\r\n /**\r\n * Clips to the whole sub-chart rect or to the chart rect if not applicable\r\n */\r\n ESvgClippingMode[\"SubChart\"] = \"SubChart\";\r\n /**\r\n * Clips to the whole chart rect. In case of sub-charts it allows floating SVG annotations over adjacent sub-charts\r\n */\r\n ESvgClippingMode[\"Chart\"] = \"Chart\";\r\n})(ESvgClippingMode = exports.ESvgClippingMode || (exports.ESvgClippingMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EColorMapMode = void 0;\r\nvar EColorMapMode;\r\n(function (EColorMapMode) {\r\n EColorMapMode[EColorMapMode[\"Interpolated\"] = 0] = \"Interpolated\";\r\n EColorMapMode[EColorMapMode[\"Stepped\"] = 1] = \"Stepped\";\r\n})(EColorMapMode = exports.EColorMapMode || (exports.EColorMapMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.convertMultiLineAlignment = exports.EMultiLineAlignment = exports.EVerticalTextPosition = exports.EHorizontalTextPosition = void 0;\r\nvar EHorizontalTextPosition;\r\n(function (EHorizontalTextPosition) {\r\n EHorizontalTextPosition[\"Left\"] = \"Left\";\r\n EHorizontalTextPosition[\"Center\"] = \"Center\";\r\n EHorizontalTextPosition[\"Right\"] = \"Right\";\r\n})(EHorizontalTextPosition = exports.EHorizontalTextPosition || (exports.EHorizontalTextPosition = {}));\r\nvar EVerticalTextPosition;\r\n(function (EVerticalTextPosition) {\r\n EVerticalTextPosition[\"Above\"] = \"Above\";\r\n EVerticalTextPosition[\"Center\"] = \"Center\";\r\n EVerticalTextPosition[\"Below\"] = \"Below\";\r\n})(EVerticalTextPosition = exports.EVerticalTextPosition || (exports.EVerticalTextPosition = {}));\r\nvar EMultiLineAlignment;\r\n(function (EMultiLineAlignment) {\r\n EMultiLineAlignment[\"Left\"] = \"Left\";\r\n EMultiLineAlignment[\"Right\"] = \"Right\";\r\n EMultiLineAlignment[\"Center\"] = \"Center\";\r\n})(EMultiLineAlignment = exports.EMultiLineAlignment || (exports.EMultiLineAlignment = {}));\r\nvar convertMultiLineAlignment = function (multiLineAlignment, webAssemblyContext) {\r\n var alignMode = webAssemblyContext.eTSRTextAlignMode.Left;\r\n switch (multiLineAlignment) {\r\n case EMultiLineAlignment.Left:\r\n alignMode = webAssemblyContext.eTSRTextAlignMode.Left;\r\n break;\r\n case EMultiLineAlignment.Right:\r\n alignMode = webAssemblyContext.eTSRTextAlignMode.Right;\r\n break;\r\n case EMultiLineAlignment.Center:\r\n alignMode = webAssemblyContext.eTSRTextAlignMode.Center;\r\n break;\r\n default:\r\n break;\r\n }\r\n return alignMode;\r\n};\r\nexports.convertMultiLineAlignment = convertMultiLineAlignment;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.adjustTextStyle = exports.areEqualTextStyles = exports.areEqualSimpleTextStyles = exports.areEqualNativeTextStyles = exports.areEqualTextureTextStyles = exports.handleInvalidTextAlignment = exports.handleInvalidChartTitlePosition = exports.getIsHorizontalPlacement = exports.ETitlePosition = exports.ETextAlignment = void 0;\r\nvar DpiHelper_1 = require(\"../Charting/Visuals/TextureManager/DpiHelper\");\r\n/**\r\n * Defines the anchor point of a text\r\n */\r\nvar ETextAlignment;\r\n(function (ETextAlignment) {\r\n ETextAlignment[\"Center\"] = \"Center\";\r\n ETextAlignment[\"Left\"] = \"Left\";\r\n ETextAlignment[\"Right\"] = \"Right\";\r\n})(ETextAlignment = exports.ETextAlignment || (exports.ETextAlignment = {}));\r\n/**\r\n * Defines a side where the chart title should be placed\r\n */\r\nvar ETitlePosition;\r\n(function (ETitlePosition) {\r\n ETitlePosition[\"Top\"] = \"Top\";\r\n ETitlePosition[\"Bottom\"] = \"Bottom\";\r\n ETitlePosition[\"Right\"] = \"Right\";\r\n ETitlePosition[\"Left\"] = \"Left\";\r\n})(ETitlePosition = exports.ETitlePosition || (exports.ETitlePosition = {}));\r\n/** @ignore */\r\nvar getIsHorizontalPlacement = function (position) {\r\n return position === ETitlePosition.Top || position === ETitlePosition.Bottom;\r\n};\r\nexports.getIsHorizontalPlacement = getIsHorizontalPlacement;\r\n/** @ignore */\r\nvar handleInvalidChartTitlePosition = function (invalidValue) {\r\n throw new Error(\"Invalid chart title position: \".concat(invalidValue, \"!\"));\r\n};\r\nexports.handleInvalidChartTitlePosition = handleInvalidChartTitlePosition;\r\n/** @ignore */\r\nvar handleInvalidTextAlignment = function (invalidValue) {\r\n throw new Error(\"Invalid text alignment \\\"\".concat(invalidValue, \"\\\"!\"));\r\n};\r\nexports.handleInvalidTextAlignment = handleInvalidTextAlignment;\r\n/** @ignore */\r\nvar areEqualTextureTextStyles = function (style1, style2) {\r\n return (style1.color === style2.color &&\r\n style1.fontFamily === style2.fontFamily &&\r\n style1.fontSize === style2.fontSize &&\r\n style1.fontStyle === style2.fontStyle &&\r\n style1.fontWeight === style2.fontWeight &&\r\n style1.lineSpacing === style2.lineSpacing &&\r\n ((style1.padding === undefined && style2.padding === undefined) || style1.padding.equals(style2.padding)));\r\n};\r\nexports.areEqualTextureTextStyles = areEqualTextureTextStyles;\r\n/** @ignore */\r\nvar areEqualNativeTextStyles = function (style1, style2) {\r\n return (style1.color === style2.color &&\r\n style1.fontFamily === style2.fontFamily &&\r\n style1.fontSize === style2.fontSize &&\r\n style1.lineSpacing === style2.lineSpacing &&\r\n ((style1.padding === undefined && style2.padding === undefined) || style1.padding.equals(style2.padding)));\r\n};\r\nexports.areEqualNativeTextStyles = areEqualNativeTextStyles;\r\n/** @ignore */\r\nvar areEqualSimpleTextStyles = function (style1, style2) {\r\n if (!style1 || !style2 || !style1.useNativeText !== !style2.useNativeText) {\r\n // comparing to an undefined style or styles have different rendering methods\r\n return false;\r\n }\r\n else if (style1.useNativeText && style2.useNativeText) {\r\n return (0, exports.areEqualNativeTextStyles)(style1, style2);\r\n }\r\n else {\r\n return (0, exports.areEqualTextureTextStyles)(style1, style2);\r\n }\r\n};\r\nexports.areEqualSimpleTextStyles = areEqualSimpleTextStyles;\r\n/** @ignore */\r\nvar areEqualTextStyles = function (style1, style2) {\r\n var areBasePropertiesEqual = (0, exports.areEqualSimpleTextStyles)(style1, style2);\r\n return (areBasePropertiesEqual &&\r\n style1.rotation === style2.rotation &&\r\n style1.multilineAlignment === style2.multilineAlignment);\r\n};\r\nexports.areEqualTextStyles = areEqualTextStyles;\r\n/** @ignore */\r\nvar adjustTextStyle = function (textStyle) {\r\n var adjustedTextStyle = DpiHelper_1.DpiHelper.adjustTextStyle(textStyle);\r\n return adjustedTextStyle;\r\n};\r\nexports.adjustTextStyle = adjustTextStyle;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EThemeProviderType = void 0;\r\nvar EThemeProviderType;\r\n(function (EThemeProviderType) {\r\n EThemeProviderType[\"Light\"] = \"Light\";\r\n EThemeProviderType[\"Dark\"] = \"Dark\";\r\n EThemeProviderType[\"DarkV2\"] = \"DarkV2\";\r\n EThemeProviderType[\"Navy\"] = \"Navy\";\r\n EThemeProviderType[\"Custom\"] = \"Custom\";\r\n})(EThemeProviderType = exports.EThemeProviderType || (exports.EThemeProviderType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EWatermarkPosition = void 0;\r\nvar EWatermarkPosition;\r\n(function (EWatermarkPosition) {\r\n EWatermarkPosition[EWatermarkPosition[\"BottomLeft\"] = 0] = \"BottomLeft\";\r\n EWatermarkPosition[EWatermarkPosition[\"BottomRight\"] = 1] = \"BottomRight\";\r\n EWatermarkPosition[EWatermarkPosition[\"TopLeft\"] = 2] = \"TopLeft\";\r\n EWatermarkPosition[EWatermarkPosition[\"TopRight\"] = 3] = \"TopRight\";\r\n})(EWatermarkPosition = exports.EWatermarkPosition || (exports.EWatermarkPosition = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EXyDirection = void 0;\r\n/**\r\n * Enumeration constants to define X,Y or Xy direction\r\n */\r\nvar EXyDirection;\r\n(function (EXyDirection) {\r\n EXyDirection[\"XDirection\"] = \"XDirection\";\r\n EXyDirection[\"YDirection\"] = \"YDirection\";\r\n EXyDirection[\"XyDirection\"] = \"XyDirection\";\r\n})(EXyDirection = exports.EXyDirection || (exports.EXyDirection = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EYRangeMode = void 0;\r\n/**\r\n * Enumeration constants to define how getWindowedYRange should behave\r\n */\r\nvar EYRangeMode;\r\n(function (EYRangeMode) {\r\n /** Y Range will be calculated based on the visible points. (Default). In some cases lines to points outside the range may escape the axis */\r\n EYRangeMode[\"Visible\"] = \"Visible\";\r\n /** Y Range will include the points either side of the visible set.\r\n * The series is guaranteed to be drawn within the axis bounds, but the range could be affected by extreme points just outside */\r\n EYRangeMode[\"Drawn\"] = \"Drawn\";\r\n})(EYRangeMode = exports.EYRangeMode || (exports.EYRangeMode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EZoomState = void 0;\r\n/**\r\n * List of values for ZoomState in SciChart\r\n */\r\nvar EZoomState;\r\n(function (EZoomState) {\r\n /**\r\n * ZoomStates is at extents. This is if the user has called zoomExtents() on the {@link SciChartSurface},\r\n * or, the user has double clicked on the {@link ZoomExtentsModifier}\r\n */\r\n EZoomState[EZoomState[\"AtExtents\"] = 0] = \"AtExtents\";\r\n /**\r\n * User has initiated a Zoom operation\r\n */\r\n EZoomState[EZoomState[\"UserZooming\"] = 1] = \"UserZooming\";\r\n})(EZoomState = exports.EZoomState || (exports.EZoomState = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LicenseCheckStatus = exports.LicenseType = void 0;\r\n// tslint:disable: max-classes-per-file\r\n/**\r\n * @Ignore\r\n */\r\nvar LicenseType;\r\n(function (LicenseType) {\r\n LicenseType[LicenseType[\"NoLicense\"] = 0] = \"NoLicense\";\r\n LicenseType[LicenseType[\"Trial\"] = 1] = \"Trial\";\r\n LicenseType[LicenseType[\"Full\"] = 2] = \"Full\";\r\n LicenseType[LicenseType[\"Full_Expired\"] = 3] = \"Full_Expired\";\r\n LicenseType[LicenseType[\"Trial_Expired\"] = 4] = \"Trial_Expired\";\r\n LicenseType[LicenseType[\"Subscription_Expired\"] = 5] = \"Subscription_Expired\";\r\n LicenseType[LicenseType[\"Invalid_Developer\"] = 6] = \"Invalid_Developer\";\r\n LicenseType[LicenseType[\"Requres_Validation\"] = 7] = \"Requres_Validation\";\r\n LicenseType[LicenseType[\"Invalid\"] = 8] = \"Invalid\";\r\n LicenseType[LicenseType[\"Community\"] = 9] = \"Community\";\r\n})(LicenseType = exports.LicenseType || (exports.LicenseType = {}));\r\n/**\r\n * @Ignore\r\n */\r\nvar LicenseCheckStatus;\r\n(function (LicenseCheckStatus) {\r\n LicenseCheckStatus[LicenseCheckStatus[\"NoLicense\"] = 0] = \"NoLicense\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"FetchingFromServer\"] = 1] = \"FetchingFromServer\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"StartLookingForLicenseWizard\"] = 2] = \"StartLookingForLicenseWizard\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"LookingForLicenseWizard\"] = 3] = \"LookingForLicenseWizard\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"ValidatingDeveloperLicense\"] = 4] = \"ValidatingDeveloperLicense\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"NoLicenseInWizard\"] = 5] = \"NoLicenseInWizard\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"FailedToFindLicenseWizard\"] = 6] = \"FailedToFindLicenseWizard\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"FailedToValidateDeveloperLicense\"] = 7] = \"FailedToValidateDeveloperLicense\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"DevKeyInRuntimeKey\"] = 8] = \"DevKeyInRuntimeKey\";\r\n LicenseCheckStatus[LicenseCheckStatus[\"LicenseOK\"] = 9] = \"LicenseOK\";\r\n})(LicenseCheckStatus = exports.LicenseCheckStatus || (exports.LicenseCheckStatus = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MemoryUsageHelper = exports.generateIdentifier = exports.ObjectRegistry = void 0;\r\nvar LabelCache_1 = require(\"../Charting/Visuals/Axis/LabelProvider/LabelCache\");\r\nvar Globals_1 = require(\"../Core/Globals\");\r\nvar guid_1 = require(\"./guid\");\r\n/** ObjectRegistry represents a structure for storing object lifecycle info.\r\n * Adding an object to the registry will place it into a category of undeleted until it is remove from the registry.\r\n * Also the object will be placed into a category of uncollected until it is disposed by garbage collector.\r\n */\r\nvar ObjectRegistry = /** @class */ (function () {\r\n function ObjectRegistry() {\r\n var _this = this;\r\n this.weakMapRegistry = new WeakMap();\r\n // This structure is useful for tracking DeletableEntity or Native objects\r\n // which were not disposed using delete method\r\n this.undeletedObjectsMap = new Map();\r\n this.uncollectedObjectsMap = new Map();\r\n // @ts-ignore\r\n this.finalizationRegistry = new FinalizationRegistry(function (id) {\r\n _this.uncollectedObjectsMap.delete(id);\r\n _this.onCollect(id);\r\n });\r\n }\r\n /** Adds an object and its related info to the registry */\r\n ObjectRegistry.prototype.add = function (obj, id, options) {\r\n var _a, _b;\r\n if (options === void 0) { options = { isWasmObject: false }; }\r\n var isWasmObject = options.isWasmObject;\r\n if (this.weakMapRegistry.has(obj)) {\r\n console.warn(\"Adding existing entry to the registry!\", id);\r\n }\r\n if (this.undeletedObjectsMap.has(id)) {\r\n console.warn(\"Adding existing entry id to the registry!\", id);\r\n }\r\n this.finalizationRegistry.register(obj, id);\r\n this.weakMapRegistry.set(obj, id);\r\n var proxy = (_b = (_a = options === null || options === void 0 ? void 0 : options.revocableToken) === null || _a === void 0 ? void 0 : _a.proxy) !== null && _b !== void 0 ? _b : options === null || options === void 0 ? void 0 : options.proxy;\r\n var revocableToken = options === null || options === void 0 ? void 0 : options.revocableToken;\r\n if (proxy) {\r\n this.weakMapRegistry.set(proxy, id);\r\n }\r\n // @ts-ignore WeakRef\r\n var objectRef = new WeakRef(obj);\r\n // @ts-ignore WeakRef\r\n var proxyRef = proxy && new WeakRef(proxy);\r\n // @ts-ignore WeakRef\r\n var revocableTokenRef = revocableToken && new WeakRef(revocableToken);\r\n var objInfo = { isWasmObject: isWasmObject, objectRef: objectRef, proxyRef: proxyRef, revocableTokenRef: revocableTokenRef };\r\n if (obj.delete) {\r\n this.undeletedObjectsMap.set(id, objInfo);\r\n }\r\n this.uncollectedObjectsMap.set(id, objInfo);\r\n };\r\n /** Removes the object from the undeleted objects collection */\r\n ObjectRegistry.prototype.remove = function (id) {\r\n if (!this.undeletedObjectsMap.has(id) && !this.uncollectedObjectsMap.has(id)) {\r\n console.warn(\"\".concat(id, \" was not found in the ObjectRegistry!\"));\r\n }\r\n return this.undeletedObjectsMap.delete(id);\r\n };\r\n ObjectRegistry.prototype.getObjectId = function (obj) {\r\n return this.weakMapRegistry.get(obj);\r\n };\r\n /** Calls `delete` on instances of {@link IDeletable} objects within the registry */\r\n ObjectRegistry.prototype.deleteIDeletableObjects = function () {\r\n var _this = this;\r\n this.undeletedObjectsMap.forEach(function (entry, key) {\r\n if (!entry.isWasmObject) {\r\n _this.deleteEntry(entry, key);\r\n }\r\n });\r\n };\r\n /** Calls `delete` on instances of Web Assembly objects within the registry */\r\n ObjectRegistry.prototype.deleteWasmObjects = function () {\r\n var _this = this;\r\n this.undeletedObjectsMap.forEach(function (entry, key) {\r\n if (entry.isWasmObject) {\r\n _this.deleteEntry(entry, key);\r\n }\r\n });\r\n };\r\n /** Outputs the state of registry to the console */\r\n ObjectRegistry.prototype.log = function () {\r\n var _this = this;\r\n var undeletedObjectsIds = Array.from(this.undeletedObjectsMap.keys());\r\n var uncollectedObjectsIds = Array.from(this.uncollectedObjectsMap.keys());\r\n var collectedNotDeleted = undeletedObjectsIds.filter(function (id) { return !_this.uncollectedObjectsMap.has(id); });\r\n var deletedNotCollected = uncollectedObjectsIds.filter(function (id) { return !_this.undeletedObjectsMap.has(id); });\r\n var axisLabelCacheSize = LabelCache_1.labelCache.getSize();\r\n console.log(\"Object Registry Log Start:\");\r\n console.log(\"undeletedObjectsMap\", this.undeletedObjectsMap);\r\n console.log(\"uncollectedObjectsMap\", this.uncollectedObjectsMap);\r\n console.log(\"collectedNotDeleted\", collectedNotDeleted);\r\n console.log(\"deletedNotCollected\", deletedNotCollected);\r\n console.log(\"weakMap\", this.weakMapRegistry);\r\n console.log(\"axisLabelCacheSize\", axisLabelCacheSize);\r\n console.log(\"Object Registry Log End\");\r\n };\r\n /** Returns the state of the registry */\r\n ObjectRegistry.prototype.getState = function () {\r\n var undeletedObjectsIds = Array.from(this.undeletedObjectsMap.keys());\r\n var uncollectedObjectsIds = Array.from(this.uncollectedObjectsMap.keys());\r\n var state = {};\r\n if (undeletedObjectsIds.length) {\r\n state.undeletedObjectsIds = undeletedObjectsIds;\r\n }\r\n if (uncollectedObjectsIds.length) {\r\n state.uncollectedObjectsIds = uncollectedObjectsIds;\r\n }\r\n return state;\r\n };\r\n /** Calls `delete` on a specific object within the registry */\r\n ObjectRegistry.prototype.deleteEntry = function (entry, key) {\r\n var originalObject = entry.objectRef.deref();\r\n if (originalObject) {\r\n originalObject.delete();\r\n this.remove(key);\r\n }\r\n else {\r\n console.warn(\"Looks like the \".concat(key, \" has already been garbage collected, thus the proper cleanup could not be executed!\"));\r\n }\r\n };\r\n /** The callback executed when an object is being garbage collected */\r\n ObjectRegistry.prototype.onCollect = function (id) {\r\n // Override with custom behavior\r\n };\r\n return ObjectRegistry;\r\n}());\r\nexports.ObjectRegistry = ObjectRegistry;\r\n/** @ignore */\r\nvar generateIdentifier = function (entity) {\r\n return \"\".concat(entity === null || entity === void 0 ? void 0 : entity.constructor.name, \"_\").concat((0, guid_1.generateGuid)());\r\n};\r\nexports.generateIdentifier = generateIdentifier;\r\n/** {@link MemoryUsageHelper} provides tools for tracking, debugging, and testing common issus related to lifecycle of SciChart entities. */\r\nvar MemoryUsageHelper = /** @class */ (function () {\r\n function MemoryUsageHelper() {\r\n }\r\n Object.defineProperty(MemoryUsageHelper, \"isMemoryUsageDebugEnabled\", {\r\n /** Gets or sets the `Memory Usage Debug Mode`.\r\n * Enabling the mode, provides warnings about wrong usage or cleanup.\r\n * Also it wraps SciChart entities and adds them to the {@link objectRegistry} to track their lifecycle\r\n */\r\n get: function () {\r\n return this.isMemoryUsageDebugEnabledProperty;\r\n },\r\n /** Gets or sets the `Memory Usage Debug Mode`.\r\n * Enabling the mode, provides warnings about wrong usage or cleanup.\r\n * Also it wraps SciChart entities and adds them to the {@link objectRegistry} to track their lifecycle\r\n */\r\n set: function (value) {\r\n if (value) {\r\n console.warn(\"Memory usage debug enabled! Make sure to disable it for production build!\");\r\n }\r\n try {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n this.isMemoryUsageDebugEnabledProperty = value;\r\n if (value && !MemoryUsageHelper.objectRegistry) {\r\n MemoryUsageHelper.objectRegistry = new ObjectRegistry();\r\n }\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n console.warn(err);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Adds entity to the object registry to keep track of it being collected\r\n * @param entity\r\n * @param id optional custom ID of the entity\r\n */\r\n MemoryUsageHelper.register = function (entity, id) {\r\n var _a;\r\n if (!entity) {\r\n console.warn(\"Registering invalid object \\\"\".concat(entity, \"\\\"!\"));\r\n return;\r\n }\r\n (_a = MemoryUsageHelper.objectRegistry) === null || _a === void 0 ? void 0 : _a.add(entity, id !== null && id !== void 0 ? id : (0, exports.generateIdentifier)(entity));\r\n };\r\n /**\r\n * Removes entity from the object registry\r\n * @param id ID of the entity\r\n */\r\n MemoryUsageHelper.unregister = function (id) {\r\n var _a;\r\n (_a = MemoryUsageHelper.objectRegistry) === null || _a === void 0 ? void 0 : _a.remove(id);\r\n };\r\n /**\r\n * Calls `delete` on all 2D and 3D charts instantiated with {@link SciChartSurface.create} or {@link SciChart3DSurface.create}\r\n */\r\n MemoryUsageHelper.destroyMultiChart = function () {\r\n Globals_1.sciChartDestinations.forEach(function (destination) { return destination.sciChartSurface.delete(true); });\r\n Globals_1.sciChart3DDestinations.forEach(function (destination) { return destination.sciChartSurface.delete(true); });\r\n };\r\n /**\r\n * Calls `delete` on all 2D and 3D charts instantiated with {@link SciChartSurface.createSingle} or {@link SciChart3DSurface.createSingle}\r\n */\r\n MemoryUsageHelper.destroySingleCharts = function () {\r\n Globals_1.sciChartSingleDestinations.forEach(function (destination) { return destination.sciChartSurface.delete(true); });\r\n Globals_1.sciChart3DSingleDestinations.forEach(function (destination) { return destination.sciChartSurface.delete(true); });\r\n };\r\n /**\r\n * Calls `delete` on all charts instantiated with {@link SciChartPieSurface.create}\r\n */\r\n MemoryUsageHelper.destroyPieCharts = function () {\r\n Globals_1.sciChartPieDestinations.forEach(function (destination) { return destination.sciChartSurface.delete(true); });\r\n };\r\n /**\r\n * Calls `delete` on all charts\r\n */\r\n MemoryUsageHelper.destroyAllCharts = function () {\r\n MemoryUsageHelper.destroyMultiChart();\r\n MemoryUsageHelper.destroySingleCharts();\r\n MemoryUsageHelper.destroyPieCharts();\r\n };\r\n MemoryUsageHelper.isMemoryUsageDebugEnabledProperty = false;\r\n return MemoryUsageHelper;\r\n}());\r\nexports.MemoryUsageHelper = MemoryUsageHelper;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.appendRangeFifo = exports.makeIncArray = exports.isArraySorted = exports.arrayRemove = exports.areArraysEqual = exports.countUnique = exports.getUniqueValues = void 0;\r\nfunction getUniqueValues(array) {\r\n var onlyUnique = function (value, index, self) {\r\n if (value === undefined || value === null)\r\n return false;\r\n return self.indexOf(value) === index;\r\n };\r\n return array.filter(onlyUnique);\r\n}\r\nexports.getUniqueValues = getUniqueValues;\r\nfunction countUnique(iterable) {\r\n return new Set(iterable).size;\r\n}\r\nexports.countUnique = countUnique;\r\nvar areArraysEqual = function (leftArray, rightArray) {\r\n if (leftArray === rightArray) {\r\n return true;\r\n }\r\n if ((leftArray === null || leftArray === void 0 ? void 0 : leftArray.length) !== (rightArray === null || rightArray === void 0 ? void 0 : rightArray.length)) {\r\n return false;\r\n }\r\n if (leftArray && rightArray) {\r\n for (var i = 0; i < leftArray.length; ++i) {\r\n if (leftArray[i] !== rightArray[i]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n};\r\nexports.areArraysEqual = areArraysEqual;\r\nfunction arrayRemove(array, item) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i] === item) {\r\n array.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return array;\r\n}\r\nexports.arrayRemove = arrayRemove;\r\n/**\r\n * returns true if the array is sorted\r\n * @param arr The array\r\n * @param ascending If True checks for sorted ascending, if False for descending\r\n */\r\nfunction isArraySorted(arr, ascending) {\r\n if (ascending === void 0) { ascending = true; }\r\n var sorted = true;\r\n var checkUnsortedFn = ascending ? function (i) { return arr[i] > arr[i + 1]; } : function (i) { return arr[i] < arr[i + 1]; };\r\n for (var i = 0; i < arr.length - 1; i++) {\r\n if (checkUnsortedFn(i)) {\r\n sorted = false;\r\n break;\r\n }\r\n }\r\n return sorted;\r\n}\r\nexports.isArraySorted = isArraySorted;\r\n/**\r\n * Helper method for generating an array of a given length, where the values are the indicies\r\n * An optional multiplier and map function can be applied.\r\n * @param length\r\n * @param multiplier\r\n * @param map\r\n * @returns\r\n */\r\nfunction makeIncArray(length, multiplier, map) {\r\n var arr = Array.from(Array(length)).map(function (_, i) { return (multiplier !== null && multiplier !== void 0 ? multiplier : 1) * i; });\r\n if (map) {\r\n return arr.map(map);\r\n }\r\n else {\r\n return arr;\r\n }\r\n}\r\nexports.makeIncArray = makeIncArray;\r\n/**\r\n * Helper function to append an array to a target array, treating the target as a circular buffer\r\n * @param source\r\n * @param target\r\n * @param fifoCapacity\r\n * @param startIndex\r\n */\r\nfunction appendRangeFifo(source, target, fifoCapacity, startIndex) {\r\n var targetSize = target.length;\r\n var length = source.length;\r\n //console.log(\"s,t \", source, target);\r\n if (fifoCapacity >= targetSize + length) {\r\n // Space to append all data. Use normal method\r\n target.length += length;\r\n // merge new values into the collection\r\n for (var i = 0; i < length; ++i) {\r\n target[targetSize + i] = source[i];\r\n }\r\n }\r\n else if (length > fifoCapacity) {\r\n // new data is larger than buffer. Replace buffer with end of data\r\n var dataIndex = length - fifoCapacity;\r\n var dataThatWillFit = source.slice(dataIndex);\r\n target = dataThatWillFit;\r\n }\r\n else if (fifoCapacity > targetSize) {\r\n // buffer not full yet, but new data will overflow\r\n var remainingCap = fifoCapacity - targetSize;\r\n target.length = fifoCapacity;\r\n for (var i = 0; i < length; ++i) {\r\n if (i < remainingCap) {\r\n target[targetSize + i] = source[i];\r\n }\r\n else {\r\n target[remainingCap - i] = source[i];\r\n }\r\n }\r\n }\r\n else {\r\n // buffer already full\r\n var remainingCap = length;\r\n if (startIndex + length > fifoCapacity) {\r\n // need to do two writes\r\n remainingCap = fifoCapacity - startIndex;\r\n }\r\n for (var i = 0; i < length; ++i) {\r\n if (i < remainingCap) {\r\n target[startIndex + i] = source[i];\r\n }\r\n else {\r\n target[remainingCap - i] = source[i];\r\n }\r\n }\r\n }\r\n //console.log(\"t: \", target);\r\n}\r\nexports.appendRangeFifo = appendRangeFifo;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.calcAverageForArray = exports.calcAverageForDoubleVector = void 0;\r\n/**\r\n * @description Calculates average for DoubleVector\r\n * @param doubleVector\r\n * @param averageNum - number of values to respect for the average\r\n * @param index - index of the latest value to include, by default equals to length-1 of DoubleVector\r\n */\r\nvar calcAverageForDoubleVector = function (doubleVector, averageNum, index) {\r\n var length = doubleVector.size();\r\n var innerIndex = index !== null && index !== void 0 ? index : length - 1;\r\n if (innerIndex >= length || innerIndex < 0) {\r\n throw Error(\"index should be in range [0, length-1]\");\r\n }\r\n if (innerIndex + 1 < averageNum) {\r\n return NaN;\r\n }\r\n var movingAverage = 0;\r\n for (var i = innerIndex + 1 - averageNum; i < innerIndex + 1; i++) {\r\n movingAverage += doubleVector.get(i);\r\n }\r\n movingAverage /= averageNum;\r\n return movingAverage;\r\n};\r\nexports.calcAverageForDoubleVector = calcAverageForDoubleVector;\r\nvar calcAverageForArray = function (ar, averageNum, index) {\r\n var length = ar.length;\r\n var innerIndex = index !== null && index !== void 0 ? index : length - 1;\r\n if (innerIndex >= length || innerIndex < 0) {\r\n throw Error(\"index should be in range [0, length-1]\");\r\n }\r\n if (innerIndex + 1 < averageNum) {\r\n return NaN;\r\n }\r\n var movingAverage = 0;\r\n for (var i = innerIndex + 1 - averageNum; i < innerIndex + 1; i++) {\r\n movingAverage += ar[i];\r\n }\r\n movingAverage /= averageNum;\r\n return movingAverage;\r\n};\r\nexports.calcAverageForArray = calcAverageForArray;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.appendDoubleVectorFromJsArray = exports.memCopyFloat32 = exports.insertDoubleVectorFromJsArray = exports.SIZEOF_FLOAT32 = exports.SIZEOF_NUMBER = void 0;\r\nvar Guard_1 = require(\"../../Core/Guard\");\r\nexports.SIZEOF_NUMBER = 8;\r\nexports.SIZEOF_FLOAT32 = 4;\r\n/**\r\n * Inserts the values from the source Js array into the destination wasm array (and resizes) at index destIndex\r\n * @param wasmContext\r\n * @param source\r\n * @param dest\r\n * @param destIndex\r\n */\r\nfunction insertDoubleVectorFromJsArray(wasmContext, source, dest, destIndex) {\r\n // Sanity checks\r\n Guard_1.Guard.notNull(wasmContext, \"wasmContext\");\r\n Guard_1.Guard.notNull(source, \"source\");\r\n Guard_1.Guard.notNull(dest, \"dest\");\r\n Guard_1.Guard.isTrue(destIndex >= 0, \"destIndex must be greater than or equal to zero\");\r\n Guard_1.Guard.isTrue(destIndex <= dest.size(), \"destIndex must be less than or equal to dest.size()\");\r\n var count = source.length;\r\n if (count === 0)\r\n return;\r\n var beforeSize = dest.size();\r\n // Resize the dest vector to fit memory\r\n dest.resizeFast(beforeSize + count);\r\n // Shift memory up for the insert\r\n if (destIndex < beforeSize) {\r\n wasmContext.SCRTMemMove(dest.dataPtr(destIndex + count), // Dest\r\n dest.dataPtr(destIndex), // Src\r\n (beforeSize - destIndex) * exports.SIZEOF_NUMBER); // count in bytes\r\n }\r\n // Overwrite dest memory with Js array\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(source, dest.dataPtr(destIndex) / exports.SIZEOF_NUMBER);\r\n}\r\nexports.insertDoubleVectorFromJsArray = insertDoubleVectorFromJsArray;\r\n/**\r\n * Copies the values from the source Js array into the destination wasm array (and resizes) at index destIndex\r\n * @param wasmContext\r\n * @param source\r\n * @param dest\r\n * @param destIndex\r\n */\r\nfunction memCopyFloat32(wasmContext, source, dest, destIndex) {\r\n // Sanity checks\r\n Guard_1.Guard.notNull(wasmContext, \"wasmContext\");\r\n Guard_1.Guard.notNull(source, \"source\");\r\n Guard_1.Guard.notNull(dest, \"dest\");\r\n Guard_1.Guard.isTrue(destIndex >= 0, \"destIndex must be greater than or equal to zero\");\r\n Guard_1.Guard.isTrue(destIndex <= dest.size() + source.length, \"destIndex must be less than or equal to dest.size() + source.Length\");\r\n var count = source.length;\r\n if (count === 0)\r\n return;\r\n // Overwrite dest memory with Js array\r\n // @ts-ignore\r\n wasmContext.HEAPF32.set(source, dest.dataPtr(destIndex) / exports.SIZEOF_FLOAT32);\r\n}\r\nexports.memCopyFloat32 = memCopyFloat32;\r\n/**\r\n * Resizes the destinationVector by jsArray.length and copies the values into it\r\n * @param wasmContext\r\n * @param destinationVector\r\n * @param jsArray\r\n * @param experimentalMethod\r\n */\r\nfunction appendDoubleVectorFromJsArray(wasmContext, destinationVector, jsArray, experimentalMethod) {\r\n if (experimentalMethod === void 0) { experimentalMethod = true; }\r\n var buffer;\r\n try {\r\n if (experimentalMethod) {\r\n var vectorSize = destinationVector.size();\r\n var arraySize = jsArray.length;\r\n var startPosition = vectorSize;\r\n var endPosition = startPosition + arraySize;\r\n // Resize without initializing values\r\n destinationVector.resizeFast(endPosition);\r\n // Get pointer to destination\r\n var bufferPointer = destinationVector.dataPtr(startPosition);\r\n // HEAPF64.set copies js array into buffer pointer\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(jsArray, bufferPointer / exports.SIZEOF_NUMBER);\r\n }\r\n else {\r\n var vectorSize = destinationVector.size();\r\n var arraySize = jsArray.length;\r\n var startPosition = vectorSize;\r\n var endPosition = startPosition + arraySize;\r\n /// because plain c functions were receiving the object pointer as null, this is the way around that...\r\n wasmContext.SCRTSetActiveDoubleVector(destinationVector, vectorSize);\r\n // Allocate some space in the heap for the data (making sure to use the appropriate memory size of the elements)\r\n // @ts-ignore\r\n buffer = wasmContext._malloc(arraySize * 8);\r\n // Assign the data to the heap - Keep in mind bytes per element\r\n // @ts-ignore\r\n wasmContext.HEAPF64.set(jsArray, buffer / exports.SIZEOF_NUMBER);\r\n // Finally, call the function\r\n // Here we use start position 0 and the end position array.length\r\n // @ts-ignore\r\n wasmContext.ccall(\"SCRTFillActiveDoubleVector\", null, [\"number\", \"number\", \"number\"], [buffer, startPosition, endPosition]);\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n finally {\r\n // To avoid memory leaks we need to always clear out the allocated heap data\r\n if (buffer) {\r\n // @ts-ignore\r\n wasmContext._free(buffer);\r\n }\r\n }\r\n}\r\nexports.appendDoubleVectorFromJsArray = appendDoubleVectorFromJsArray;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.applyOpacityToHtmlColor = exports.uintArgbColorIsTransparent = exports.uintArgbColorOverrideOpacity = exports.uintArgbColorMultiplyOpacity = exports.uintArgbColorToAbgr = exports.linearColorMapLerp = exports.uintArgbColorLerp = exports.uintArgbColorLerp24bit = void 0;\r\nvar TLinearColorMap_1 = require(\"../types/TLinearColorMap\");\r\nvar parseColor_1 = require(\"./parseColor\");\r\n/**\r\n * Linearly interpolates between two colors based on the ratio passed in. E.g. Ratio = 0.0f returns From color,\r\n * ratio = 1.0f returns To Color. Ratio = 0.5f returns a mix of the two.\r\n * Works only for numbers not more than 24 bit\r\n * @param from the start color, for example 0xff0000\r\n * @param to the end color, for example 0x00ff00\r\n * @param ratio the value between 0 and 1\r\n * @constructor\r\n */\r\nfunction uintArgbColorLerp24bit(from, to, ratio) {\r\n var mask1 = 0x00ff00ff;\r\n var mask2 = 0xff00ff00;\r\n var f2 = 256 * ratio;\r\n var f1 = 256 - f2;\r\n return (((((from & mask1) * f1 + (to & mask1) * f2) >> 8) & mask1) |\r\n ((((from & mask2) * f1 + (to & mask2) * f2) >> 8) & mask2));\r\n}\r\nexports.uintArgbColorLerp24bit = uintArgbColorLerp24bit;\r\n/**\r\n * Linearly interpolates between two colors based on the ratio passed in. E.g. Ratio = 0.0f returns From color,\r\n * ratio = 1.0f returns To Color. Ratio = 0.5f returns a mix of the two\r\n * Works for 32 bit colors\r\n * @param from the start color, for example 0x0000ffff (format ARGB)\r\n * @param to the end color, for example 0xffffffff\r\n * @param ratio the value between 0 and 1\r\n * @constructor\r\n */\r\nfunction uintArgbColorLerp(from, to, ratio) {\r\n // We use >>> because in js all bitwise operations are 32 bit\r\n // https://stackoverflow.com/questions/6798111/bitwise-operations-on-32-bit-unsigned-ints\r\n var from1half = from >>> 16;\r\n var from2half = (from & 0x0000ffff) >>> 0;\r\n var to1half = to >>> 16;\r\n var to2half = (to & 0x0000ffff) >>> 0;\r\n var result1half = uintArgbColorLerp24bit(from1half, to1half, ratio);\r\n var result2half = uintArgbColorLerp24bit(from2half, to2half, ratio);\r\n return ((result1half << 16) >>> 0) + result2half;\r\n}\r\nexports.uintArgbColorLerp = uintArgbColorLerp;\r\n/**\r\n * Linearly interpolates a data-value in a TLinearColorMap, which specifies Gradient Stops, Data Minimum\r\n * and Maximum and color stepping mode\r\n * @param colorMap\r\n * @param dataValue\r\n * @constructor\r\n */\r\nfunction linearColorMapLerp(colorMap, dataValue) {\r\n // Value is outside of range, return Minimum color\r\n if (dataValue < colorMap.Minimum) {\r\n return (0, parseColor_1.parseColorToUIntArgb)(colorMap.GradientStops[0].color);\r\n }\r\n // Scale the value from 0.0 -> 1.0\r\n var scaleFactor = 1 / (colorMap.Maximum - colorMap.Minimum);\r\n var scaledValue = (dataValue - colorMap.Minimum) * scaleFactor;\r\n var stops = colorMap.GradientStops;\r\n // Calculate scale factors for gradient stops\r\n var stopScaleFactors = [];\r\n var i;\r\n for (i = 1; i < stops.length; i++) {\r\n stopScaleFactors.push(1 / (stops[i].offset - stops[i - 1].offset));\r\n }\r\n for (i = 0; i < stops.length - 1; i++) {\r\n var stop_1 = stops[i];\r\n var nextStop = stops[i + 1];\r\n // If between two stops\r\n if (scaledValue >= stop_1.offset && scaledValue < nextStop.offset) {\r\n // Simple step? Just return the current stop color\r\n if (colorMap.Mode === TLinearColorMap_1.EColorMapMode.Stepped) {\r\n return (0, parseColor_1.parseColorToUIntArgb)(stop_1.color);\r\n }\r\n // Compute the ratio to interpolate between two stops\r\n var localRatio = (scaledValue - stop_1.offset) * stopScaleFactors[i];\r\n return uintArgbColorLerp((0, parseColor_1.parseColorToUIntArgb)(stop_1.color), (0, parseColor_1.parseColorToUIntArgb)(nextStop.color), localRatio);\r\n }\r\n }\r\n return (0, parseColor_1.parseColorToUIntArgb)(colorMap.GradientStops[i].color);\r\n}\r\nexports.linearColorMapLerp = linearColorMapLerp;\r\nfunction uintArgbColorToAbgr(argbColor) {\r\n var r = (argbColor & 0x00ff0000) >> 16;\r\n var g = (argbColor & 0x0000ff00) >> 8;\r\n var b = argbColor & 0x000000ff;\r\n var retval = argbColor - (argbColor & 0x00ffffff);\r\n retval += b << 16;\r\n retval += g << 8;\r\n retval += r;\r\n return retval;\r\n}\r\nexports.uintArgbColorToAbgr = uintArgbColorToAbgr;\r\nfunction uintArgbColorMultiplyOpacity(argbColor, opacity) {\r\n var alpha = argbColor - (argbColor & 0x00ffffff);\r\n alpha = alpha >>> 24;\r\n alpha *= opacity;\r\n alpha = Math.floor(alpha);\r\n alpha = alpha * 0x1000000; // ( 24 bitwise right shift simply doesn't work, as it generates a negative values )\r\n var rgb = argbColor & 0x00ffffff; // RGB\r\n return alpha + rgb;\r\n}\r\nexports.uintArgbColorMultiplyOpacity = uintArgbColorMultiplyOpacity;\r\nfunction uintArgbColorOverrideOpacity(argbColor, opacity) {\r\n var alpha = opacity * 255;\r\n alpha = Math.floor(alpha);\r\n alpha = alpha * 0x1000000; // ( 24 bitwise right shift simply doesn't work, as it generates a negative values )\r\n var rgb = argbColor & 0x00ffffff; // RGB\r\n return alpha + rgb;\r\n}\r\nexports.uintArgbColorOverrideOpacity = uintArgbColorOverrideOpacity;\r\nfunction uintArgbColorIsTransparent(argbColor) {\r\n var alpha = argbColor - (argbColor & 0x00ffffff);\r\n return alpha !== 0xff000000;\r\n}\r\nexports.uintArgbColorIsTransparent = uintArgbColorIsTransparent;\r\n/**\r\n * Applies the given opacity to an html color code or name, returning an html color code.\r\n * @param color\r\n * @param opacity\r\n * @returns\r\n */\r\nfunction applyOpacityToHtmlColor(color, opacity) {\r\n var tarbg = (0, parseColor_1.parseColorToTArgb)(color);\r\n tarbg.opacity = Math.floor(opacity * 256);\r\n return (0, parseColor_1.parseTArgbToHtmlColor)(tarbg);\r\n}\r\nexports.applyOpacityToHtmlColor = applyOpacityToHtmlColor;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.convertRgbToHexColor = exports.convertColor = void 0;\r\n/**\r\n *\r\n * @param htmlColor, for example \"00ff00\" or \"#00ff00\" - green\r\n * @param opacity, value from 0 to 1\r\n * @returns rgbColor, for example \"0xff00ff00\" - green\r\n */\r\nvar convertColor = function (htmlColor, opacity) {\r\n if (opacity === void 0) { opacity = 1; }\r\n var opacityHex = convertComponent(opacity);\r\n var htmlColorLower = htmlColor.toLowerCase();\r\n if (htmlColorLower.length === 0) {\r\n return \"\";\r\n }\r\n if (htmlColorLower[0] === \"#\") {\r\n return \"0x\".concat(opacityHex).concat(htmlColorLower.substr(1));\r\n }\r\n else {\r\n return \"0x\".concat(opacityHex).concat(htmlColorLower);\r\n }\r\n};\r\nexports.convertColor = convertColor;\r\n/**\r\n *\r\n * Converts individual R,G, and B components to HEX Color\r\n * @param r, red component where its value is from 0 to 1\r\n * @param g, green component where its value is from 0 to 1\r\n * @param b, blue component where its value is from 0 to 1\r\n * @returns argbColor, for example \"0xff00ff00\" - green\r\n */\r\nvar convertRgbToHexColor = function (r, g, b) {\r\n return \"#\" + convertComponent(r) + convertComponent(g) + convertComponent(b);\r\n};\r\nexports.convertRgbToHexColor = convertRgbToHexColor;\r\n/**\r\n * @ignore\r\n * Converts number (color component) from 0 to 1 to hex string. For example 1 -> \"ff\", 0.5 => \"80\"\r\n * @param component\r\n */\r\nvar convertComponent = function (component) {\r\n if (component >= 1) {\r\n return \"ff\";\r\n }\r\n if (component <= 0) {\r\n return \"00\";\r\n }\r\n var num = Math.floor(component * 256);\r\n var hex = num.toString(16);\r\n return hex.length === 1 ? \"0\" + hex : hex;\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.convertToPixel = void 0;\r\n/***\r\n *\r\n * @param red - number value from 0 to 255\r\n * @param green - number value from 0 to 255\r\n * @param blue - number value from 0 to 255\r\n * @param opacity - number value from 0 to 255\r\n * @returns pixel in hex format: opacity, red, green, blue. For example: \"0xff0000ff\" - blue pixel with no opacity\r\n */\r\nvar convertToPixel = function (red, green, blue, opacity) {\r\n var hexValue = \"0x\" + toHex(opacity) + toHex(red) + toHex(green) + toHex(blue);\r\n return parseInt(hexValue, 16);\r\n};\r\nexports.convertToPixel = convertToPixel;\r\n/**\r\n * @ignore\r\n * Converts a numeric value to hexadecimal\r\n * @param value\r\n */\r\nvar toHex = function (value) {\r\n if (value >= 255) {\r\n return \"ff\";\r\n }\r\n if (value <= 0) {\r\n return \"00\";\r\n }\r\n return value.toString(16);\r\n};\r\n","\"use strict\";\r\n/*\r\n * General utils for managing cookies in Typescript.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.deleteCookie = exports.getCookie = exports.setCookie = void 0;\r\nfunction setCookie(name, val, validDays) {\r\n var date = new Date();\r\n var value = val;\r\n // Set it expire in 7 days\r\n date.setTime(date.getTime() + validDays * 24 * 60 * 60 * 1000);\r\n // Set it\r\n if (typeof document !== \"undefined\")\r\n document.cookie = name + \"=\" + value + \"; expires=\" + date.toUTCString() + \"; path=/\";\r\n // TODO can/should we fake this for node?\r\n}\r\nexports.setCookie = setCookie;\r\nfunction getCookie(name) {\r\n if (typeof document === \"undefined\")\r\n return null;\r\n var value = \"; \" + document.cookie;\r\n var parts = value.split(\"; \" + name + \"=\");\r\n if (parts.length === 2) {\r\n return parts\r\n .pop()\r\n .split(\";\")\r\n .shift();\r\n }\r\n return \"\";\r\n}\r\nexports.getCookie = getCookie;\r\nfunction deleteCookie(name) {\r\n if (typeof document === \"undefined\")\r\n return;\r\n var date = new Date();\r\n // Set it expire in -1 days\r\n date.setTime(date.getTime() + -1 * 24 * 60 * 60 * 1000);\r\n // Set it\r\n document.cookie = name + \"=; expires=\" + date.toUTCString() + \"; path=/\";\r\n}\r\nexports.deleteCookie = deleteCookie;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.copyDoubleVector = void 0;\r\nvar appendDoubleVectorFromJsArray_1 = require(\"./ccall/appendDoubleVectorFromJsArray\");\r\nvar copyDoubleVector = function (source, target, wasmContext) {\r\n var size = source.size();\r\n target.resizeFast(size);\r\n wasmContext.SCRTMemCopy(target.dataPtr(0), source.dataPtr(0), size * appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);\r\n};\r\nexports.copyDoubleVector = copyDoubleVector;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.formatUnixDateToHumanStringYYYY = exports.formatUnixDateToHumanStringDD = exports.formatUnixDateToHumanStringMMM = exports.formatUnixDateToHumanStringMMMDD = exports.formatUnixDateToHumanStringHHMM = exports.formatUnixDateToHumanStringSSms = exports.formatUnixDateToHumanStringHHMMSS = exports.formatUnixDateToHumanStringDDMM = exports.formatUnixDateToHumanStringDDMMHHMM = exports.formatUnixDateToHumanStringDDMMYY = exports.formatUnixDateToHumanString = void 0;\r\n/**\r\n * Result 11/23/2018\r\n * @param unixTimestamp\r\n */\r\nvar formatUnixDateToHumanString = function (unixTimestamp, locale) {\r\n if (locale === void 0) { locale = \"en-US\"; }\r\n var res = new Date(unixTimestamp * 1000).toLocaleDateString(locale, {\r\n month: \"numeric\",\r\n year: \"numeric\",\r\n day: \"numeric\"\r\n });\r\n if (res === \"Invalid Date\") {\r\n return \"\";\r\n }\r\n return res;\r\n};\r\nexports.formatUnixDateToHumanString = formatUnixDateToHumanString;\r\nvar formatUnixDateToHumanStringDDMMYY = function (unixTimestamp) {\r\n var res = new Date(unixTimestamp * 1000).toLocaleDateString(\"en-GB\", {\r\n timeZone: \"utc\",\r\n year: \"2-digit\",\r\n month: \"2-digit\",\r\n day: \"2-digit\"\r\n });\r\n if (res === \"Invalid Date\") {\r\n return \"\";\r\n }\r\n return res;\r\n};\r\nexports.formatUnixDateToHumanStringDDMMYY = formatUnixDateToHumanStringDDMMYY;\r\nvar formatUnixDateToHumanStringDDMMHHMM = function (unixTimestamp) {\r\n var ddmm = (0, exports.formatUnixDateToHumanStringDDMM)(unixTimestamp);\r\n var hhmm = (0, exports.formatUnixDateToHumanStringHHMM)(unixTimestamp);\r\n return \"\".concat(ddmm, \" \").concat(hhmm);\r\n};\r\nexports.formatUnixDateToHumanStringDDMMHHMM = formatUnixDateToHumanStringDDMMHHMM;\r\nvar formatUnixDateToHumanStringDDMM = function (unixTimestamp) {\r\n var res = new Date(unixTimestamp * 1000).toLocaleDateString(\"en-GB\", {\r\n timeZone: \"utc\",\r\n day: \"numeric\",\r\n month: \"numeric\"\r\n });\r\n if (res === \"Invalid Date\") {\r\n return \"\";\r\n }\r\n return res;\r\n};\r\nexports.formatUnixDateToHumanStringDDMM = formatUnixDateToHumanStringDDMM;\r\nvar formatUnixDateToHumanStringHHMMSS = function (unixTimestamp) {\r\n var date = new Date(unixTimestamp * 1000);\r\n var hours = date.getUTCHours();\r\n var minutes = date.getUTCMinutes();\r\n var seconds = date.getUTCSeconds();\r\n if (isNaN(hours) || isNaN(minutes) || isNaN(seconds)) {\r\n return \"\";\r\n }\r\n var hoursString = hours <= 9 ? \"0\".concat(hours) : hours.toString(10);\r\n var minutesString = minutes <= 9 ? \"0\".concat(minutes) : minutes.toString(10);\r\n var secondsString = seconds <= 9 ? \"0\".concat(seconds) : seconds.toString(10);\r\n return \"\".concat(hoursString, \":\").concat(minutesString, \":\").concat(secondsString);\r\n};\r\nexports.formatUnixDateToHumanStringHHMMSS = formatUnixDateToHumanStringHHMMSS;\r\nvar formatUnixDateToHumanStringSSms = function (unixTimestamp) {\r\n var date = new Date(unixTimestamp * 1000);\r\n var seconds = date.getUTCSeconds();\r\n var milliseconds = date.getUTCMilliseconds();\r\n if (isNaN(seconds) || isNaN(milliseconds)) {\r\n return \"\";\r\n }\r\n var secondsString = seconds <= 9 ? \"0\".concat(seconds) : seconds.toString(10);\r\n var millisecondsString = milliseconds <= 9 ? \"0\".concat(milliseconds) : milliseconds.toString(10);\r\n return \"\".concat(secondsString, \".\").concat(millisecondsString);\r\n};\r\nexports.formatUnixDateToHumanStringSSms = formatUnixDateToHumanStringSSms;\r\nvar formatUnixDateToHumanStringHHMM = function (unixTimestamp) {\r\n var date = new Date(unixTimestamp * 1000);\r\n var hours = date.getUTCHours();\r\n var minutes = date.getUTCMinutes();\r\n if (isNaN(hours) || isNaN(minutes)) {\r\n return \"\";\r\n }\r\n var hoursString = hours <= 9 ? \"0\".concat(hours) : hours.toString(10);\r\n var minutesString = minutes <= 9 ? \"0\".concat(minutes) : minutes.toString(10);\r\n return \"\".concat(hoursString, \":\").concat(minutesString);\r\n};\r\nexports.formatUnixDateToHumanStringHHMM = formatUnixDateToHumanStringHHMM;\r\nvar formatUnixDateToHumanStringMMMDD = function (unixTimestamp) {\r\n var date = new Date(unixTimestamp * 1000);\r\n var month = date.getUTCMonth();\r\n var day = date.getUTCDate();\r\n if (isNaN(month) || isNaN(day)) {\r\n return \"\";\r\n }\r\n return \"\".concat(getMonthString(month), \" \").concat(day);\r\n};\r\nexports.formatUnixDateToHumanStringMMMDD = formatUnixDateToHumanStringMMMDD;\r\nvar formatUnixDateToHumanStringMMM = function (unixTimestamp) {\r\n var date = new Date(unixTimestamp * 1000);\r\n var month = date.getUTCMonth();\r\n if (isNaN(month)) {\r\n return \"\";\r\n }\r\n return getMonthString(month);\r\n};\r\nexports.formatUnixDateToHumanStringMMM = formatUnixDateToHumanStringMMM;\r\nvar formatUnixDateToHumanStringDD = function (unixTimestamp) {\r\n var date = new Date(unixTimestamp * 1000);\r\n var day = date.getUTCDate();\r\n if (isNaN(day)) {\r\n return \"\";\r\n }\r\n var strDay = day.toString();\r\n if (strDay.length === 2) {\r\n return strDay;\r\n }\r\n else if (strDay.length === 1) {\r\n return \"0\".concat(strDay);\r\n }\r\n else {\r\n return \"\";\r\n }\r\n};\r\nexports.formatUnixDateToHumanStringDD = formatUnixDateToHumanStringDD;\r\nvar formatUnixDateToHumanStringYYYY = function (unixTimestamp) {\r\n var date = new Date(unixTimestamp * 1000);\r\n var year = date.getUTCFullYear();\r\n if (isNaN(year)) {\r\n return \"\";\r\n }\r\n return year.toString(10);\r\n};\r\nexports.formatUnixDateToHumanStringYYYY = formatUnixDateToHumanStringYYYY;\r\nvar getMonthString = function (month) {\r\n switch (month) {\r\n case 0:\r\n return \"Jan\";\r\n case 1:\r\n return \"Feb\";\r\n case 2:\r\n return \"Mar\";\r\n case 3:\r\n return \"Apr\";\r\n case 4:\r\n return \"May\";\r\n case 5:\r\n return \"Jun\";\r\n case 6:\r\n return \"Jul\";\r\n case 7:\r\n return \"Aug\";\r\n case 8:\r\n return \"Sep\";\r\n case 9:\r\n return \"Oct\";\r\n case 10:\r\n return \"Nov\";\r\n case 11:\r\n return \"Dec\";\r\n default:\r\n throw Error(\"Not correct month\");\r\n }\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.logDoubleVector = void 0;\r\nvar logDoubleVector = function (vector, name, precision) {\r\n if (precision === void 0) { precision = 2; }\r\n var s = \"\";\r\n for (var i = 0; i < vector.size(); i++) {\r\n s += vector.get(i).toFixed(precision) + \",\";\r\n }\r\n if (name) {\r\n console.log(name, s);\r\n }\r\n else {\r\n console.log(s);\r\n }\r\n};\r\nexports.logDoubleVector = logDoubleVector;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getFontString = void 0;\r\n/**\r\n * Creates the font string, which is used to set font on CanvasRenderingContext2D\r\n * @param fontStyle The font style\r\n * @param fontWeight The font weight\r\n * @param fontSize The font size in pixels\r\n * @param fontFamily The font family\r\n */\r\nvar getFontString = function (fontStyle, fontWeight, fontSize, fontFamily) {\r\n if (!fontWeight)\r\n return \"\".concat(fontStyle, \" \").concat(fontSize, \"px \").concat(fontFamily);\r\n return \"\".concat(fontStyle, \" \").concat(fontWeight, \" \").concat(fontSize, \"px \").concat(fontFamily);\r\n};\r\nexports.getFontString = getFontString;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.base64Id = exports.generateGuid = void 0;\r\n/**\r\n * @description Generates GUID/UUID RFC4122 version 4 compliant\r\n */\r\nvar generateGuid = function () {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0;\r\n var v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\r\nexports.generateGuid = generateGuid;\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nvar base64Id = function (maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n var result = \"\";\r\n while (result.length < maxLength) {\r\n var number = Math.floor(Math.random() * 64);\r\n result += base64chars.charAt(number);\r\n }\r\n return result;\r\n};\r\nexports.base64Id = base64Id;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hasAllProperties = void 0;\r\nvar hasAllProperties = function (obj, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n if (!obj.hasOwnProperty(props[i]))\r\n return false;\r\n }\r\n return true;\r\n};\r\nexports.hasAllProperties = hasAllProperties;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hashUtils = void 0;\r\n// https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\r\nvar generateHash = function (s) {\r\n return s.split(\"\").reduce(function (a, b) {\r\n a = (a << 5) - a + b.charCodeAt(0);\r\n return a & a;\r\n }, 0);\r\n};\r\nvar generateObjectHash = function (obj) {\r\n var str = JSON.stringify(obj);\r\n return generateHash(str);\r\n};\r\nvar generateBooleanHash = function (value) {\r\n if (value === false)\r\n return generateHash(\"0\");\r\n if (value === true)\r\n return generateHash(\"1\");\r\n return generateHash(\"-1\");\r\n};\r\nvar generateNumberHash = function (value) {\r\n var str = value.toString(10);\r\n return generateHash(str);\r\n};\r\nvar generateCombinedHash = function (hashes) {\r\n return hashes.reduce(function (prev, curr) { return (prev * 397) ^ curr; }, 0);\r\n};\r\nexports.hashUtils = {\r\n generateHash: generateHash,\r\n generateObjectHash: generateObjectHash,\r\n generateBooleanHash: generateBooleanHash,\r\n generateNumberHash: generateNumberHash,\r\n generateCombinedHash: generateCombinedHash\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.stringOccurrences = exports.htmlToElement = void 0;\r\nfunction htmlToElement(html) {\r\n var template = document.createElement(\"template\");\r\n html = html.trim(); // Never return a text node of whitespace as the result\r\n template.innerHTML = html;\r\n return template.content.firstChild;\r\n}\r\nexports.htmlToElement = htmlToElement;\r\nfunction stringOccurrences(str, subStr, allowOverlapping) {\r\n if (allowOverlapping === void 0) { allowOverlapping = false; }\r\n str += \"\";\r\n subStr += \"\";\r\n if (subStr.length <= 0)\r\n return str.length + 1;\r\n var n = 0;\r\n var pos = 0;\r\n var step = allowOverlapping ? 1 : subStr.length;\r\n while (true) {\r\n pos = str.indexOf(subStr, pos);\r\n if (pos >= 0) {\r\n ++n;\r\n pos += step;\r\n }\r\n else\r\n break;\r\n }\r\n return n;\r\n}\r\nexports.stringOccurrences = stringOccurrences;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createImagesArrayAsync = exports.createImageAsync = void 0;\r\n/**\r\n * Helper function to create an HTML Image {@link HTMLImageElement} asychronously\r\n * by passing in the string image source\r\n * @remarks Returns a promise, await this to get the image element\r\n * @param src\r\n */\r\nfunction createImageAsync(src) {\r\n return new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.crossOrigin = \"Anonymous\";\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n img.src = src;\r\n });\r\n}\r\nexports.createImageAsync = createImageAsync;\r\n/**\r\n * Helper function to create an HTML Images {@link HTMLImageElement} asychronously\r\n * by passing in the string array\r\n * @param images\r\n */\r\nfunction createImagesArrayAsync(images) {\r\n var promises = images.map(function (image) { return createImageAsync(image); });\r\n return Promise.all(promises);\r\n}\r\nexports.createImagesArrayAsync = createImagesArrayAsync;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.testHasExcluded = exports.getIncludedAxis = void 0;\r\nvar getIncludedAxis = function (allAxes, axisMap) {\r\n if (axisMap.size === 0) {\r\n return allAxes;\r\n }\r\n if ((0, exports.testHasExcluded)(axisMap)) {\r\n return allAxes.filter(function (axis) { return axisMap.get(axis.id) !== false; });\r\n }\r\n return allAxes.filter(function (axis) { return axisMap.get(axis.id) === true; });\r\n};\r\nexports.getIncludedAxis = getIncludedAxis;\r\nvar testHasExcluded = function (axisMap) {\r\n var hasExcluded = false;\r\n axisMap.forEach(function (value) {\r\n if (value === false) {\r\n hasExcluded = true;\r\n }\r\n });\r\n return hasExcluded;\r\n};\r\nexports.testHasExcluded = testHasExcluded;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isRealNumber = void 0;\r\n/**\r\n * returns true if the number is a real number (not NAN, not Infinite)\r\n * @param number\r\n */\r\nfunction isRealNumber(number) {\r\n return !isNaN(number) && isFinite(number) && number !== Number.MAX_VALUE && number !== Number.MIN_VALUE;\r\n}\r\nexports.isRealNumber = isRealNumber;\r\n","\"use strict\";\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Logger = void 0;\r\nvar Logger = /** @class */ (function () {\r\n function Logger() {\r\n }\r\n // public static enableLog = false;\r\n Logger.log = function (message) {\r\n var optionalParameters = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n optionalParameters[_i - 1] = arguments[_i];\r\n }\r\n console.log(message, optionalParameters);\r\n };\r\n Logger.debug = function (message) {\r\n var optionalParameters = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n optionalParameters[_i - 1] = arguments[_i];\r\n }\r\n if (Logger.enableDebug) {\r\n console.debug.apply(console, __spreadArray([message], optionalParameters, false));\r\n }\r\n };\r\n Logger.enableDebug = false;\r\n return Logger;\r\n}());\r\nexports.Logger = Logger;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.logToBase = exports.fillNoisySinewave = exports.getNoisySinewave = void 0;\r\nvar getNoisySinewave = function (pointCount, xMax, frequency, amplitude, noiseAmplitude) {\r\n // TODO: add noise\r\n var xValues = [];\r\n var yValues = [];\r\n var phase = frequency / xMax;\r\n var freq = 2 * Math.PI * phase;\r\n for (var i = 0; i < pointCount; i++) {\r\n var x = (i * xMax) / (pointCount - 1);\r\n xValues.push(x);\r\n var y = amplitude * Math.sin(x * freq);\r\n var yNoise = (Math.random() - 0.5) * noiseAmplitude;\r\n yValues.push(y + yNoise);\r\n }\r\n return [xValues, yValues];\r\n};\r\nexports.getNoisySinewave = getNoisySinewave;\r\nvar fillNoisySinewave = function (pointCount, xMax, frequency, amplitude, noiseAmplitude, dataSeries) {\r\n var phase = frequency / xMax;\r\n var freq = 2 * Math.PI * phase;\r\n var xValues = dataSeries.getNativeXValues();\r\n var yValues = dataSeries.getNativeYValues();\r\n xValues.reserve(pointCount);\r\n yValues.reserve(pointCount);\r\n for (var i = 0; i < pointCount; i++) {\r\n var x = (i * xMax) / (pointCount - 1);\r\n var y = amplitude * Math.sin(x * freq);\r\n var yNoise = (Math.random() - 0.5) * noiseAmplitude;\r\n xValues.push_back(x);\r\n yValues.push_back(y + yNoise);\r\n }\r\n};\r\nexports.fillNoisySinewave = fillNoisySinewave;\r\nvar logToBase = function (n, base) {\r\n if (base === 10) {\r\n return Math.log10(n);\r\n }\r\n return Math.log(n) / (base ? Math.log(base) : 1);\r\n};\r\nexports.logToBase = logToBase;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.memoize = void 0;\r\nfunction memoize(heavyCalculationFunction, equalityComparisonFunction) {\r\n var memoizedValue;\r\n var prevArgs;\r\n // relies on referential equality\r\n var defaultComparator = function (args, previousArgs) {\r\n return !args.some(function (value, paramIndex) { return value !== previousArgs[paramIndex]; });\r\n };\r\n var checkIsEqual = equalityComparisonFunction !== null && equalityComparisonFunction !== void 0 ? equalityComparisonFunction : defaultComparator;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var isEqual = prevArgs && checkIsEqual(args, prevArgs);\r\n if (!prevArgs || !isEqual) {\r\n // Note: it only stores a shallow copy of the params\r\n prevArgs = args;\r\n memoizedValue = heavyCalculationFunction.apply(void 0, args);\r\n }\r\n return memoizedValue;\r\n };\r\n}\r\nexports.memoize = memoize;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.checkIsNaN = exports.toEngineering = exports.toScientific = exports.toSuperScript = exports.formatNumber = exports.numericHashCode = exports.formatNumber2Digits = void 0;\r\nvar NumericFormat_1 = require(\"../types/NumericFormat\");\r\nvar date_1 = require(\"./date\");\r\nvar math_1 = require(\"./math\");\r\n/**\r\n * @description Formats value always to have 2 decimal digits, e.g. 12.45, 14.20, 17.00\r\n * @param value\r\n */\r\nvar formatNumber2Digits = function (value) {\r\n return (Math.round((value + Number.EPSILON) * 100) / 100).toFixed(2);\r\n};\r\nexports.formatNumber2Digits = formatNumber2Digits;\r\nvar numericHashCode = function (hash, value) {\r\n hash = hash * 31 - hash + value;\r\n hash |= 0; // Convert to 32bit integer\r\n return hash;\r\n};\r\nexports.numericHashCode = numericHashCode;\r\nvar formatNumber = function (dataValue, numericFormat, precision, engineeringPrefix) {\r\n if (dataValue === undefined)\r\n return \"\";\r\n switch (numericFormat) {\r\n case NumericFormat_1.ENumericFormat.NoFormat:\r\n return dataValue.toString();\r\n case NumericFormat_1.ENumericFormat.Decimal:\r\n return dataValue.toFixed(precision);\r\n case NumericFormat_1.ENumericFormat.SignificantFigures:\r\n // Number here avoids toPrecision sometimes producing exponential format\r\n return Number(dataValue.toPrecision(precision)).toString();\r\n case NumericFormat_1.ENumericFormat.Exponential:\r\n return dataValue.toExponential(precision);\r\n case NumericFormat_1.ENumericFormat.Scientific:\r\n return (0, exports.toScientific)(dataValue, precision, 10);\r\n case NumericFormat_1.ENumericFormat.Date_DDMMYYYY:\r\n return (0, date_1.formatUnixDateToHumanString)(dataValue);\r\n case NumericFormat_1.ENumericFormat.Date_DDMMYY:\r\n return (0, date_1.formatUnixDateToHumanStringDDMMYY)(dataValue);\r\n case NumericFormat_1.ENumericFormat.Date_DDMMHHMM:\r\n return (0, date_1.formatUnixDateToHumanStringDDMMHHMM)(dataValue);\r\n case NumericFormat_1.ENumericFormat.Date_DDMM:\r\n return (0, date_1.formatUnixDateToHumanStringDDMM)(dataValue);\r\n case NumericFormat_1.ENumericFormat.Date_HHMM:\r\n return (0, date_1.formatUnixDateToHumanStringHHMM)(dataValue);\r\n case NumericFormat_1.ENumericFormat.Date_HHMMSS:\r\n return (0, date_1.formatUnixDateToHumanStringHHMMSS)(dataValue);\r\n case NumericFormat_1.ENumericFormat.Date_SSms:\r\n return (0, date_1.formatUnixDateToHumanStringSSms)(dataValue);\r\n case NumericFormat_1.ENumericFormat.Engineering:\r\n return (0, exports.toEngineering)(dataValue, engineeringPrefix === null || engineeringPrefix === void 0 ? void 0 : engineeringPrefix.large, engineeringPrefix === null || engineeringPrefix === void 0 ? void 0 : engineeringPrefix.small);\r\n }\r\n};\r\nexports.formatNumber = formatNumber;\r\nvar superScript_map = [\r\n \"\\u2070\",\r\n \"\\u00B9\",\r\n \"\\u00B2\",\r\n \"\\u00B3\",\r\n \"\\u2074\",\r\n \"\\u2075\",\r\n \"\\u2076\",\r\n \"\\u2077\",\r\n \"\\u2078\",\r\n \"\\u2079\"\r\n];\r\nvar toSuperScript = function (value) {\r\n var str = \"\";\r\n var isNegative = value < 0;\r\n var valStr = Math.abs(value).toString();\r\n // Loop through all digits\r\n for (var _i = 0, valStr_1 = valStr; _i < valStr_1.length; _i++) {\r\n var char = valStr_1[_i];\r\n // Current digit's value\r\n var digit = Number.parseInt(char);\r\n if (!isNaN(digit)) {\r\n // Append as superscript character\r\n str += superScript_map[digit];\r\n }\r\n }\r\n return (isNegative ? \"\\u207B\" : \"\") + str;\r\n};\r\nexports.toSuperScript = toSuperScript;\r\nvar toScientific = function (value, precision, logarithmicBase) {\r\n if (value === 0)\r\n return \"0\";\r\n var exponent = (0, math_1.logToBase)(Math.abs(value), logarithmicBase);\r\n exponent = Math.floor(exponent);\r\n var sig = value / Math.pow(logarithmicBase, exponent);\r\n return sig.toPrecision(precision).toString() + \"x\" + logarithmicBase.toString() + (0, exports.toSuperScript)(exponent);\r\n};\r\nexports.toScientific = toScientific;\r\nvar toEngineering = function (value, largePrefixes, smallPrefixes) {\r\n // default prefixes, if user sent nothing\r\n var absValue = Math.abs(value);\r\n if ((largePrefixes === null || largePrefixes === void 0 ? void 0 : largePrefixes.length) == 0 && (smallPrefixes === null || smallPrefixes === void 0 ? void 0 : smallPrefixes.length) == 0)\r\n return value.toString();\r\n if (!largePrefixes && absValue > 1)\r\n largePrefixes = ['K', 'M', 'B', 'T'];\r\n if (!smallPrefixes && absValue < 1)\r\n smallPrefixes = ['m', 'µ', 'n', 'p'];\r\n // if user passes empty array\r\n if (absValue > 999) { // supunitary & needs formatting\r\n for (var exponent = 1; exponent <= largePrefixes.length; exponent++) {\r\n if (absValue < Math.pow(10, 3 * (exponent + 1))) {\r\n return (value / Math.pow(10, 3 * exponent)).toPrecision(3) + largePrefixes[exponent - 1];\r\n }\r\n }\r\n // If the value is still larger than the highest defined prefix\r\n return Math.floor(value / Math.pow(10, 3 * largePrefixes.length)) + largePrefixes[largePrefixes.length - 1];\r\n }\r\n else if (absValue < 1 && value !== 0) { // subunitary\r\n for (var exponent = 0; exponent < smallPrefixes.length; exponent++) {\r\n if (absValue >= Math.pow(10, -3 * (exponent + 1))) {\r\n return (value * Math.pow(10, 3 * (exponent + 1))).toPrecision(3) + smallPrefixes[exponent];\r\n }\r\n }\r\n // If the value is still smaller than the lowest defined prefix\r\n return (value * Math.pow(10, 3 * smallPrefixes.length)) + smallPrefixes[smallPrefixes.length - 1];\r\n }\r\n return value.toString();\r\n};\r\nexports.toEngineering = toEngineering;\r\n// if value !== value is a simple but fast isNaN check\r\n// equivalent to isNaN(zValueRaw)\r\nvar checkIsNaN = function (value) { return value !== value; };\r\nexports.checkIsNaN = checkIsNaN;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.webColors = exports.parseTArgbToHtmlColor = exports.parseArgbToHtmlColor = exports.parseColorToTArgb = exports.toHex = exports.parseColorToUIntArgb = exports.parseColorToHexStringAbgr = exports.parseColorToHexStringArgb = void 0;\r\n/**\r\n * Parse colors and convert them to hex string to use in c++\r\n * Examples: \"#fff\", \"#ff0000\", \"rgba(255,255,0,1)\", \"#11333333\"\r\n * @param input\r\n */\r\nfunction parseColorToHexStringArgb(input, opacityOverride) {\r\n var res = parseColorToTArgb(input);\r\n return \"0x\" + toHex(opacityOverride !== null && opacityOverride !== void 0 ? opacityOverride : res.opacity) + toHex(res.red) + toHex(res.green) + toHex(res.blue);\r\n}\r\nexports.parseColorToHexStringArgb = parseColorToHexStringArgb;\r\n/**\r\n * Parse colors and convert them to hex string in ABGR format to use in c++\r\n * Examples: \"#fff\", \"#ff0000\", \"rgba(255,255,0,1)\", \"#11333333\"\r\n * @param input\r\n */\r\nfunction parseColorToHexStringAbgr(input, opacityOverride) {\r\n var res = parseColorToTArgb(input);\r\n return (\"0x\" +\r\n toHex(opacityOverride ? opacityOverride : res.opacity) +\r\n toHex(res.blue) +\r\n toHex(res.green) +\r\n toHex(res.red));\r\n}\r\nexports.parseColorToHexStringAbgr = parseColorToHexStringAbgr;\r\nfunction parseColorToUIntArgb(input, opacity) {\r\n return parseInt(parseColorToHexStringArgb(input, opacity), 16);\r\n}\r\nexports.parseColorToUIntArgb = parseColorToUIntArgb;\r\n/**\r\n * Converts a UINT color number to a 8-digit hex code e.g. #FFAABBCC\r\n * @param value\r\n */\r\nfunction toHex(value) {\r\n var hex = value.toString(16);\r\n return hex.length === 1 ? \"0\" + hex : hex;\r\n}\r\nexports.toHex = toHex;\r\n/**\r\n * Converts an HTML color code to TArgb\r\n * @param input\r\n */\r\nfunction parseColorToTArgb(input) {\r\n if (!input || !input.length || input.length > 50) {\r\n throw Error(\"'\" + input + \"' is not a valid color...\");\r\n }\r\n // Obviously, the numeric values will be easier to parse than names.So we do those first.\r\n // For three-digit format:\r\n var matchFor3digitColor = input.match(/^#?([0-9a-f]{3})$/i);\r\n if (matchFor3digitColor) {\r\n var m = matchFor3digitColor[1];\r\n // in three-character format, each value is multiplied by 0x11 to give an even scale from 0x00 to 0xff\r\n var opacity = 0xff;\r\n var red = parseInt(m.charAt(0), 16) * 0x11;\r\n var green = parseInt(m.charAt(1), 16) * 0x11;\r\n var blue = parseInt(m.charAt(2), 16) * 0x11;\r\n validateColorValues([red, green, blue], [\"red\", \"green\", \"blue\"]);\r\n return { opacity: opacity, red: red, green: green, blue: blue };\r\n }\r\n // That's one for the full six-digit format:\r\n var matchFor6digitColor = input.match(/^#?([0-9a-f]{6})$/i);\r\n if (matchFor6digitColor) {\r\n var m = matchFor6digitColor[1];\r\n var opacity = 0xff;\r\n var red = parseInt(m.substr(0, 2), 16);\r\n var green = parseInt(m.substr(2, 2), 16);\r\n var blue = parseInt(m.substr(4, 2), 16);\r\n validateColorValues([red, green, blue], [\"red\", \"green\", \"blue\"]);\r\n return { opacity: opacity, red: red, green: green, blue: blue };\r\n }\r\n // That's for eight-digit format, where last two digits stand for opacity:\r\n var matchFor8digitColor = input.match(/^#?([0-9a-f]{8})$/i);\r\n if (matchFor8digitColor) {\r\n var m = matchFor8digitColor[1];\r\n var red = parseInt(m.substr(0, 2), 16);\r\n var green = parseInt(m.substr(2, 2), 16);\r\n var blue = parseInt(m.substr(4, 2), 16);\r\n var opacity = parseInt(m.substr(6, 2), 16);\r\n validateColorValues([opacity, red, green, blue], [\"opacity\", \"red\", \"green\", \"blue\"]);\r\n return { opacity: opacity, red: red, green: green, blue: blue };\r\n }\r\n // And now for rgba() format:\r\n var matchForRgbaColor = input.match(/^rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d*\\.?\\d*)\\s*\\)$/i);\r\n if (matchForRgbaColor) {\r\n var opacity01 = parseFloat(matchForRgbaColor[4]);\r\n validateOpacity(opacity01);\r\n var opacity = convertOpacity(opacity01);\r\n var red = parseInt(matchForRgbaColor[1], 10);\r\n var green = parseInt(matchForRgbaColor[2], 10);\r\n var blue = parseInt(matchForRgbaColor[3], 10);\r\n validateColorValues([red, green, blue], [\"red\", \"green\", \"blue\"]);\r\n return { opacity: opacity, red: red, green: green, blue: blue };\r\n }\r\n var wc = exports.webColors[input.toLowerCase()];\r\n if (wc)\r\n return parseColorToTArgb(wc);\r\n throw Error(\"'\" + input + \"' is not a valid color...\");\r\n}\r\nexports.parseColorToTArgb = parseColorToTArgb;\r\n/**\r\n * Converts color from ARGB number format into HTML string format #FFFFFFFF\r\n * @param argbColor color in ARGB format\r\n */\r\nvar parseArgbToHtmlColor = function (argbColor) {\r\n var res = argbColor.toString(16);\r\n var length = res.length;\r\n if (length > 8) {\r\n throw new Error(\"HTML color length cannot be greater than 8\");\r\n }\r\n var addLeadingZeros = function (str, len) {\r\n var numLeadingZeros = len - str.length;\r\n var zerosStr = new Array(numLeadingZeros + 1).join(\"0\");\r\n return zerosStr + str;\r\n };\r\n var rgb = addLeadingZeros(res.substr(-6), 6);\r\n var a = addLeadingZeros(res.substring(0, res.length - 6), 2);\r\n return \"#\" + rgb + a;\r\n};\r\nexports.parseArgbToHtmlColor = parseArgbToHtmlColor;\r\n/**\r\n * Useful for debugging purposes. Converts {@link TArgb} to HTML Color code e.g. '#FF112233'=RGBA\r\n * @param targb\r\n */\r\nvar parseTArgbToHtmlColor = function (targb) {\r\n var r = convertComponent(targb.red);\r\n var g = convertComponent(targb.green);\r\n var b = convertComponent(targb.blue);\r\n var a = convertComponent(targb.opacity);\r\n return (\"#\" + r + g + b + a).toUpperCase();\r\n};\r\nexports.parseTArgbToHtmlColor = parseTArgbToHtmlColor;\r\n/** @ignore */\r\nfunction validateColorValues(values, variableNames) {\r\n values.forEach(function (value, index) {\r\n var variableName = variableNames[index];\r\n if (value === undefined) {\r\n throw Error(\"parseColor error \".concat(variableName, \" color should not be null\"));\r\n }\r\n else if (Number.isNaN(value)) {\r\n throw Error(\"parseColor error \".concat(variableName, \" color should not be NaN\"));\r\n }\r\n else if (value < 0 || value > 255) {\r\n throw Error(\"parseColor error \".concat(variableName, \" color should be within [0, 255] range\"));\r\n }\r\n });\r\n}\r\n/** @ignore */\r\nfunction validateOpacity(value) {\r\n if (value === undefined) {\r\n throw Error(\"parseColor error opacity should not be null\");\r\n }\r\n else if (Number.isNaN(value)) {\r\n throw Error(\"parseColor error opacity should not be NaN\");\r\n }\r\n else if (value < 0 || value > 1) {\r\n throw Error(\"parseColor error opacity should be within [0, 1] range\");\r\n }\r\n}\r\n/**\r\n * @ignore\r\n * Converts number from 0 to 1 to hex string. For example 1 -> \"ff\", 0.5 => \"80\"\r\n * @param opacity\r\n */\r\nvar convertOpacity = function (opacity) {\r\n if (opacity >= 1) {\r\n return 0xff;\r\n }\r\n if (opacity <= 0) {\r\n return 0;\r\n }\r\n return Math.floor(opacity * 256);\r\n};\r\n/**\r\n * @ignore\r\n * Converts number (color component) from 0 to 256 to hex string, with 0 padding\r\n * @param component\r\n */\r\nvar convertComponent = function (component) {\r\n if (component >= 256) {\r\n return \"ff\";\r\n }\r\n if (component <= 0) {\r\n return \"00\";\r\n }\r\n var hex = component.toString(16);\r\n return hex.length === 1 ? \"0\" + hex : hex;\r\n};\r\n// https://www.w3schools.com/colors/colors_names.asp\r\n// https://en.wikipedia.org/wiki/Web_colors\r\n// http://www.colors.commutercreative.com/grid/\r\n/** @ignore */\r\nexports.webColors = {\r\n transparent: \"#00000000\",\r\n aliceblue: \"#f0f8ff\",\r\n antiquewhite: \"#faebd7\",\r\n aqua: \"#00ffff\",\r\n aquamarine: \"#7fffd4\",\r\n azure: \"#f0ffff\",\r\n beige: \"#f5f5dc\",\r\n bisque: \"#ffe4c4\",\r\n black: \"#000000\",\r\n blanchedalmond: \"#ffebcd\",\r\n blue: \"#0000ff\",\r\n blueviolet: \"#8a2be2\",\r\n brown: \"#a52a2a\",\r\n burlywood: \"#deb887\",\r\n cadetblue: \"#5f9ea0\",\r\n chartreuse: \"#7fff00\",\r\n chocolate: \"#d2691e\",\r\n coral: \"#ff7f50\",\r\n cornflowerblue: \"#6495ed\",\r\n cornsilk: \"#fff8dc\",\r\n crimson: \"#dc143c\",\r\n cyan: \"#00ffff\",\r\n darkblue: \"#00008b\",\r\n darkcyan: \"#008b8b\",\r\n darkgoldenrod: \"#b8860b\",\r\n darkgray: \"#a9a9a9\",\r\n darkgrey: \"#a9a9a9\",\r\n darkgreen: \"#006400\",\r\n darkkhaki: \"#bdb76b\",\r\n darkmagenta: \"#8b008b\",\r\n darkolivegreen: \"#556b2f\",\r\n darkorange: \"#ff8c00\",\r\n darkorchid: \"#9932cc\",\r\n darkred: \"#8b0000\",\r\n darksalmon: \"#e9967a\",\r\n darkseagreen: \"#8fbc8f\",\r\n darkslateblue: \"#483d8b\",\r\n darkslategray: \"#2f4f4f\",\r\n darkslategrey: \"#2f4f4f\",\r\n darkturquoise: \"#00ced1\",\r\n darkviolet: \"#9400d3\",\r\n deeppink: \"#ff1493\",\r\n deepskyblue: \"#00bfff\",\r\n dimgray: \"#696969\",\r\n dimgrey: \"#696969\",\r\n dodgerblue: \"#1e90ff\",\r\n firebrick: \"#b22222\",\r\n floralwhite: \"#fffaf0\",\r\n forestgreen: \"#228b22\",\r\n fuchsia: \"#ff00ff\",\r\n gainsboro: \"#dcdcdc\",\r\n ghostwhite: \"#f8f8ff\",\r\n gold: \"#ffd700\",\r\n goldenrod: \"#daa520\",\r\n gray: \"#808080\",\r\n grey: \"#808080\",\r\n green: \"#008000\",\r\n greenyellow: \"#adff2f\",\r\n honeydew: \"#f0fff0\",\r\n hotpink: \"#ff69b4\",\r\n indianred: \"#cd5c5c\",\r\n indigo: \"#4b0082\",\r\n ivory: \"#fffff0\",\r\n khaki: \"#f0e68c\",\r\n lavender: \"#e6e6fa\",\r\n lavenderblush: \"#fff0f5\",\r\n lawngreen: \"#7cfc00\",\r\n lemonchiffon: \"#fffacd\",\r\n lightblue: \"#add8e6\",\r\n lightcoral: \"#f08080\",\r\n lightcyan: \"#e0ffff\",\r\n lightgoldenrodyellow: \"#fafad2\",\r\n lightgray: \"#d3d3d3\",\r\n lightgrey: \"#d3d3d3\",\r\n lightgreen: \"#90ee90\",\r\n lightpink: \"#ffb6c1\",\r\n lightsalmon: \"#ffa07a\",\r\n lightseagreen: \"#20b2aa\",\r\n lightskyblue: \"#87cefa\",\r\n lightslategray: \"#778899\",\r\n lightslategrey: \"#778899\",\r\n lightsteelblue: \"#b0c4de\",\r\n lightyellow: \"#ffffe0\",\r\n lime: \"#00ff00\",\r\n limegreen: \"#32cd32\",\r\n linen: \"#faf0e6\",\r\n magenta: \"#ff00ff\",\r\n maroon: \"#800000\",\r\n mediumaquamarine: \"#66cdaa\",\r\n mediumblue: \"#0000cd\",\r\n mediumorchid: \"#ba55d3\",\r\n mediumpurple: \"#9370db\",\r\n mediumseagreen: \"#3cb371\",\r\n mediumslateblue: \"#7b68ee\",\r\n mediumspringgreen: \"#00fa9a\",\r\n mediumturquoise: \"#48d1cc\",\r\n mediumvioletred: \"#c71585\",\r\n midnightblue: \"#191970\",\r\n mintcream: \"#f5fffa\",\r\n mistyrose: \"#ffe4e1\",\r\n moccasin: \"#ffe4b5\",\r\n navajowhite: \"#ffdead\",\r\n navy: \"#000080\",\r\n oldlace: \"#fdf5e6\",\r\n olive: \"#808000\",\r\n olivedrab: \"#6b8e23\",\r\n orange: \"#ffa500\",\r\n orangered: \"#ff4500\",\r\n orchid: \"#da70d6\",\r\n palegoldenrod: \"#eee8aa\",\r\n palegreen: \"#98fb98\",\r\n paleturquoise: \"#afeeee\",\r\n palevioletred: \"#db7093\",\r\n papayawhip: \"#ffefd5\",\r\n peachpuff: \"#ffdab9\",\r\n peru: \"#cd853f\",\r\n pink: \"#ffc0cb\",\r\n plum: \"#dda0dd\",\r\n powderblue: \"#b0e0e6\",\r\n purple: \"#800080\",\r\n rebeccapurple: \"#663399\",\r\n red: \"#ff0000\",\r\n rosybrown: \"#bc8f8f\",\r\n royalblue: \"#4169e1\",\r\n saddlebrown: \"#8b4513\",\r\n salmon: \"#fa8072\",\r\n sandybrown: \"#f4a460\",\r\n seagreen: \"#2e8b57\",\r\n seashell: \"#fff5ee\",\r\n sienna: \"#a0522d\",\r\n silver: \"#c0c0c0\",\r\n skyblue: \"#87ceeb\",\r\n slateblue: \"#6a5acd\",\r\n slategray: \"#708090\",\r\n slategrey: \"#708090\",\r\n snow: \"#fffafa\",\r\n springgreen: \"#00ff7f\",\r\n steelblue: \"#4682b4\",\r\n tan: \"#d2b48c\",\r\n teal: \"#008080\",\r\n thistle: \"#d8bfd8\",\r\n tomato: \"#ff6347\",\r\n turquoise: \"#40e0d0\",\r\n violet: \"#ee82ee\",\r\n wheat: \"#f5deb3\",\r\n white: \"#ffffff\",\r\n whitesmoke: \"#f5f5f5\",\r\n yellow: \"#ffff00\",\r\n yellowgreen: \"#9acd32\"\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PerformanceDebugHelper = exports.EPerformanceMarkType = void 0;\r\nvar guid_1 = require(\"./guid\");\r\n/**\r\n * Performance debugging checkpoints enum\r\n */\r\nvar EPerformanceMarkType;\r\n(function (EPerformanceMarkType) {\r\n /**\r\n * A surface creation start.\r\n * @remarks used internally\r\n */\r\n EPerformanceMarkType[\"InitializationStart\"] = \"InitializationStart\";\r\n /**\r\n * A surface creation end.\r\n * @remarks used internally\r\n */\r\n EPerformanceMarkType[\"InitializationEnd\"] = \"InitializationEnd\";\r\n /**\r\n * WASM engine fetching and initialization start.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"EngineInitStart\"] = \"EngineInitStart\";\r\n /**\r\n * WASM engine fetching and initialization end.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"EngineInitEnd\"] = \"EngineInitEnd\";\r\n /**\r\n * First surface invalidation in a sequence.\r\n *\r\n * @description\r\n * Surface invalidation is triggered implicitly on data or property changes.\r\n * Invalidating a surface means that it should rerender.\r\n * Multiple calls of {@link SciChartSurfaceBase.invalidateElement} are batched based on the timing.\r\n *\r\n * @remarks used internally\r\n */\r\n EPerformanceMarkType[\"LeadingInvalidate\"] = \"LeadingInvalidate\";\r\n /**\r\n * Subsequent surface invalidation.\r\n *\r\n * @description\r\n * The subsequent surface invalidation shouldn't affect rerender\r\n * since it is enough to have a single `invalidate` call ({@link LeadingInvalidate})\r\n * But it may be used to see the time and number of updates occurring.\r\n *\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"Invalidate\"] = \"Invalidate\";\r\n /**\r\n * DataSeries update start.\r\n * @description\r\n * Appending, inserting, removing data in DataSeries.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"DataUpdateStart\"] = \"DataUpdateStart\";\r\n /**\r\n * DataSeries update end.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"DataUpdateEnd\"] = \"DataUpdateEnd\";\r\n /**\r\n * Chart rendering start.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"RenderStart\"] = \"RenderStart\";\r\n /**\r\n * Chart rendering end.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"RenderEnd\"] = \"RenderEnd\";\r\n /**\r\n * Chart rendered.\r\n * @description\r\n * Represents a chart being rendered to an in between state that will be followed by another render.\r\n * (In some rare cases it could mean that the resulting image may be ito be incomplete incorrect, outdated,\r\n * or require another render iteration to make related calculations.)\r\n *\r\n * In this state the surface is invalidated, thus another render call is expected to follow.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"Rendered\"] = \"Rendered\";\r\n /**\r\n * Chart rendered.\r\n * @description\r\n * Represents a chart being rendered to a complete state.\r\n * In this state the surface is NOT invalidated.\r\n * Next render will happen after invalidation is triggered.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"FullStateRendered\"] = \"FullStateRendered\";\r\n /**\r\n * Chart element resizing.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"Resize\"] = \"Resize\";\r\n /**\r\n * Browser zoom change.\r\n * @remarks used internally.\r\n */\r\n EPerformanceMarkType[\"DpiChange\"] = \"DpiChange\";\r\n /**\r\n * Chart initialization.\r\n * @remarks\r\n * used internally in `chartBuilder`.\r\n * Otherwise, it is supposed to be used explicitly after the surface is created.\r\n */\r\n EPerformanceMarkType[\"SetupStart\"] = \"SetupStart\";\r\n /**\r\n * Chart initialization.\r\n * @remarks\r\n * used internally in `chartBuilder`.\r\n * Otherwise, it is supposed to be used explicitly after the surface is created.\r\n */\r\n EPerformanceMarkType[\"SetupEnd\"] = \"SetupEnd\";\r\n})(EPerformanceMarkType = exports.EPerformanceMarkType || (exports.EPerformanceMarkType = {}));\r\n/**\r\n * @experimental\r\n * An util used for adding performance checkpoints which can be then used for analyzing the chart performance.\r\n * The checkpoints are created via the [Performance API](https://developer.mozilla.org/en-US/docs/Web/API/Performance)\r\n * @remarks\r\n * By default it is disabled, to make use of the utils set {@link PerformanceDebugHelper.enableDebug}.\r\n * Some checkpoints are set implicitly.\r\n * Custom checkpoints could be set using {@link PerformanceDebugHelper.mark}.\r\n * To output the results use {@link PerformanceDebugHelper.outputLogs}.\r\n */\r\nvar PerformanceDebugHelper = /** @class */ (function () {\r\n function PerformanceDebugHelper() {\r\n }\r\n PerformanceDebugHelper.mark = function (type, options) {\r\n var _a;\r\n if (PerformanceDebugHelper.enableDebug) {\r\n var groupId = (_a = options === null || options === void 0 ? void 0 : options.relatedId) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();\r\n return performance.mark(\"\".concat(type, \"_\").concat(groupId), {\r\n detail: { relatedId: groupId, contextId: options === null || options === void 0 ? void 0 : options.contextId }\r\n });\r\n }\r\n return null;\r\n };\r\n PerformanceDebugHelper.outputLogs = function () {\r\n performance.getEntriesByType(\"mark\").forEach(function (entry) {\r\n console.log(entry.name, entry.startTime);\r\n });\r\n };\r\n PerformanceDebugHelper.enableDebug = false;\r\n return PerformanceDebugHelper;\r\n}());\r\nexports.PerformanceDebugHelper = PerformanceDebugHelper;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.calcDistanceFromLineSegment = exports.calcDotProduct = exports.testIsInInterval = exports.testIsInXBounds = exports.calcAnnotationBordersForAxisMarker = exports.testIsInBounds = exports.calcDistance = exports.calcCrossProduct = exports.calcDistanceFromLine = void 0;\r\nvar AxisAlignment_1 = require(\"../types/AxisAlignment\");\r\nvar calcDistanceFromLine = function (x, y, startX, startY, endX, endY) {\r\n return Math.abs((0, exports.calcCrossProduct)(startX, startY, endX, endY, x, y) / (0, exports.calcDistance)(startX, startY, endX, endY));\r\n};\r\nexports.calcDistanceFromLine = calcDistanceFromLine;\r\nvar calcCrossProduct = function (xA, yA, xB, yB, xC, yC) {\r\n return (xB - xA) * (yC - yA) - (yB - yA) * (xC - xA);\r\n};\r\nexports.calcCrossProduct = calcCrossProduct;\r\nvar calcDistance = function (x1, y1, x2, y2) {\r\n var diffX = x1 - x2;\r\n var diffY = y1 - y2;\r\n return Math.sqrt(diffX * diffX + diffY * diffY);\r\n};\r\nexports.calcDistance = calcDistance;\r\nvar testIsInBounds = function (x, y, left, bottom, right, top, radius) {\r\n if (radius === void 0) { radius = 0; }\r\n return x >= left - radius && x <= right + radius && y <= bottom - radius && y >= top + radius;\r\n};\r\nexports.testIsInBounds = testIsInBounds;\r\n/**\r\n * Calculates annotation borders for {@link AxisMarkerAnnotation}\r\n * @param isVerticalChart the vertical chart flag\r\n * @param x1 the X1 data value of the annotation\r\n * @param y1 the Y1 data value of the annotation\r\n * @param horizontalAxis the horizontal axis\r\n * @param verticalAxis the vertical axis\r\n * @param textureWidth the texture width\r\n * @param viewRect the seriesViewRect\r\n * @param xPosition the X position of the texture on the SciChartSurface, the left-top corner position on the canvas\r\n * @param yPosition the Y position of the texture on the SciChartSurface, the left-top corner position on the canvas\r\n * @param textureHeight the texture width\r\n * @param annotationMarginXDirection the texture margin in X direction\r\n * @param annotationMarginYDirection the texture margin in Y direction\r\n * @param isHorizontalAxisAlignmentReversed if true EAxisAlignment.Top, otherwise EAxisAlignment.Bottom\r\n * @param isVerticalAxisAlignmentReversed if true EAxisAlignment.Left, otherwise EAxisAlignment.Right\r\n */\r\nvar calcAnnotationBordersForAxisMarker = function (isVerticalChart, x1, y1, horizontalAxis, verticalAxis, textureWidth, viewRect, xPosition, yPosition, textureHeight, annotationMarginXDirection, annotationMarginYDirection, isHorizontalAxisAlignmentReversed, isVerticalAxisAlignmentReversed) {\r\n var annotationBorders = { x1: 0, x2: 0, y1: 0, y2: 0 };\r\n if (isVerticalChart) {\r\n if (x1) {\r\n if (horizontalAxis.axisAlignment === AxisAlignment_1.EAxisAlignment.Top) {\r\n if (verticalAxis.axisAlignment === AxisAlignment_1.EAxisAlignment.Left) {\r\n annotationBorders.x1 = textureWidth - viewRect.y;\r\n annotationBorders.y1 = yPosition - viewRect.y;\r\n annotationBorders.x2 = 0;\r\n annotationBorders.y2 = yPosition + textureHeight - viewRect.y;\r\n }\r\n else if (verticalAxis.axisAlignment === AxisAlignment_1.EAxisAlignment.Right) {\r\n annotationBorders.x1 = viewRect.width - textureWidth + viewRect.y;\r\n annotationBorders.y1 = yPosition - viewRect.y;\r\n annotationBorders.x2 = viewRect.width;\r\n annotationBorders.y2 = yPosition + textureHeight - viewRect.y;\r\n }\r\n }\r\n else {\r\n if (verticalAxis.axisAlignment === AxisAlignment_1.EAxisAlignment.Left) {\r\n annotationBorders.x1 = textureWidth - viewRect.x + annotationMarginXDirection;\r\n annotationBorders.y1 = yPosition - viewRect.y;\r\n annotationBorders.x2 = 0;\r\n annotationBorders.y2 = yPosition + textureHeight - viewRect.y;\r\n }\r\n else if (verticalAxis.axisAlignment === AxisAlignment_1.EAxisAlignment.Right) {\r\n annotationBorders.x1 = xPosition - annotationMarginXDirection;\r\n annotationBorders.y1 = yPosition - viewRect.y;\r\n annotationBorders.x2 = viewRect.width;\r\n annotationBorders.y2 = yPosition + textureHeight - viewRect.y;\r\n }\r\n }\r\n }\r\n else if (y1) {\r\n if (horizontalAxis.axisAlignment === AxisAlignment_1.EAxisAlignment.Top) {\r\n annotationBorders.x1 = xPosition + textureWidth / 2 - viewRect.x + annotationMarginYDirection;\r\n annotationBorders.y1 = textureHeight - viewRect.y + annotationMarginYDirection;\r\n annotationBorders.x2 = xPosition - textureWidth / 2 - viewRect.x + annotationMarginYDirection;\r\n annotationBorders.y2 = 0;\r\n }\r\n else {\r\n annotationBorders.x1 = xPosition - textureWidth / 2 - viewRect.x + annotationMarginYDirection;\r\n annotationBorders.y1 = yPosition - annotationMarginYDirection;\r\n annotationBorders.x2 = xPosition + textureWidth / 2 - viewRect.x + annotationMarginYDirection;\r\n annotationBorders.y2 = viewRect.height;\r\n }\r\n }\r\n }\r\n else {\r\n if (x1) {\r\n if (isHorizontalAxisAlignmentReversed) {\r\n annotationBorders.x1 = xPosition - textureWidth / 2 + annotationMarginYDirection;\r\n annotationBorders.y1 = yPosition + textureHeight - viewRect.y;\r\n annotationBorders.x2 = xPosition + textureWidth / 2;\r\n annotationBorders.y2 = yPosition;\r\n }\r\n else if (isVerticalAxisAlignmentReversed) {\r\n annotationBorders.x1 = xPosition - textureWidth / 2 + annotationMarginXDirection - viewRect.x;\r\n annotationBorders.y1 = yPosition - annotationMarginXDirection;\r\n annotationBorders.x2 = xPosition + textureWidth / 2 + annotationMarginXDirection - viewRect.x;\r\n annotationBorders.y2 = viewRect.height;\r\n }\r\n else {\r\n annotationBorders.x1 = xPosition - textureWidth / 2 - annotationMarginYDirection;\r\n annotationBorders.y1 = yPosition - annotationMarginXDirection;\r\n annotationBorders.x2 = xPosition + textureWidth / 2 - annotationMarginYDirection;\r\n annotationBorders.y2 = yPosition + textureHeight - viewRect.y;\r\n }\r\n }\r\n else if (y1) {\r\n if (isVerticalAxisAlignmentReversed) {\r\n annotationBorders.x1 = textureWidth - viewRect.x + annotationMarginYDirection;\r\n annotationBorders.y1 = yPosition - textureHeight / 2;\r\n annotationBorders.x2 = 0;\r\n annotationBorders.y2 = yPosition + textureHeight / 2;\r\n }\r\n else {\r\n annotationBorders.x1 = xPosition - annotationMarginYDirection;\r\n annotationBorders.y1 = yPosition - textureHeight / 2 - annotationMarginXDirection;\r\n annotationBorders.x2 = xPosition + textureWidth;\r\n annotationBorders.y2 = yPosition + textureHeight / 2 - annotationMarginXDirection;\r\n }\r\n }\r\n }\r\n return annotationBorders;\r\n};\r\nexports.calcAnnotationBordersForAxisMarker = calcAnnotationBordersForAxisMarker;\r\nvar testIsInXBounds = function (xHitTestPoint, xDataPointCoord, maxDistance) {\r\n var distance = Math.abs(xHitTestPoint - xDataPointCoord);\r\n return distance < maxDistance;\r\n};\r\nexports.testIsInXBounds = testIsInXBounds;\r\n/**\r\n * Tests if X is within radius from the [intervalStart, intervalEnd] interval,\r\n * intervalStart, intervalEnd values might not be sorted\r\n * @param x\r\n * @param intervalStart\r\n * @param intervalEnd\r\n * @param radius\r\n */\r\nvar testIsInInterval = function (x, intervalStart, intervalEnd, radius) {\r\n if (radius === void 0) { radius = 0; }\r\n if (intervalStart <= intervalEnd) {\r\n return intervalStart - radius <= x && x <= intervalEnd + radius;\r\n }\r\n else {\r\n return intervalEnd - radius <= x && x <= intervalStart + radius;\r\n }\r\n};\r\nexports.testIsInInterval = testIsInInterval;\r\nvar calcDotProduct = function (v1x, v1y, v2x, v2y, v3x, v3y) {\r\n return (v2x - v1x) * (v3x - v2x) + (v2y - v1y) * (v3y - v2y);\r\n};\r\nexports.calcDotProduct = calcDotProduct;\r\nvar calcDistanceFromLineSegment = function (x, y, startX, startY, endX, endY) {\r\n if ((0, exports.calcDotProduct)(startX, startY, endX, endY, x, y) > 0) {\r\n return (0, exports.calcDistance)(endX, endY, x, y);\r\n }\r\n if ((0, exports.calcDotProduct)(endX, endY, startX, startY, x, y) > 0) {\r\n return (0, exports.calcDistance)(startX, startY, x, y);\r\n }\r\n return (0, exports.calcDistanceFromLine)(x, y, startX, startY, endX, endY);\r\n};\r\nexports.calcDistanceFromLineSegment = calcDistanceFromLineSegment;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getRandomInRange = void 0;\r\n/**\r\n * Return random number in range [min, max]\r\n * @param min\r\n * @param max\r\n * @param decimalPlaces\r\n */\r\nvar getRandomInRange = function (min, max, decimalPlaces) {\r\n var rand = Math.random();\r\n var resultInRange = min + rand * (max - min);\r\n return parseInt((resultInRange * Math.pow(10, decimalPlaces)).toFixed(decimalPlaces), 10) / Math.pow(10, decimalPlaces);\r\n};\r\nexports.getRandomInRange = getRandomInRange;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getNextRandomPriceBarFactory = exports.getStocksDataFactory = void 0;\r\nvar random_1 = require(\"./random\");\r\n/**\r\n * Creates function to generate stock data\r\n * @param STEP\r\n * @param RANDOM_MIN\r\n * @param RANDOM_MAX\r\n */\r\nvar getStocksDataFactory = function (STEP, RANDOM_MIN, RANDOM_MAX) { return function (unixTimestamp, close) {\r\n var DEVIATION = 0.7;\r\n var newTimeStamp = unixTimestamp + STEP;\r\n var newOpenValue = close;\r\n var newCloseValue = (0, random_1.getRandomInRange)(RANDOM_MIN, RANDOM_MAX, 3);\r\n var delta = Math.abs(newOpenValue - newCloseValue);\r\n var maxValue = Math.max(newOpenValue, newCloseValue);\r\n var newHighValue = (0, random_1.getRandomInRange)(maxValue, Math.min(RANDOM_MAX, maxValue + delta * DEVIATION), 3);\r\n var minValue = Math.min(newOpenValue, newCloseValue);\r\n var newLowValue = (0, random_1.getRandomInRange)(Math.max(RANDOM_MIN, minValue - delta * DEVIATION), minValue, 3);\r\n return {\r\n xValue: newTimeStamp,\r\n openValue: newOpenValue,\r\n highValue: newHighValue,\r\n lowValue: newLowValue,\r\n closeValue: newCloseValue\r\n };\r\n}; };\r\nexports.getStocksDataFactory = getStocksDataFactory;\r\nvar PriceBar = /** @class */ (function () {\r\n function PriceBar(xValue, openValue, highValue, lowValue, closeValue, volume) {\r\n this.xValue = xValue;\r\n this.openValue = openValue;\r\n this.highValue = highValue;\r\n this.lowValue = lowValue;\r\n this.closeValue = closeValue;\r\n this.volume = volume;\r\n }\r\n return PriceBar;\r\n}());\r\nvar getNextRandomPriceBarFactory = function (startDateTimestamp, candleIntervalMinutes, simulateDateGap, startPrice) {\r\n var currentTimestamp = startDateTimestamp;\r\n var lastPriceBar = new PriceBar(startDateTimestamp, startPrice, startPrice, startPrice, startPrice, 0);\r\n return function (requestUpdate) {\r\n if (requestUpdate === void 0) { requestUpdate = false; }\r\n var getNextData = function () {\r\n var open = lastPriceBar.closeValue;\r\n var num = ((Math.random() - 0.9) * startPrice) / 30;\r\n var num2 = Math.random();\r\n var num3 = 0.5 * startPrice +\r\n (startPrice / 2) * Math.sin(7.27220521664304e-6 * currentTimestamp) +\r\n (startPrice / 16.0) * Math.cos(7.27220521664304e-5 * currentTimestamp) +\r\n (startPrice / 32.0) * Math.sin(7.27220521664304e-5 * (10.0 + num2) * currentTimestamp) +\r\n (startPrice / 64.0) * Math.cos(7.27220521664304e-5 * (20.0 + num2) * currentTimestamp) +\r\n num;\r\n var num4 = Math.max(open, num3);\r\n var num5 = (Math.random() * startPrice) / 100;\r\n var high = num4 + num5;\r\n var num6 = Math.min(open, num3);\r\n var num7 = (Math.random() * startPrice) / 100;\r\n var low = num6 - num7;\r\n var volume = Math.random() * 30000 + 20000;\r\n var openTime = simulateDateGap ? emulateDateGap(lastPriceBar.xValue) : lastPriceBar.xValue;\r\n var closeTime = openTime + candleIntervalMinutes * 60;\r\n lastPriceBar = new PriceBar(closeTime, open, high, low, num3, volume);\r\n currentTimestamp += candleIntervalMinutes * 60;\r\n return lastPriceBar;\r\n };\r\n var getUpdatedData = function () {\r\n var num = lastPriceBar.closeValue + (Math.random() - 0.48) * (lastPriceBar.closeValue / 100.0);\r\n var high = num > lastPriceBar.highValue ? num : lastPriceBar.highValue;\r\n var low = num < lastPriceBar.lowValue ? num : lastPriceBar.lowValue;\r\n var volumeInc = (Math.random() * 30000 + 20000) * 0.05;\r\n lastPriceBar = new PriceBar(lastPriceBar.xValue, lastPriceBar.openValue, high, low, num, lastPriceBar.volume + volumeInc);\r\n return lastPriceBar;\r\n };\r\n if (requestUpdate) {\r\n return getUpdatedData();\r\n }\r\n else {\r\n return getNextData();\r\n }\r\n };\r\n};\r\nexports.getNextRandomPriceBarFactory = getNextRandomPriceBarFactory;\r\n/** @ignore */\r\nvar emulateDateGap = function (lastPriceBarTimestamp) {\r\n return lastPriceBarTimestamp;\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getAttributeFromString = void 0;\r\nvar getAttributeFromString = function (str, attributeName) {\r\n var index = str.indexOf(attributeName);\r\n if (index >= 0) {\r\n var strStart = str.indexOf('\"', index);\r\n var strEnd = strStart >= 0 ? str.indexOf('\"', strStart + 1) : -1;\r\n if (strEnd >= 0) {\r\n var attributeStr = str.substr(strStart + 1, strEnd - strStart - 1);\r\n var attributeNum = parseInt(attributeStr, 10);\r\n if (!isNaN(attributeNum)) {\r\n return attributeNum;\r\n }\r\n }\r\n }\r\n return undefined;\r\n};\r\nexports.getAttributeFromString = getAttributeFromString;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getNativeTextSize = exports.wrapNativeText = void 0;\r\nvar NativeObject_1 = require(\"../Charting/Visuals/Helpers/NativeObject\");\r\n/**\r\n * Wrap a string by adding newline characters, splitting on spaces and wrapping to a maximum size\r\n */\r\nvar wrapNativeText = function (text, maxWidth, font, textBounds) {\r\n if (maxWidth === 0)\r\n return text;\r\n if (!text) {\r\n return \"\";\r\n }\r\n var lines = [];\r\n var words = text.split(\" \");\r\n // calculate size of each word\r\n var first = words[0].trim();\r\n var allWords = first + \" \" + first + \"\\n\" + words.map(function (w) { return w.trim(); }).join(\"\\n\");\r\n font.CalculateStringBounds(allWords !== null && allWords !== void 0 ? allWords : \"\", textBounds, 2);\r\n var line = \"\";\r\n var lineWidth = 0;\r\n var spaceWidth = textBounds.GetLineBounds(0).m_fWidth - 2 * textBounds.GetLineBounds(1).m_fWidth;\r\n for (var i = 0; i < words.length; i++) {\r\n var word = words[i];\r\n var wordWidth = textBounds.GetLineBounds(i + 1).m_fWidth;\r\n var newLine = line + (line !== \"\" ? \" \" : \"\") + word;\r\n lineWidth += (line !== \"\" ? spaceWidth : 0) + wordWidth;\r\n if (lineWidth > maxWidth) {\r\n if (line === \"\") {\r\n lines.push(word);\r\n lineWidth = 0;\r\n }\r\n else {\r\n lines.push(line);\r\n line = word;\r\n lineWidth = wordWidth;\r\n }\r\n }\r\n else {\r\n line = newLine;\r\n }\r\n if (line.endsWith(\"\\n\")) {\r\n lineWidth = 0;\r\n }\r\n }\r\n lines.push(line);\r\n return lines.join(\"\\n\");\r\n};\r\nexports.wrapNativeText = wrapNativeText;\r\nvar getNativeTextSize = function (text, nativeFont, textStyle, webAssemblyContext, rotation) {\r\n if (rotation === void 0) { rotation = 0; }\r\n var textBounds = (0, NativeObject_1.getTextBounds)(webAssemblyContext);\r\n nativeFont.CalculateStringBounds(text, textBounds, 0);\r\n var maxLineHeight = 0;\r\n for (var i = 0; i < textBounds.GetLinesCount(); i++) {\r\n var lineBounds = textBounds.GetLineBounds(i);\r\n var lineHeight = lineBounds.m_fHeight - lineBounds.m_fOffsetY;\r\n if (maxLineHeight < lineHeight) {\r\n maxLineHeight = lineHeight;\r\n }\r\n }\r\n var nativeLineSpacing = Math.round(maxLineHeight * (textStyle.lineSpacing - 1));\r\n var textHeight = Math.round(textBounds.m_fHeight +\r\n (textBounds.GetLinesCount() - 1) * nativeLineSpacing +\r\n textStyle.padding.top +\r\n textStyle.padding.bottom);\r\n var textWidth = Math.round(textBounds.m_fWidth + textStyle.padding.left + textStyle.padding.right);\r\n var firstLineAscent = textBounds.GetLineBounds(0).m_fHeight;\r\n var rotationRad = ((rotation % 360) * Math.PI) / 180;\r\n var sin = Math.sin(rotationRad);\r\n var cos = Math.cos(rotationRad);\r\n // if (rotation % 180 === 0) {\r\n // sin = 0;\r\n // cos = 1;\r\n // } else if (rotation % 90 === 0) {\r\n // sin = 1;\r\n // cos = 0;\r\n // }\r\n var newTextureWidth = Math.round(textWidth * Math.abs(cos) + textHeight * Math.abs(sin));\r\n var newTextureHeight = Math.round(textWidth * Math.abs(sin) + textHeight * Math.abs(cos));\r\n var deltaX = 0;\r\n var deltaY = 0;\r\n if (rotation >= 0 && rotation < 90) {\r\n deltaX = (textHeight - textStyle.padding.top - firstLineAscent) * sin + textStyle.padding.left * cos;\r\n deltaY = textStyle.padding.left * sin + (textStyle.padding.top + firstLineAscent) * cos;\r\n }\r\n else if (rotation >= 90 && rotation <= 180) {\r\n deltaX = newTextureWidth - (textStyle.padding.top + firstLineAscent) * sin + textStyle.padding.left * cos;\r\n deltaY = -(textHeight - textStyle.padding.top - firstLineAscent) * cos + textStyle.padding.left * sin;\r\n }\r\n else if (rotation > 180 && rotation <= 270) {\r\n deltaX =\r\n newTextureWidth -\r\n (textStyle.padding.top + firstLineAscent - textHeight) * sin +\r\n textStyle.padding.left * cos;\r\n deltaY = newTextureHeight + (textStyle.padding.top + firstLineAscent) * cos + textStyle.padding.left * sin;\r\n }\r\n else if (rotation > 270 && rotation < 360) {\r\n deltaX = -(textStyle.padding.top + firstLineAscent) * sin + textStyle.padding.left * cos;\r\n deltaY =\r\n newTextureHeight -\r\n (textHeight - firstLineAscent - textStyle.padding.top) * cos +\r\n textStyle.padding.left * sin;\r\n }\r\n return {\r\n textHeight: newTextureHeight,\r\n textWidth: newTextureWidth,\r\n nativeLineSpacing: nativeLineSpacing,\r\n deltaX: deltaX,\r\n deltaY: deltaY\r\n };\r\n};\r\nexports.getNativeTextSize = getNativeTextSize;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getTooltipPositionProperties = exports.getUpdatedPoints = exports.getEndPoint = exports.getStartPoint = exports.getTotalSpacing = exports.getTotalSize = exports.checkHasOverlap = exports.spreadTooltips = exports.EShift = exports.ECoord = exports.ESize = void 0;\r\nvar ESize;\r\n(function (ESize) {\r\n ESize[\"width\"] = \"width\";\r\n ESize[\"height\"] = \"height\";\r\n})(ESize = exports.ESize || (exports.ESize = {}));\r\nvar ECoord;\r\n(function (ECoord) {\r\n ECoord[\"xCoord\"] = \"xCoord\";\r\n ECoord[\"yCoord\"] = \"yCoord\";\r\n})(ECoord = exports.ECoord || (exports.ECoord = {}));\r\nvar EShift;\r\n(function (EShift) {\r\n EShift[\"xCoordShift\"] = \"xCoordShift\";\r\n EShift[\"yCoordShift\"] = \"yCoordShift\";\r\n})(EShift = exports.EShift || (exports.EShift = {}));\r\n/** @ignore */\r\nvar spreadTooltips = function (tooltipArray, pixelRatio, positionProperties, spacing, seriesViewRect) {\r\n var shiftMap = new Map();\r\n var length = tooltipArray.length;\r\n var totalSize = (0, exports.getTotalSize)(tooltipArray, positionProperties.sizePropertyName);\r\n var totalSpacing = (0, exports.getTotalSpacing)(tooltipArray, spacing);\r\n var totalBoxModel = totalSize + totalSpacing;\r\n var firstTooltip = tooltipArray[0];\r\n var lastTooltip = tooltipArray[length - 1];\r\n var startPoint = (0, exports.getStartPoint)(firstTooltip[positionProperties.coordPropertyName], firstTooltip[positionProperties.shiftPropertyName], pixelRatio);\r\n var endPoint = (0, exports.getEndPoint)(lastTooltip[positionProperties.coordPropertyName], lastTooltip[positionProperties.shiftPropertyName], pixelRatio, lastTooltip[positionProperties.sizePropertyName]);\r\n var updatedPoints = (0, exports.getUpdatedPoints)(startPoint, endPoint, totalBoxModel, seriesViewRect[positionProperties.sizePropertyName]);\r\n startPoint = updatedPoints.start;\r\n endPoint = updatedPoints.end;\r\n var currentPadding = (endPoint - startPoint - totalSize) / (tooltipArray.length - 1);\r\n tooltipArray.reduce(function (tooltipTopCoord, tooltip) {\r\n shiftMap.set(tooltip.index, (tooltipTopCoord - tooltip[positionProperties.coordPropertyName]) / pixelRatio);\r\n return tooltipTopCoord + tooltip[positionProperties.sizePropertyName] + currentPadding;\r\n }, startPoint);\r\n return shiftMap;\r\n};\r\nexports.spreadTooltips = spreadTooltips;\r\n/** @ignore */\r\nvar checkHasOverlap = function (tooltipArray, spacing, pixelRatio, positionProperties) {\r\n var length = tooltipArray.length;\r\n for (var i = 0; i < length - 1; i++) {\r\n var currentTooltip = tooltipArray[i];\r\n var currentTooltipEndPoint = currentTooltip[positionProperties.coordPropertyName] +\r\n currentTooltip[positionProperties.sizePropertyName] +\r\n currentTooltip[positionProperties.shiftPropertyName] * pixelRatio;\r\n var nextTooltip = tooltipArray[i + 1];\r\n var nextTooltipStartPoint = nextTooltip[positionProperties.coordPropertyName] +\r\n nextTooltip[positionProperties.shiftPropertyName] * pixelRatio;\r\n var diff = nextTooltipStartPoint - currentTooltipEndPoint;\r\n if (diff < spacing)\r\n return true;\r\n }\r\n return false;\r\n};\r\nexports.checkHasOverlap = checkHasOverlap;\r\n/** @ignore */\r\nvar getTotalSize = function (tooltipArray, sizePropertyName) {\r\n return tooltipArray.reduce(function (acc, tooltip) {\r\n var size = tooltip[sizePropertyName];\r\n return typeof size === \"number\" ? acc + size : acc;\r\n }, 0);\r\n};\r\nexports.getTotalSize = getTotalSize;\r\n/** @ignore */\r\nvar getTotalSpacing = function (tooltipArray, spacing) {\r\n return (tooltipArray.length - 1) * spacing;\r\n};\r\nexports.getTotalSpacing = getTotalSpacing;\r\n/** @ignore */\r\nvar getStartPoint = function (coord, shift, pixelRatio) { return coord + shift * pixelRatio; };\r\nexports.getStartPoint = getStartPoint;\r\n/** @ignore */\r\nvar getEndPoint = function (coord, shift, pixelRatio, size) {\r\n return coord + shift * pixelRatio + size;\r\n};\r\nexports.getEndPoint = getEndPoint;\r\n/** @ignore */\r\nvar getUpdatedPoints = function (startPoint, endPoint, totalBoxModel, size) {\r\n var additionalWidth = totalBoxModel - (endPoint - startPoint);\r\n var additionalWidthHalf = additionalWidth / 2;\r\n var availableWidthFromStart = startPoint;\r\n var availableWidthFromEnd = size - endPoint;\r\n var start = startPoint - additionalWidthHalf;\r\n var end = endPoint + additionalWidthHalf;\r\n if (availableWidthFromStart < additionalWidthHalf) {\r\n start = 0;\r\n end = endPoint + (additionalWidth - availableWidthFromStart);\r\n }\r\n if (availableWidthFromEnd < additionalWidthHalf) {\r\n start = startPoint - (additionalWidth - availableWidthFromEnd);\r\n end = size;\r\n }\r\n return {\r\n start: start,\r\n end: end\r\n };\r\n};\r\nexports.getUpdatedPoints = getUpdatedPoints;\r\n/** @ignore */\r\nvar getTooltipPositionProperties = function (isVerticalChart) {\r\n if (isVerticalChart) {\r\n return {\r\n sizePropertyName: ESize.width,\r\n coordPropertyName: ECoord.xCoord,\r\n shiftPropertyName: EShift.xCoordShift\r\n };\r\n }\r\n else {\r\n return {\r\n sizePropertyName: ESize.height,\r\n coordPropertyName: ECoord.yCoord,\r\n shiftPropertyName: EShift.yCoordShift\r\n };\r\n }\r\n};\r\nexports.getTooltipPositionProperties = getTooltipPositionProperties;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.fitSvgToViewRect = exports.fitElementToViewRect = exports.convertToRelativeHtmlSize = exports.convertToHtmlPx = exports.translateDataValueRectToAbsolute = exports.translateToNotScaled = exports.translateFromSeriesViewRectToCanvasY = exports.translateFromSeriesViewRectToCanvasX = exports.translateFromCanvasToSeriesViewRectY = exports.translateFromCanvasToSeriesViewRectX = exports.translateFromSeriesViewRectToCanvas = exports.translateFromCanvasToSeriesViewRect = void 0;\r\nvar DpiHelper_1 = require(\"../Charting/Visuals/TextureManager/DpiHelper\");\r\nvar Point_1 = require(\"../Core/Point\");\r\nvar Rect_1 = require(\"../Core/Rect\");\r\n/**\r\n * Translates from canvas to seriesViewRect screen coordinates\r\n * @param point\r\n * @param seriesViewRect\r\n * @param allowValuesOutOfBounds will translate even if the point is outside of the seriesViewRect\r\n */\r\nvar translateFromCanvasToSeriesViewRect = function (point, seriesViewRect, allowValuesOutOfBounds) {\r\n if (allowValuesOutOfBounds === void 0) { allowValuesOutOfBounds = false; }\r\n if (!seriesViewRect) {\r\n return undefined;\r\n }\r\n var newX = point.x - seriesViewRect.x;\r\n var newY = point.y - seriesViewRect.y;\r\n if (!allowValuesOutOfBounds) {\r\n if (newX < 0 || newX > seriesViewRect.width || newY < 0 || newY > seriesViewRect.height) {\r\n return undefined;\r\n }\r\n }\r\n return new Point_1.Point(newX, newY);\r\n};\r\nexports.translateFromCanvasToSeriesViewRect = translateFromCanvasToSeriesViewRect;\r\n/**\r\n * Translates from seriesViewRect to canvas screen coordinates\r\n * @param point\r\n * @param seriesViewRect\r\n * @param allowValuesOutOfBounds will translate even if the point is outside of the seriesViewRect\r\n */\r\nvar translateFromSeriesViewRectToCanvas = function (point, seriesViewRect, allowValuesOutOfBounds) {\r\n if (allowValuesOutOfBounds === void 0) { allowValuesOutOfBounds = false; }\r\n if (!seriesViewRect) {\r\n return undefined;\r\n }\r\n var newX = point.x + seriesViewRect.x;\r\n var newY = point.y + seriesViewRect.y;\r\n if (!allowValuesOutOfBounds) {\r\n if (newX < 0 || newX > seriesViewRect.width || newY < 0 || newY > seriesViewRect.height) {\r\n return undefined;\r\n }\r\n }\r\n return new Point_1.Point(newX, newY);\r\n};\r\nexports.translateFromSeriesViewRectToCanvas = translateFromSeriesViewRectToCanvas;\r\nvar translateFromCanvasToSeriesViewRectX = function (x, seriesViewRect, allowValuesOutOfBounds) {\r\n if (allowValuesOutOfBounds === void 0) { allowValuesOutOfBounds = false; }\r\n if (!seriesViewRect) {\r\n return undefined;\r\n }\r\n var newX = x - seriesViewRect.x;\r\n if (!allowValuesOutOfBounds) {\r\n if (newX < 0 || newX > seriesViewRect.width) {\r\n return undefined;\r\n }\r\n }\r\n return newX;\r\n};\r\nexports.translateFromCanvasToSeriesViewRectX = translateFromCanvasToSeriesViewRectX;\r\nvar translateFromCanvasToSeriesViewRectY = function (y, seriesViewRect, allowValuesOutOfBounds) {\r\n if (allowValuesOutOfBounds === void 0) { allowValuesOutOfBounds = false; }\r\n if (!seriesViewRect) {\r\n return undefined;\r\n }\r\n var newY = y - seriesViewRect.y;\r\n if (!allowValuesOutOfBounds) {\r\n if (newY < 0 || newY > seriesViewRect.height) {\r\n return undefined;\r\n }\r\n }\r\n return newY;\r\n};\r\nexports.translateFromCanvasToSeriesViewRectY = translateFromCanvasToSeriesViewRectY;\r\nvar translateFromSeriesViewRectToCanvasX = function (x, seriesViewRect, allowValuesOutOfBounds) {\r\n if (allowValuesOutOfBounds === void 0) { allowValuesOutOfBounds = false; }\r\n if (!seriesViewRect) {\r\n return undefined;\r\n }\r\n var newX = x + seriesViewRect.x;\r\n if (!allowValuesOutOfBounds) {\r\n if (newX < 0 || newX > seriesViewRect.width) {\r\n return undefined;\r\n }\r\n }\r\n return newX;\r\n};\r\nexports.translateFromSeriesViewRectToCanvasX = translateFromSeriesViewRectToCanvasX;\r\nvar translateFromSeriesViewRectToCanvasY = function (y, seriesViewRect, allowValuesOutOfBounds) {\r\n if (allowValuesOutOfBounds === void 0) { allowValuesOutOfBounds = false; }\r\n if (!seriesViewRect) {\r\n return undefined;\r\n }\r\n var newY = y + seriesViewRect.y;\r\n if (!allowValuesOutOfBounds) {\r\n if (newY < 0 || newY > seriesViewRect.height) {\r\n return undefined;\r\n }\r\n }\r\n return newY;\r\n};\r\nexports.translateFromSeriesViewRectToCanvasY = translateFromSeriesViewRectToCanvasY;\r\nvar translateToNotScaled = function (value) { return value / DpiHelper_1.DpiHelper.PIXEL_RATIO; };\r\nexports.translateToNotScaled = translateToNotScaled;\r\nvar translateDataValueRectToAbsolute = function (originalRect, xAxis, yAxis, seriesViewRect) {\r\n var x = originalRect.x, y = originalRect.y, width = originalRect.width, height = originalRect.height;\r\n var parentLeft = (0, exports.translateToNotScaled)(seriesViewRect.left);\r\n var parentTop = (0, exports.translateToNotScaled)(seriesViewRect.top);\r\n var xCoordCalc = xAxis.getCurrentCoordinateCalculator();\r\n var yCoordCalc = yAxis.getCurrentCoordinateCalculator();\r\n var left = xAxis.isVerticalChart ? yCoordCalc.getCoordinate(x) : xCoordCalc.getCoordinate(x);\r\n var top = xAxis.isVerticalChart ? xCoordCalc.getCoordinate(y) : yCoordCalc.getCoordinate(y);\r\n left = Math.max((0, exports.translateToNotScaled)(left), 0);\r\n top = Math.max((0, exports.translateToNotScaled)(top), 0);\r\n var x2 = xAxis.flippedCoordinates ? x - width : x + width;\r\n var y2 = yAxis.flippedCoordinates ? y + height : y - height;\r\n var bottom = (0, exports.translateToNotScaled)(xAxis.isVerticalChart ? xCoordCalc.getCoordinate(y2) : yCoordCalc.getCoordinate(y2));\r\n var right = (0, exports.translateToNotScaled)(xAxis.isVerticalChart ? yCoordCalc.getCoordinate(x2) : xCoordCalc.getCoordinate(x2));\r\n left += parentLeft;\r\n top += parentTop;\r\n right += parentLeft;\r\n bottom += parentTop;\r\n return new Rect_1.Rect(left, top, Math.abs(right - left), Math.abs(top - bottom));\r\n};\r\nexports.translateDataValueRectToAbsolute = translateDataValueRectToAbsolute;\r\nvar convertToHtmlPx = function (value) { return \"\".concat(value, \"px\"); };\r\nexports.convertToHtmlPx = convertToHtmlPx;\r\nvar convertToRelativeHtmlSize = function (value) { return \"\".concat(value * 100, \"%\"); };\r\nexports.convertToRelativeHtmlSize = convertToRelativeHtmlSize;\r\nvar fitElementToViewRect = function (element, viewRect) {\r\n element.style.marginLeft = \"\".concat(viewRect.x, \"px\");\r\n element.style.marginTop = \"\".concat(viewRect.y, \"px\");\r\n // Set width, height\r\n element.setAttribute(\"width\", viewRect.width.toString());\r\n element.setAttribute(\"height\", viewRect.height.toString());\r\n // Set display width, height\r\n element.style.width = viewRect.width + \"px\";\r\n element.style.height = viewRect.height + \"px\";\r\n};\r\nexports.fitElementToViewRect = fitElementToViewRect;\r\nvar fitSvgToViewRect = function (svgElement, viewRect) {\r\n (0, exports.fitElementToViewRect)(svgElement, viewRect);\r\n // Set scaling so annotations, tooltips etc are in right position after DPI Scaling\r\n svgElement.currentScale = 1;\r\n};\r\nexports.fitSvgToViewRect = fitSvgToViewRect;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.fromTsrVector4 = exports.updateTsrVector4 = void 0;\r\nvar Guard_1 = require(\"../Core/Guard\");\r\n/**\r\n * Converts a color in TArgb format to TSRVector4 (RGBA -> x,y,z,w) for use in 3D Engine\r\n * @param color\r\n * @param tsrColor\r\n */\r\nvar updateTsrVector4 = function (color, tsrColor) {\r\n Guard_1.Guard.notNull(color, \"color\");\r\n var f = 1 / 255;\r\n // console.log(` colorInt: R=${color.red}, G=${color.green}, B=${color.blue}, A=${color.opacity}`);\r\n tsrColor.x = color.red * f;\r\n tsrColor.y = color.green * f;\r\n tsrColor.z = color.blue * f;\r\n tsrColor.w = color.opacity * f;\r\n // console.log(` tsrColor: ${tsrColor.x} ${tsrColor.y} ${tsrColor.z} ${tsrColor.w}`);\r\n};\r\nexports.updateTsrVector4 = updateTsrVector4;\r\nvar fromTsrVector4 = function (tsrColor) {\r\n Guard_1.Guard.notNull(tsrColor, \"tsrColor\");\r\n return {\r\n red: Math.round(tsrColor.x * 255),\r\n green: Math.round(tsrColor.y * 255),\r\n blue: Math.round(tsrColor.z * 255),\r\n opacity: Math.round(tsrColor.w * 255)\r\n };\r\n};\r\nexports.fromTsrVector4 = fromTsrVector4;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.zeroArray2D = void 0;\r\n/**\r\n * @description creates a 2-dimensional array filled with zeros\r\n * @param dimension, an array containing the 2D dimensions [height, width] defined as a 2D array,\r\n * e.g. [3,2] creates an array 3 elements each with 2 elements, or [ [0, 0] , [0, 0], [0, 0] ]\r\n */\r\nvar zeroArray2D = function (dimensions) {\r\n if (!dimensions) {\r\n return undefined;\r\n }\r\n var array = [];\r\n for (var i = 0; i < dimensions[0]; ++i) {\r\n array.push(dimensions.length === 1 ? 0 : (0, exports.zeroArray2D)(dimensions.slice(1)));\r\n }\r\n return array;\r\n};\r\nexports.zeroArray2D = zeroArray2D;\r\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/*\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n\nvar _ = require('./es6_');\n\n/**\n * Performs an deep extend on the objects, from right to left.\n * @private\n * @param {Object[]} objects - An array of JS objects\n * @param {Function} collision - A function to be called when a merge collision happens.\n * @param {string[]} path - (for internal use) An array of strings which is the current path down the object when this is called recursively.\n * @returns {Object}\n */\nfunction deepExtend(objects, collision, path) {\n if (objects == null)\n return {};\n\n var src, copyIsArray, copy, name, options, clone,\n target = objects[0] || {},\n i = 1,\n length = objects.length;\n\n path = path || [];\n\n // Handle case when target is a string or something (possible in deep copy)\n if ( typeof target !== 'object' ) {\n target = {};\n }\n\n for ( ; i < length; i++) {\n // Only deal with non-null/undefined values\n if ( (options = objects[ i ]) != null ) {\n // Extend the base object\n for (name in options) {\n if (!options.hasOwnProperty(name))\n continue;\n if (name === '__proto__')\n continue;\n\n src = target[name];\n copy = options[name];\n\n // Prevent never-ending loop\n if (target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if ( copy && ( _.isPlainObject(copy) || (copyIsArray = _.isArray(copy)) ) ) {\n if ( copyIsArray ) {\n copyIsArray = false;\n clone = src && _.isArray(src) ? src : [];\n } else {\n clone = src && _.isPlainObject(src) ? src : {};\n }\n\n var nextPath = path.slice(0);\n nextPath.push(name);\n\n // Never move original objects, clone them\n target[ name ] = deepExtend( [clone, copy], collision, nextPath );\n\n // Don't bring in undefined values\n } else if ( copy !== undefined ) {\n if (src != null && typeof collision == 'function') {\n collision({target: target, copy: options, path: path, key: name});\n }\n target[ name ] = copy;\n }\n }\n }\n }\n\n return target;\n}\n\nmodule.exports = deepExtend;\n","/*\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n\nconst ChangeCase = require('change-case')\n\nconst reduce = function(obj, f, accumulator_init) {\n return Object.keys(obj || {}).reduce((accumulator, key) => {\n let value = obj[key]\n return f(accumulator, value, key, obj)\n }, accumulator_init)\n}\n\nconst forEach = function(obj, f) {\n Object.keys(obj || {}).forEach((key) => {\n let value = obj[key]\n f(value, key)\n });\n}\n\n// Note: This is a crappy version to a certain extent... don't use with Strings, for example...\nconst clone = function(object) {\n return Object.assign(new object.constructor(), object)\n}\n\nconst cloneDeep = function(obj) {\n if(obj === null || obj === undefined || typeof obj !== 'object') {\n return obj\n }\n\n if(obj instanceof Array) {\n return obj.reduce((arr, item, i) => {\n arr[i] = cloneDeep(item)\n return arr\n }, [])\n }\n\n if(obj instanceof Object) {\n return Object.keys(obj || {}).reduce((cpObj, key) => {\n cpObj[key] = cloneDeep(obj[key])\n return cpObj\n }, {})\n }\n}\n\nconst isObject = function(value) {\n const type = typeof value\n return value != null && (type === 'object' || type === 'function')\n}\n\nconst isString = function(obj) {\n return typeof obj === 'string' || obj instanceof String\n}\n\nconst isArray = function(obj) {\n return Array.isArray(obj)\n}\n\nconst isEmpty = function(obj) {\n return [Object, Array].includes((obj || {}).constructor) && !Object.entries((obj || {})).length\n}\n\nfunction isPlainObject(value) {\n if (typeof value !== 'object' || value === null || Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n if (Object.getPrototypeOf(value) === null) {\n return true\n }\n let proto = value\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto)\n }\n return Object.getPrototypeOf(value) === proto\n}\n\nconst filter = function (arr, filter) {\n if (typeof(filter) !== 'function') {\n throw(\"filter is not a function\")\n }\n if (typeof arr === 'undefined') {\n return []\n }\n return arr.filter(filter)\n}\n\nconst assign = function () {\n let args = Array.prototype.slice.call(arguments)\n args.unshift({})\n return Object.assign(...args)\n}\n\n/* global Set */\nconst pull = function (arr, ...removeList){\n var removeSet = new Set(removeList)\n for (let i=arr.length-1;i>=0;i--) {\n if (removeSet.has(arr[i])) {\n arr.splice(i, 1)\n }\n }\n}\n\nconst unique = function (arr){\n return [...new Set(arr)]\n}\n\nconst upperFirst = function (str) {\n return str ? str[0].toUpperCase() + str.substr(1) : ''\n}\n\nconst matchFn = function(inputObj, testObj) {\n if (isObject(testObj)) {\n return Object.keys(testObj).every((key) => matchFn(inputObj[key], testObj[key]))\n }\n else {\n return inputObj == testObj\n }\n}\n\nconst matches = function (matchObj) {\n let cloneObj = cloneDeep(matchObj)\n let matchesFn = (inputObj) => matchFn(inputObj, cloneObj)\n return matchesFn\n}\n\nconst DEFAULT_OPTIONS = {\n transform: ChangeCase.camelCaseTransformMerge\n}\nconst changeDefaultCaseTransform = function (caseFunction, default_options) {\n return (caseToChange, options) => caseFunction(caseToChange, Object.assign({}, DEFAULT_OPTIONS, default_options, options))\n}\n\nmodule.exports = {\n each: forEach,\n forEach: forEach,\n forIn: forEach,\n keys: Object.keys,\n clone: clone,\n cloneDeep: cloneDeep,\n extend: Object.assign,\n isString: isString,\n isArray: isArray,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isEmpty: isEmpty,\n filter: filter,\n reduce: reduce,\n assign: assign,\n upperFirst: upperFirst,\n camelCase: changeDefaultCaseTransform(ChangeCase.camelCase),\n snakeCase: ChangeCase.snakeCase,\n kebabCase: ChangeCase.paramCase,\n pull: pull,\n matches: matches,\n unique: unique,\n}\n","/*\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n\nvar _ = require('./es6_');\n\n/**\n * Takes an plain javascript object and will make a flat array of all the leaf nodes.\n * A leaf node in this context has a 'value' property. Potentially refactor this to\n * be more generic.\n * @private\n * @param {Object} properties - The plain object you want flattened into an array.\n * @param {Array} [to_ret=[]] - Properties array. This function is recursive therefore this is what gets passed along.\n * @return {Array}\n */\nfunction flattenProperties(properties, to_ret) {\n to_ret = to_ret || [];\n\n for(var name in properties) {\n if (properties.hasOwnProperty(name)) {\n // TODO: this is a bit fragile and arbitrary to stop when we get to a 'value' property.\n if (_.isPlainObject(properties[name]) && ('value' in properties[name])) {\n to_ret.push( properties[name] );\n } else if (_.isPlainObject(properties[name])) {\n flattenProperties(properties[name], to_ret);\n }\n }\n }\n\n return to_ret;\n}\n\n\nmodule.exports = flattenProperties;\n","/*\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n\nconst defaults = require('./defaults');\n\nfunction createReferenceRegex(opts = {}) {\n const options = Object.assign({}, defaults, opts);\n\n return new RegExp(\n '\\\\' +\n options.opening_character +\n '([^' +\n options.closing_character +\n ']+)' +\n '\\\\' +\n options.closing_character, 'g'\n );\n}\n\nmodule.exports = createReferenceRegex;\n","/*\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n\nconst defaults = {\n opening_character: '{',\n closing_character: '}',\n separator: '.'\n};\n\nmodule.exports = defaults;\n","/*\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n\nconst createRegex = require('./createReferenceRegex');\n\n/**\n * Checks if the value uses a value reference.\n * @memberof Dictionary\n * @param {string} value\n * @param {Object|RegExp} regexOrOptions\n * @returns {boolean} - True, if the value uses a value reference\n */\nfunction usesReference(value, regexOrOptions = {}) {\n const regex = regexOrOptions instanceof RegExp ? regexOrOptions : createRegex(regexOrOptions);\n\n if (typeof value === 'string') {\n return regex.test(value);\n }\n\n if (typeof value === 'object') {\n let hasReference = false;\n // iterate over each property in the object,\n // if any element passes the regex test,\n // the whole thing should be true\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n const element = value[key];\n let reference = usesReference(element, regexOrOptions);\n if (reference) {\n hasReference = true;\n break;\n }\n }\n }\n return hasReference;\n }\n\n return false;\n}\n\nmodule.exports = usesReference;\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","// @flow\nimport type { Interpolation } from '../types';\n\nexport default (\n strings: Array,\n interpolations: Array\n): Array => {\n const result = [strings[0]];\n\n for (let i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n};\n","// @flow\nimport { typeOf } from 'react-is';\n\nexport default (x: any): boolean =>\n x !== null &&\n typeof x === 'object' &&\n (x.toString ? x.toString() : Object.prototype.toString.call(x)) === '[object Object]' &&\n !typeOf(x);\n","// @flow\nexport const EMPTY_ARRAY = Object.freeze([]);\nexport const EMPTY_OBJECT = Object.freeze({});\n","// @flow\nexport default function isFunction(test: any): boolean %checks {\n return typeof test === 'function';\n}\n","// @flow\nimport type { IStyledComponent } from '../types';\n\nexport default function getComponentName(\n target: $PropertyType\n): string {\n return (\n (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n // $FlowFixMe\n target.displayName ||\n // $FlowFixMe\n target.name ||\n 'Component'\n );\n}\n","// @flow\nexport default function isStyledComponent(target: any): boolean %checks {\n return target && typeof target.styledComponentId === 'string';\n}\n","// @flow\n\ndeclare var SC_DISABLE_SPEEDY: ?boolean;\ndeclare var __VERSION__: string;\n\nexport const SC_ATTR: string =\n (typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n 'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nexport const DISABLE_SPEEDY =\n Boolean(typeof SC_DISABLE_SPEEDY === 'boolean'\n ? SC_DISABLE_SPEEDY\n : (typeof process !== 'undefined' && typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' && process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false' ? false : process.env.REACT_APP_SC_DISABLE_SPEEDY\n : (typeof process !== 'undefined' && typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' && process.env.SC_DISABLE_SPEEDY !== ''\n ? process.env.SC_DISABLE_SPEEDY === 'false' ? false : process.env.SC_DISABLE_SPEEDY\n : process.env.NODE_ENV !== 'production'\n )\n ));\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n","// @flow\nimport errorMap from './errors';\n\nconst ERRORS = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args) {\n let a = args[0];\n const b = [];\n\n for (let c = 1, len = args.length; c < len; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(d => {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n code: string | number,\n ...interpolations: Array\n) {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n `An error occurred. See https://git.io/JUIaE#${code} for more information.${\n interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n }`\n );\n } else {\n throw new Error(format(ERRORS[code], ...interpolations).trim());\n }\n}\n","// @flow\n/* eslint-disable no-use-before-define */\n\nimport type { GroupedTag, Tag } from './types';\nimport { SPLITTER } from '../constants';\nimport throwStyledError from '../utils/error';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag): GroupedTag => {\n return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nclass DefaultGroupedTag implements GroupedTag {\n groupSizes: Uint32Array;\n\n length: number;\n\n tag: Tag;\n\n constructor(tag: Tag) {\n this.groupSizes = new Uint32Array(BASE_SIZE);\n this.length = BASE_SIZE;\n this.tag = tag;\n }\n\n indexOfGroup(group: number): number {\n let index = 0;\n for (let i = 0; i < group; i++) {\n index += this.groupSizes[i];\n }\n\n return index;\n }\n\n insertRules(group: number, rules: string[]): void {\n if (group >= this.groupSizes.length) {\n const oldBuffer = this.groupSizes;\n const oldSize = oldBuffer.length;\n\n let newSize = oldSize;\n while (group >= newSize) {\n newSize <<= 1;\n if (newSize < 0) {\n throwStyledError(16, `${group}`);\n }\n }\n\n this.groupSizes = new Uint32Array(newSize);\n this.groupSizes.set(oldBuffer);\n this.length = newSize;\n\n for (let i = oldSize; i < newSize; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n let ruleIndex = this.indexOfGroup(group + 1);\n for (let i = 0, l = rules.length; i < l; i++) {\n if (this.tag.insertRule(ruleIndex, rules[i])) {\n this.groupSizes[group]++;\n ruleIndex++;\n }\n }\n }\n\n clearGroup(group: number): void {\n if (group < this.length) {\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n this.groupSizes[group] = 0;\n\n for (let i = startIndex; i < endIndex; i++) {\n this.tag.deleteRule(startIndex);\n }\n }\n }\n\n getGroup(group: number): string {\n let css = '';\n if (group >= this.length || this.groupSizes[group] === 0) {\n return css;\n }\n\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n for (let i = startIndex; i < endIndex; i++) {\n css += `${this.tag.getRule(i)}${SPLITTER}`;\n }\n\n return css;\n }\n}\n","// @flow\n\nimport throwStyledError from '../utils/error';\n\nconst MAX_SMI = 1 << 31 - 1;\n\nlet groupIDRegister: Map = new Map();\nlet reverseRegister: Map = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n groupIDRegister = new Map();\n reverseRegister = new Map();\n nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n if (groupIDRegister.has(id)) {\n return (groupIDRegister.get(id): any);\n }\n\n while (reverseRegister.has(nextFreeGroup)) {\n nextFreeGroup++;\n }\n\n const group = nextFreeGroup++;\n\n if (\n process.env.NODE_ENV !== 'production' &&\n ((group | 0) < 0 || group > MAX_SMI)\n ) {\n throwStyledError(16, `${group}`);\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n if (group >= nextFreeGroup) {\n nextFreeGroup = group + 1;\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n};\n","// @flow\n\nimport { SPLITTER, SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport type { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n const tag = sheet.getTag();\n const { length } = tag;\n\n let css = '';\n for (let group = 0; group < length; group++) {\n const id = getIdForGroup(group);\n if (id === undefined) continue;\n\n const names = sheet.names.get(id);\n const rules = tag.getGroup(group);\n if (!names || !rules || !names.size) continue;\n\n const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n let content = '';\n if (names !== undefined) {\n names.forEach(name => {\n if (name.length > 0) {\n content += `${name},`;\n }\n });\n }\n\n // NOTE: It's easier to collect rules and have the marker\n // after the actual rules to simplify the rehydration\n css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n }\n\n return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n const names = content.split(',');\n let name;\n\n for (let i = 0, l = names.length; i < l; i++) {\n // eslint-disable-next-line\n if ((name = names[i])) {\n sheet.registerName(id, name);\n }\n }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n const parts = (style.textContent || '').split(SPLITTER);\n const rules: string[] = [];\n\n for (let i = 0, l = parts.length; i < l; i++) {\n const part = parts[i].trim();\n if (!part) continue;\n\n const marker = part.match(MARKER_RE);\n\n if (marker) {\n const group = parseInt(marker[1], 10) | 0;\n const id = marker[2];\n\n if (group !== 0) {\n // Rehydrate componentId to group index mapping\n setGroupForId(id, group);\n // Rehydrate names and rules\n // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n rehydrateNamesFromContent(sheet, id, marker[3]);\n sheet.getTag().insertRules(group, rules);\n }\n\n rules.length = 0;\n } else {\n rules.push(part);\n }\n }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n const nodes = document.querySelectorAll(SELECTOR);\n\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = ((nodes[i]: any): HTMLStyleElement);\n if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n rehydrateSheetFromTag(sheet, node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n }\n};\n","// @flow\n/* eslint-disable camelcase, no-undef */\n\ndeclare var __webpack_nonce__: string;\n\nconst getNonce = () => {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n};\n\nexport default getNonce;\n","// @flow\n\nimport { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport getNonce from '../utils/nonce';\nimport throwStyledError from '../utils/error';\n\nconst ELEMENT_TYPE = 1; /* Node.ELEMENT_TYPE */\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: HTMLElement): void | HTMLStyleElement => {\n const { childNodes } = target;\n\n for (let i = childNodes.length; i >= 0; i--) {\n const child = ((childNodes[i]: any): ?HTMLElement);\n if (child && child.nodeType === ELEMENT_TYPE && child.hasAttribute(SC_ATTR)) {\n return ((child: any): HTMLStyleElement);\n }\n }\n\n return undefined;\n};\n\n/** Create a style element inside `target` or after the last */\nexport const makeStyleTag = (target?: HTMLElement): HTMLStyleElement => {\n const head = ((document.head: any): HTMLElement);\n const parent = target || head;\n const style = document.createElement('style');\n const prevStyle = findLastStyleTag(parent);\n const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n const nonce = getNonce();\n\n if (nonce) style.setAttribute('nonce', nonce);\n\n parent.insertBefore(style, nextSibling);\n\n return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n if (tag.sheet) {\n return ((tag.sheet: any): CSSStyleSheet);\n }\n\n // Avoid Firefox quirk where the style element might not have a sheet property\n const { styleSheets } = document;\n for (let i = 0, l = styleSheets.length; i < l; i++) {\n const sheet = styleSheets[i];\n if (sheet.ownerNode === tag) {\n return ((sheet: any): CSSStyleSheet);\n }\n }\n\n throwStyledError(17);\n return (undefined: any);\n};\n","// @flow\n/* eslint-disable no-use-before-define */\n\nimport { makeStyleTag, getSheet } from './dom';\nimport type { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions): Tag => {\n if (isServer) {\n return new VirtualTag(target);\n } else if (useCSSOMInjection) {\n return new CSSOMTag(target);\n } else {\n return new TextTag(target);\n }\n};\n\nexport class CSSOMTag implements Tag {\n element: HTMLStyleElement;\n\n sheet: CSSStyleSheet;\n\n length: number;\n\n constructor(target?: HTMLElement) {\n const element = (this.element = makeStyleTag(target));\n\n // Avoid Edge bug where empty style elements don't create sheets\n element.appendChild(document.createTextNode(''));\n\n this.sheet = getSheet(element);\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n try {\n this.sheet.insertRule(rule, index);\n this.length++;\n return true;\n } catch (_error) {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.sheet.deleteRule(index);\n this.length--;\n }\n\n getRule(index: number): string {\n const rule = this.sheet.cssRules[index];\n // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n if (rule !== undefined && typeof rule.cssText === 'string') {\n return rule.cssText;\n } else {\n return '';\n }\n }\n}\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport class TextTag implements Tag {\n element: HTMLStyleElement;\n\n nodes: NodeList;\n\n length: number;\n\n constructor(target?: HTMLElement) {\n const element = (this.element = makeStyleTag(target));\n this.nodes = element.childNodes;\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n if (index <= this.length && index >= 0) {\n const node = document.createTextNode(rule);\n const refNode = this.nodes[index];\n this.element.insertBefore(node, refNode || null);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.element.removeChild(this.nodes[index]);\n this.length--;\n }\n\n getRule(index: number): string {\n if (index < this.length) {\n return this.nodes[index].textContent;\n } else {\n return '';\n }\n }\n}\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport class VirtualTag implements Tag {\n rules: string[];\n\n length: number;\n\n constructor(_target?: HTMLElement) {\n this.rules = [];\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n if (index <= this.length) {\n this.rules.splice(index, 0, rule);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.rules.splice(index, 1);\n this.length--;\n }\n\n getRule(index: number): string {\n if (index < this.length) {\n return this.rules[index];\n } else {\n return '';\n }\n }\n}\n","// @flow\nimport { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport type { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n isServer?: boolean,\n useCSSOMInjection?: boolean,\n target?: HTMLElement,\n};\n\ntype GlobalStylesAllocationMap = { [key: string]: number };\ntype NamesAllocationMap = Map>;\n\nconst defaultOptions: SheetOptions = {\n isServer: !IS_BROWSER,\n useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n gs: GlobalStylesAllocationMap;\n\n names: NamesAllocationMap;\n\n options: SheetOptions;\n\n server: boolean;\n\n tag: void | GroupedTag;\n\n /** Register a group ID to give it an index */\n static registerId(id: string): number {\n return getGroupForId(id);\n }\n\n constructor(\n options: SheetConstructorArgs = EMPTY_OBJECT,\n globalStyles?: GlobalStylesAllocationMap = {},\n names?: NamesAllocationMap\n ) {\n this.options = {\n ...defaultOptions,\n ...options,\n };\n\n this.gs = globalStyles;\n this.names = new Map(names);\n this.server = !!options.isServer;\n\n // We rehydrate only once and use the sheet that is created first\n if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n SHOULD_REHYDRATE = false;\n rehydrateSheet(this);\n }\n }\n\n reconstructWithOptions(options: SheetConstructorArgs, withNames?: boolean = true) {\n return new StyleSheet(\n { ...this.options, ...options },\n this.gs,\n (withNames && this.names) || undefined\n );\n }\n\n allocateGSInstance(id: string) {\n return (this.gs[id] = (this.gs[id] || 0) + 1);\n }\n\n /** Lazily initialises a GroupedTag for when it's actually needed */\n getTag(): GroupedTag {\n return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n }\n\n /** Check whether a name is known for caching */\n hasNameForId(id: string, name: string): boolean {\n return this.names.has(id) && (this.names.get(id): any).has(name);\n }\n\n /** Mark a group's name as known for caching */\n registerName(id: string, name: string) {\n getGroupForId(id);\n\n if (!this.names.has(id)) {\n const groupNames = new Set();\n groupNames.add(name);\n this.names.set(id, groupNames);\n } else {\n (this.names.get(id): any).add(name);\n }\n }\n\n /** Insert new rules which also marks the name as known */\n insertRules(id: string, name: string, rules: string[]) {\n this.registerName(id, name);\n this.getTag().insertRules(getGroupForId(id), rules);\n }\n\n /** Clears all cached names for a given group ID */\n clearNames(id: string) {\n if (this.names.has(id)) {\n (this.names.get(id): any).clear();\n }\n }\n\n /** Clears all rules for a given group ID */\n clearRules(id: string) {\n this.getTag().clearGroup(getGroupForId(id));\n this.clearNames(id);\n }\n\n /** Clears the entire tag which deletes all rules but not its names */\n clearTag() {\n // NOTE: This does not clear the names, since it's only used during SSR\n // so that we can continuously output only new rules\n this.tag = undefined;\n }\n\n /** Outputs the current sheet as a CSS string with markers for SSR */\n toString(): string {\n return outputSheet(this);\n }\n}\n","// @flow\n/* eslint-disable no-bitwise */\n\nconst AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number): string =>\n String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number): string {\n let name = '';\n let x;\n\n /* get a char and divide by alphabet-length */\n for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n","// @flow\n/* eslint-disable */\n\nexport const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string): number => {\n let i = x.length;\n\n while (i) {\n h = (h * 33) ^ x.charCodeAt(--i);\n }\n\n return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string): number => {\n return phash(SEED, x);\n};\n","// @flow\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\nimport type { RuleSet } from '../types';\n\nexport default function isStaticRules(rules: RuleSet): boolean {\n for (let i = 0; i < rules.length; i += 1) {\n const rule = rules[i];\n\n if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n return true;\n}\n","// @flow\nimport { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport type { RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n baseHash: number;\n\n baseStyle: ?ComponentStyle;\n\n componentId: string;\n\n isStatic: boolean;\n\n rules: RuleSet;\n\n staticRulesId: string;\n\n constructor(rules: RuleSet, componentId: string, baseStyle?: ComponentStyle) {\n this.rules = rules;\n this.staticRulesId = '';\n this.isStatic = process.env.NODE_ENV === 'production' &&\n (baseStyle === undefined || baseStyle.isStatic) &&\n isStaticRules(rules);\n this.componentId = componentId;\n\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n this.baseHash = phash(SEED, componentId);\n\n this.baseStyle = baseStyle;\n\n // NOTE: This registers the componentId, which ensures a consistent order\n // for this component's styles compared to others\n StyleSheet.registerId(componentId);\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n generateAndInjectStyles(executionContext: Object, styleSheet: StyleSheet, stylis: Stringifier) {\n const { componentId } = this;\n\n const names = [];\n\n if (this.baseStyle) {\n names.push(this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis));\n }\n\n // force dynamic classnames if user-supplied stylis plugins are in use\n if (this.isStatic && !stylis.hash) {\n if (this.staticRulesId && styleSheet.hasNameForId(componentId, this.staticRulesId)) {\n names.push(this.staticRulesId);\n } else {\n const cssStatic = flatten(this.rules, executionContext, styleSheet, stylis).join('');\n const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, componentId);\n\n styleSheet.insertRules(componentId, name, cssStaticFormatted);\n }\n\n names.push(name);\n this.staticRulesId = name;\n }\n } else {\n const { length } = this.rules;\n let dynamicHash = phash(this.baseHash, stylis.hash);\n let css = '';\n\n for (let i = 0; i < length; i++) {\n const partRule = this.rules[i];\n\n if (typeof partRule === 'string') {\n css += partRule;\n\n if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule + i);\n } else if (partRule) {\n const partChunk = flatten(partRule, executionContext, styleSheet, stylis);\n const partString = Array.isArray(partChunk) ? partChunk.join('') : partChunk;\n dynamicHash = phash(dynamicHash, partString + i);\n css += partString;\n }\n }\n\n if (css) {\n const name = generateName(dynamicHash >>> 0);\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n const cssFormatted = stylis(css, `.${name}`, undefined, componentId);\n styleSheet.insertRules(componentId, name, cssFormatted);\n }\n\n names.push(name);\n }\n }\n\n return names.join(' ');\n }\n}\n","import Stylis from '@emotion/stylis';\nimport { type Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { phash, SEED } from './hash';\nimport insertRulePlugin from './stylisPluginInsertRule';\n\nconst COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\nconst COMPLEX_SELECTOR_PREFIX = [':', '[', '.', '#'];\n\ntype StylisInstanceConstructorArgs = {\n options?: Object,\n plugins?: Array,\n};\n\nexport default function createStylisInstance({\n options = EMPTY_OBJECT,\n plugins = EMPTY_ARRAY,\n}: StylisInstanceConstructorArgs = EMPTY_OBJECT) {\n const stylis = new Stylis(options);\n\n // Wrap `insertRulePlugin to build a list of rules,\n // and then make our own plugin to return the rules. This\n // makes it easier to hook into the existing SSR architecture\n\n let parsingRules = [];\n\n // eslint-disable-next-line consistent-return\n const returnRulesPlugin = context => {\n if (context === -2) {\n const parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n };\n\n const parseRulesPlugin = insertRulePlugin(rule => {\n parsingRules.push(rule);\n });\n\n let _componentId: string;\n let _selector: string;\n let _selectorRegexp: RegExp;\n let _consecutiveSelfRefRegExp: RegExp;\n\n const selfReferenceReplacer = (match, offset, string) => {\n if (\n // do not replace the first occurrence if it is complex (has a modifier)\n (offset === 0 ? COMPLEX_SELECTOR_PREFIX.indexOf(string[_selector.length]) === -1 : true) &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n !string.match(_consecutiveSelfRefRegExp)\n ) {\n return `.${_componentId}`;\n }\n\n return match;\n };\n\n /**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n *\n * https://github.com/thysultan/stylis.js/tree/v3.5.4#plugins <- more info about the context phase values\n * \"2\" means this plugin is taking effect at the very end after all other processing is complete\n */\n const selfReferenceReplacementPlugin = (context, _, selectors) => {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n };\n\n stylis.use([...plugins, selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\n\n function stringifyRules(css, selector, prefix, componentId = '&'): Stringifier {\n const flatCSS = css.replace(COMMENT_REGEX, '');\n const cssStr = selector && prefix ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single-threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n _consecutiveSelfRefRegExp = new RegExp(`(\\\\${_selector}\\\\b){2,}`);\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n }\n\n stringifyRules.hash = plugins.length\n ? plugins\n .reduce((acc, plugin) => {\n if (!plugin.name) {\n throwStyledError(15);\n }\n\n return phash(acc, plugin.name);\n }, SEED)\n .toString()\n : '';\n\n return stringifyRules;\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2016 Sultan Tarimo\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR\n * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/* eslint-disable */\n\nexport default function(insertRule) {\n const delimiter = '/*|*/';\n const needle = `${delimiter}}`;\n\n function toSheet(block) {\n if (block) {\n try {\n insertRule(`${block}}`);\n } catch (e) {}\n }\n }\n\n return function ruleSheet(\n context,\n content,\n selectors,\n parents,\n line,\n column,\n length,\n ns,\n depth,\n at\n ) {\n switch (context) {\n // property\n case 1:\n // @import\n if (depth === 0 && content.charCodeAt(0) === 64) return insertRule(`${content};`), '';\n break;\n // selector\n case 2:\n if (ns === 0) return content + delimiter;\n break;\n // at-rule\n case 3:\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n return insertRule(selectors[0] + content), '';\n default:\n return content + (at === 0 ? delimiter : '');\n }\n case -2:\n content.split(needle).forEach(toSheet);\n }\n };\n}\n","// @flow\nimport React, { type Context, type Node, useContext, useEffect, useMemo, useState } from 'react';\nimport shallowequal from 'shallowequal';\nimport StyleSheet from '../sheet';\nimport type { Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\ntype Props = {\n children?: Node,\n disableCSSOMInjection?: boolean,\n disableVendorPrefixes?: boolean,\n sheet?: StyleSheet,\n stylisPlugins?: Array,\n target?: HTMLElement,\n};\n\nexport const StyleSheetContext: Context = React.createContext();\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\nexport const StylisContext: Context = React.createContext();\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport const masterSheet: StyleSheet = new StyleSheet();\nexport const masterStylis: Stringifier = createStylisInstance();\n\nexport function useStyleSheet(): StyleSheet {\n return useContext(StyleSheetContext) || masterSheet;\n}\n\nexport function useStylis(): Stringifier {\n return useContext(StylisContext) || masterStylis;\n}\n\nexport default function StyleSheetManager(props: Props) {\n const [plugins, setPlugins] = useState(props.stylisPlugins);\n const contextStyleSheet = useStyleSheet();\n\n const styleSheet = useMemo(() => {\n let sheet = contextStyleSheet;\n\n if (props.sheet) {\n // eslint-disable-next-line prefer-destructuring\n sheet = props.sheet;\n } else if (props.target) {\n sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n }\n\n if (props.disableCSSOMInjection) {\n sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n }\n\n return sheet;\n }, [props.disableCSSOMInjection, props.sheet, props.target]);\n\n const stylis = useMemo(\n () =>\n createStylisInstance({\n options: { prefix: !props.disableVendorPrefixes },\n plugins,\n }),\n [props.disableVendorPrefixes, plugins]\n );\n\n useEffect(() => {\n if (!shallowequal(plugins, props.stylisPlugins)) setPlugins(props.stylisPlugins);\n }, [props.stylisPlugins]);\n\n return (\n \n \n {process.env.NODE_ENV !== 'production'\n ? React.Children.only(props.children)\n : props.children}\n \n \n );\n}\n","// @flow\nimport StyleSheet from '../sheet';\nimport { type Stringifier } from '../types';\nimport throwStyledError from '../utils/error';\nimport { masterStylis } from './StyleSheetManager';\n\nexport default class Keyframes {\n id: string;\n\n name: string;\n\n rules: string;\n\n constructor(name: string, rules: string) {\n this.name = name;\n this.id = `sc-keyframes-${name}`;\n this.rules = rules;\n }\n\n inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = masterStylis) => {\n const resolvedName = this.name + stylisInstance.hash;\n\n if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n styleSheet.insertRules(\n this.id,\n resolvedName,\n stylisInstance(this.rules, resolvedName, '@keyframes')\n );\n }\n };\n\n toString = () => {\n return throwStyledError(12, String(this.name));\n };\n\n getName(stylisInstance: Stringifier = masterStylis) {\n return this.name + stylisInstance.hash;\n }\n}\n","// @flow\n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nconst uppercaseCheck = /([A-Z])/;\nconst uppercasePattern = /([A-Z])/g;\nconst msPattern = /^ms-/;\nconst prefixAndLowerCase = (char: string): string => `-${char.toLowerCase()}`;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nexport default function hyphenateStyleName(string: string): string {\n return uppercaseCheck.test(string)\n ? string\n .replace(uppercasePattern, prefixAndLowerCase)\n .replace(msPattern, '-ms-')\n : string;\n}\n","// @flow\nimport { isElement } from 'react-is';\nimport getComponentName from './getComponentName';\nimport isFunction from './isFunction';\nimport isStatelessFunction from './isStatelessFunction';\nimport isPlainObject from './isPlainObject';\nimport isStyledComponent from './isStyledComponent';\nimport Keyframes from '../models/Keyframes';\nimport hyphenate from './hyphenateStyleName';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { type Stringifier } from '../types';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = chunk => chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Object, prevKey?: string): Array => {\n const rules = [];\n\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || isFalsish(obj[key])) continue;\n\n if ((Array.isArray(obj[key]) && obj[key].isCss) || isFunction(obj[key])) {\n rules.push(`${hyphenate(key)}:`, obj[key], ';');\n } else if (isPlainObject(obj[key])) {\n rules.push(...objToCssArray(obj[key], key));\n } else {\n rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, obj[key])};`);\n }\n }\n\n return prevKey ? [`${prevKey} {`, ...rules, '}'] : rules;\n};\n\nexport default function flatten(\n chunk: any,\n executionContext: ?Object,\n styleSheet: ?Object,\n stylisInstance: ?Stringifier\n): any {\n if (Array.isArray(chunk)) {\n const ruleSet = [];\n\n for (let i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet, stylisInstance);\n\n if (result === '') continue;\n else if (Array.isArray(result)) ruleSet.push(...result);\n else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return '';\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return `.${chunk.styledComponentId}`;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n const result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(result)) {\n // eslint-disable-next-line no-console\n console.warn(\n `${getComponentName(\n chunk\n )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n );\n }\n\n return flatten(result, executionContext, styleSheet, stylisInstance);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet, stylisInstance);\n return chunk.getName(stylisInstance);\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n","// @flow\nexport default function isStatelessFunction(test: any): boolean {\n return (\n typeof test === 'function'\n && !(\n test.prototype\n && test.prototype.isReactComponent\n )\n );\n}\n","// @flow\nimport unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any): any {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n","// @flow\nimport interleave from '../utils/interleave';\nimport isPlainObject from '../utils/isPlainObject';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport isFunction from '../utils/isFunction';\nimport flatten from '../utils/flatten';\nimport type { Interpolation, RuleSet, Styles } from '../types';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = arg => {\n if (Array.isArray(arg)) {\n // eslint-disable-next-line no-param-reassign\n arg.isCss = true;\n }\n return arg;\n};\n\nexport default function css(styles: Styles, ...interpolations: Array): RuleSet {\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return addTag(flatten(interleave(EMPTY_ARRAY, [styles, ...interpolations])));\n }\n\n if (interpolations.length === 0 && styles.length === 1 && typeof styles[0] === 'string') {\n // $FlowFixMe\n return styles;\n }\n\n // $FlowFixMe\n return addTag(flatten(interleave(styles, interpolations)));\n}\n","// @flow\n\nimport { useRef } from 'react';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string) => {\n if (process.env.NODE_ENV !== 'production') {\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n const message =\n `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n \"You may see this warning because you've called styled inside another component.\\n\" +\n 'To resolve this only create new StyledComponents outside of any render method and function component.';\n\n // If a hook is called outside of a component:\n // React 17 and earlier throw an error\n // React 18 and above use console.error\n\n const originalConsoleError = console.error // eslint-disable-line no-console\n try {\n let didNotCallInvalidHook = true\n /* $FlowIgnore[cannot-write] */\n console.error = (consoleErrorMessage, ...consoleErrorArgs) => { // eslint-disable-line no-console\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(consoleErrorMessage)) {\n didNotCallInvalidHook = false\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n } else {\n originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n }\n }\n // We purposefully call `useRef` outside of a component and expect it to throw\n // If it doesn't, then we're inside another component.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useRef();\n\n if (didNotCallInvalidHook && !seen.has(message)) {\n // eslint-disable-next-line no-console\n console.warn(message);\n seen.add(message);\n }\n } catch (error) {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(error.message)) {\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n }\n } finally {\n /* $FlowIgnore[cannot-write] */\n console.error = originalConsoleError; // eslint-disable-line no-console\n }\n }\n};\n","// @flow\nimport { EMPTY_OBJECT } from './empties';\n\ntype Props = {\n theme?: any,\n};\n\nexport default (props: Props, providedTheme: any, defaultProps: any = EMPTY_OBJECT) => {\n return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n};\n","// @flow\n\n// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string): string {\n return (\n str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '')\n );\n}\n","// @flow\n/* eslint-disable */\nimport generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default (str: string): string => {\n return generateAlphabeticName(hash(str) >>> 0);\n};\n","// @flow\nimport type { IStyledComponent } from '../types';\n\nexport default function isTag(target: $PropertyType): boolean %checks {\n return (\n typeof target === 'string' &&\n (process.env.NODE_ENV !== 'production'\n ? target.charAt(0) === target.charAt(0).toLowerCase()\n : true)\n );\n}\n","/* eslint-disable */\n/**\n mixin-deep; https://github.com/jonschlinkert/mixin-deep\n Inlined such that it will be consistently transpiled to an IE-compatible syntax.\n\n The MIT License (MIT)\n\n Copyright (c) 2014-present, Jon Schlinkert.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\n\nconst isObject = val => {\n return (\n typeof val === 'function' || (typeof val === 'object' && val !== null && !Array.isArray(val))\n );\n};\n\nconst isValidKey = key => {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n};\n\nfunction mixin(target, val, key) {\n const obj = target[key];\n if (isObject(val) && isObject(obj)) {\n mixinDeep(obj, val);\n } else {\n target[key] = val;\n }\n}\n\nexport default function mixinDeep(target, ...rest) {\n for (const obj of rest) {\n if (isObject(obj)) {\n for (const key in obj) {\n if (isValidKey(key)) {\n mixin(target, obj[key], key);\n }\n }\n }\n }\n\n return target;\n}\n","// @flow\nimport React, { useContext, useMemo, type Element, type Context } from 'react';\nimport throwStyledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\nexport type Theme = { [key: string]: mixed };\n\ntype ThemeArgument = Theme | ((outerTheme?: Theme) => Theme);\n\ntype Props = {\n children?: Element,\n theme: ThemeArgument,\n};\n\nexport const ThemeContext: Context = React.createContext();\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: Theme): Theme {\n if (!theme) {\n return throwStyledError(14);\n }\n\n if (isFunction(theme)) {\n const mergedTheme = theme(outerTheme);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n ) {\n return throwStyledError(7);\n }\n\n return mergedTheme;\n }\n\n if (Array.isArray(theme) || typeof theme !== 'object') {\n return throwStyledError(8);\n }\n\n return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props) {\n const outerTheme = useContext(ThemeContext);\n const themeContext = useMemo(() => mergeTheme(props.theme, outerTheme), [\n props.theme,\n outerTheme,\n ]);\n\n if (!props.children) {\n return null;\n }\n\n return {props.children};\n}\n","// @flow\nimport validAttr from '@emotion/is-prop-valid';\nimport hoist from 'hoist-non-react-statics';\nimport React, { createElement, type Ref, useContext, useDebugValue } from 'react';\nimport { SC_VERSION } from '../constants';\nimport type {\n Attrs,\n IStyledComponent,\n IStyledStatics,\n RuleSet,\n ShouldForwardProp,\n Target,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport getComponentName from '../utils/getComponentName';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport joinStrings from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheet, useStylis } from './StyleSheetManager';\nimport { ThemeContext } from './ThemeProvider';\n\nconst identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(displayName?: string, parentComponentId?: string) {\n const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n // Ensure that no displayName can lead to duplicate componentIds\n identifiers[name] = (identifiers[name] || 0) + 1;\n\n const componentId = `${name}-${generateComponentId(\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n SC_VERSION + name + identifiers[name]\n )}`;\n\n return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useResolvedAttrs(theme: any = EMPTY_OBJECT, props: Config, attrs: Attrs) {\n // NOTE: can't memoize this\n // returns [context, resolvedAttrs]\n // where resolvedAttrs is only the things injected by the attrs themselves\n const context = { ...props, theme };\n const resolvedAttrs = {};\n\n attrs.forEach(attrDef => {\n let resolvedAttrDef = attrDef;\n let key;\n\n if (isFunction(resolvedAttrDef)) {\n resolvedAttrDef = resolvedAttrDef(context);\n }\n\n /* eslint-disable guard-for-in */\n for (key in resolvedAttrDef) {\n context[key] = resolvedAttrs[key] =\n key === 'className'\n ? joinStrings(resolvedAttrs[key], resolvedAttrDef[key])\n : resolvedAttrDef[key];\n }\n /* eslint-enable guard-for-in */\n });\n\n return [context, resolvedAttrs];\n}\n\nfunction useInjectedStyle(\n componentStyle: ComponentStyle,\n isStatic: boolean,\n resolvedAttrs: T,\n warnTooManyClasses?: $Call\n) {\n const styleSheet = useStyleSheet();\n const stylis = useStylis();\n\n const className = isStatic\n ? componentStyle.generateAndInjectStyles(EMPTY_OBJECT, styleSheet, stylis)\n : componentStyle.generateAndInjectStyles(resolvedAttrs, styleSheet, stylis);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n if (process.env.NODE_ENV !== 'production') useDebugValue(className);\n\n if (process.env.NODE_ENV !== 'production' && !isStatic && warnTooManyClasses) {\n warnTooManyClasses(className);\n }\n\n return className;\n}\n\nfunction useStyledComponentImpl(\n forwardedComponent: IStyledComponent,\n props: Object,\n forwardedRef: Ref,\n isStatic: boolean\n) {\n const {\n attrs: componentAttrs,\n componentStyle,\n defaultProps,\n foldedComponentIds,\n shouldForwardProp,\n styledComponentId,\n target,\n } = forwardedComponent;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n if (process.env.NODE_ENV !== 'production') useDebugValue(styledComponentId);\n\n // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n // should be an immutable value, but behave for now.\n const theme = determineTheme(props, useContext(ThemeContext), defaultProps);\n\n const [context, attrs] = useResolvedAttrs(theme || EMPTY_OBJECT, props, componentAttrs);\n\n const generatedClassName = useInjectedStyle(\n componentStyle,\n isStatic,\n context,\n process.env.NODE_ENV !== 'production' ? forwardedComponent.warnTooManyClasses : undefined\n );\n\n const refToForward = forwardedRef;\n\n const elementToBeCreated: Target = attrs.$as || props.$as || attrs.as || props.as || target;\n\n const isTargetTag = isTag(elementToBeCreated);\n const computedProps = attrs !== props ? { ...props, ...attrs } : props;\n const propsForElement = {};\n\n // eslint-disable-next-line guard-for-in\n for (const key in computedProps) {\n if (key[0] === '$' || key === 'as') continue;\n else if (key === 'forwardedAs') {\n propsForElement.as = computedProps[key];\n } else if (\n shouldForwardProp\n ? shouldForwardProp(key, validAttr, elementToBeCreated)\n : isTargetTag\n ? validAttr(key)\n : true\n ) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (props.style && attrs.style !== props.style) {\n propsForElement.style = { ...props.style, ...attrs.style };\n }\n\n propsForElement.className = Array.prototype\n .concat(\n foldedComponentIds,\n styledComponentId,\n generatedClassName !== styledComponentId ? generatedClassName : null,\n props.className,\n attrs.className\n )\n .filter(Boolean)\n .join(' ');\n\n propsForElement.ref = refToForward;\n\n return createElement(elementToBeCreated, propsForElement);\n}\n\nexport default function createStyledComponent(\n target: $PropertyType,\n options: {\n attrs?: Attrs,\n componentId: string,\n displayName?: string,\n parentComponentId?: string,\n shouldForwardProp?: ShouldForwardProp,\n },\n rules: RuleSet\n) {\n const isTargetStyledComp = isStyledComponent(target);\n const isCompositeComponent = !isTag(target);\n\n const {\n attrs = EMPTY_ARRAY,\n componentId = generateId(options.displayName, options.parentComponentId),\n displayName = generateDisplayName(target),\n } = options;\n\n const styledComponentId =\n options.displayName && options.componentId\n ? `${escape(options.displayName)}-${options.componentId}`\n : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n const finalAttrs =\n isTargetStyledComp && ((target: any): IStyledComponent).attrs\n ? Array.prototype.concat(((target: any): IStyledComponent).attrs, attrs).filter(Boolean)\n : attrs;\n\n // eslint-disable-next-line prefer-destructuring\n let shouldForwardProp = options.shouldForwardProp;\n\n if (isTargetStyledComp && target.shouldForwardProp) {\n if (options.shouldForwardProp) {\n // compose nested shouldForwardProp calls\n shouldForwardProp = (prop, filterFn, elementToBeCreated) =>\n ((((target: any): IStyledComponent).shouldForwardProp: any): ShouldForwardProp)(\n prop,\n filterFn,\n elementToBeCreated\n ) &&\n ((options.shouldForwardProp: any): ShouldForwardProp)(prop, filterFn, elementToBeCreated);\n } else {\n // eslint-disable-next-line prefer-destructuring\n shouldForwardProp = ((target: any): IStyledComponent).shouldForwardProp;\n }\n }\n\n const componentStyle = new ComponentStyle(\n rules,\n styledComponentId,\n isTargetStyledComp ? ((target: Object).componentStyle: ComponentStyle) : undefined\n );\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n const isStatic = componentStyle.isStatic && attrs.length === 0;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n let WrappedStyledComponent: IStyledComponent;\n\n const forwardRef = (props, ref) =>\n // eslint-disable-next-line\n useStyledComponentImpl(WrappedStyledComponent, props, ref, isStatic);\n\n forwardRef.displayName = displayName;\n\n WrappedStyledComponent = ((React.forwardRef(forwardRef): any): IStyledComponent);\n WrappedStyledComponent.attrs = finalAttrs;\n WrappedStyledComponent.componentStyle = componentStyle;\n WrappedStyledComponent.displayName = displayName;\n WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n // this static is used to preserve the cascade of static classes for component selector\n // purposes; this is especially important with usage of the css prop\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n ? Array.prototype.concat(\n ((target: any): IStyledComponent).foldedComponentIds,\n ((target: any): IStyledComponent).styledComponentId\n )\n : EMPTY_ARRAY;\n\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n WrappedStyledComponent.target = isTargetStyledComp\n ? ((target: any): IStyledComponent).target\n : target;\n\n WrappedStyledComponent.withComponent = function withComponent(tag: Target) {\n const { componentId: previousComponentId, ...optionsToCopy } = options;\n\n const newComponentId =\n previousComponentId &&\n `${previousComponentId}-${isTag(tag) ? tag : escape(getComponentName(tag))}`;\n\n const newOptions = {\n ...optionsToCopy,\n attrs: finalAttrs,\n componentId: newComponentId,\n };\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get() {\n return this._foldedDefaultProps;\n },\n\n set(obj) {\n this._foldedDefaultProps = isTargetStyledComp\n ? merge({}, ((target: any): IStyledComponent).defaultProps, obj)\n : obj;\n },\n });\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(displayName, styledComponentId);\n\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n displayName,\n styledComponentId\n );\n }\n\n WrappedStyledComponent.toString = () => `.${WrappedStyledComponent.styledComponentId}`;\n\n if (isCompositeComponent) {\n hoist<\n IStyledStatics,\n $PropertyType,\n { [key: $Keys]: true }\n >(WrappedStyledComponent, ((target: any): $PropertyType), {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n shouldForwardProp: true,\n styledComponentId: true,\n target: true,\n withComponent: true,\n });\n }\n\n return WrappedStyledComponent;\n}\n","// @flow\nimport type { IStyledComponent } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(\n target: $PropertyType\n): string {\n return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n","/**\n * Convenience function for joining strings to form className chains\n */\nexport default function joinStrings(a: ?String, b: ?String): ?String {\n return a && b ? `${a} ${b}` : a || b;\n}\n","// @flow\n// Thanks to ReactDOMFactories for this handy list!\n\nexport default [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'title',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'textPath',\n 'tspan',\n];\n","// @flow\nimport constructWithOptions from './constructWithOptions';\nimport StyledComponent from '../models/StyledComponent';\nimport domElements from '../utils/domElements';\n\nimport type { Target } from '../types';\n\nconst styled = (tag: Target) => constructWithOptions(StyledComponent, tag);\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n styled[domElement] = styled(domElement);\n});\n\nexport default styled;\n","// @flow\nimport { isValidElementType } from 'react-is';\nimport css from './css';\nimport throwStyledError from '../utils/error';\nimport { EMPTY_OBJECT } from '../utils/empties';\n\nimport type { Target } from '../types';\n\nexport default function constructWithOptions(\n componentConstructor: Function,\n tag: Target,\n options: Object = EMPTY_OBJECT\n) {\n if (!isValidElementType(tag)) {\n return throwStyledError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n const templateFunction = (...args) => componentConstructor(tag, options, css(...args));\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = config =>\n constructWithOptions(componentConstructor, tag, { ...options, ...config });\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = attrs =>\n constructWithOptions(componentConstructor, tag, {\n ...options,\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n });\n\n return templateFunction;\n}\n","// @flow\nimport StyleSheet from '../sheet';\nimport type { RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\n\nexport default class GlobalStyle {\n componentId: string;\n\n isStatic: boolean;\n\n rules: RuleSet;\n\n constructor(rules: RuleSet, componentId: string) {\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules);\n\n // pre-register the first instance to ensure global styles\n // load before component ones\n StyleSheet.registerId(this.componentId + 1);\n }\n\n createStyles(\n instance: number,\n executionContext: Object,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ) {\n const flatCSS = flatten(this.rules, executionContext, styleSheet, stylis);\n const css = stylis(flatCSS.join(''), '');\n const id = this.componentId + instance;\n\n // NOTE: We use the id as a name as well, since these rules never change\n styleSheet.insertRules(id, id, css);\n }\n\n removeStyles(instance: number, styleSheet: StyleSheet) {\n styleSheet.clearRules(this.componentId + instance);\n }\n\n renderStyles(\n instance: number,\n executionContext: Object,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ) {\n if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n // NOTE: Remove old styles, then inject the new ones\n this.removeStyles(instance, styleSheet);\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n}\n","// @flow\nimport React, { useContext, useLayoutEffect, useRef } from 'react';\nimport { STATIC_EXECUTION_CONTEXT } from '../constants';\nimport GlobalStyle from '../models/GlobalStyle';\nimport { useStyleSheet, useStylis } from '../models/StyleSheetManager';\nimport { ThemeContext } from '../models/ThemeProvider';\nimport type { Interpolation } from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport determineTheme from '../utils/determineTheme';\nimport generateComponentId from '../utils/generateComponentId';\nimport css from './css';\n\ndeclare var __SERVER__: boolean;\n\ntype GlobalStyleComponentPropsType = Object;\n\nexport default function createGlobalStyle(\n strings: Array,\n ...interpolations: Array\n) {\n const rules = css(strings, ...interpolations);\n const styledComponentId = `sc-global-${generateComponentId(JSON.stringify(rules))}`;\n const globalStyle = new GlobalStyle(rules, styledComponentId);\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(styledComponentId);\n }\n\n function GlobalStyleComponent(props: GlobalStyleComponentPropsType) {\n const styleSheet = useStyleSheet();\n const stylis = useStylis();\n const theme = useContext(ThemeContext);\n const instanceRef = useRef(styleSheet.allocateGSInstance(styledComponentId));\n\n const instance = instanceRef.current;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(props.children)) {\n // eslint-disable-next-line no-console\n console.warn(\n `The global style component ${styledComponentId} was given child JSX. createGlobalStyle does not render children.`\n );\n }\n\n if (\n process.env.NODE_ENV !== 'production' &&\n rules.some(rule => typeof rule === 'string' && rule.indexOf('@import') !== -1)\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n `Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.`\n );\n }\n\n if (styleSheet.server) {\n renderStyles(instance, props, styleSheet, theme, stylis);\n }\n\n if (!__SERVER__) {\n // this conditional is fine because it is compiled away for the relevant builds during minification,\n // resulting in a single unguarded hook call\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n if (!styleSheet.server) {\n renderStyles(instance, props, styleSheet, theme, stylis);\n return () => globalStyle.removeStyles(instance, styleSheet);\n }\n }, [instance, props, styleSheet, theme, stylis]);\n }\n\n return null;\n }\n\n function renderStyles(instance, props, styleSheet, theme, stylis) {\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(instance, STATIC_EXECUTION_CONTEXT, styleSheet, stylis);\n } else {\n const context = {\n ...props,\n theme: determineTheme(props, theme, GlobalStyleComponent.defaultProps),\n };\n\n globalStyle.renderStyles(instance, context, styleSheet, stylis);\n }\n }\n\n // $FlowFixMe\n return React.memo(GlobalStyleComponent);\n}\n","// @flow\n\nimport css from './css';\nimport generateComponentId from '../utils/generateComponentId';\nimport Keyframes from '../models/Keyframes';\n\nimport type { Interpolation, Styles } from '../types';\n\nexport default function keyframes(\n strings: Styles,\n ...interpolations: Array\n): Keyframes {\n /* Warning if you've used keyframes on React Native */\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative'\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n '`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.'\n );\n }\n\n const rules = css(strings, ...interpolations).join('');\n const name = generateComponentId(rules);\n return new Keyframes(name, rules);\n}\n","// @flow\n/* eslint-disable no-underscore-dangle */\nimport React from 'react';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport throwStyledError from '../utils/error';\nimport getNonce from '../utils/nonce';\nimport StyleSheet from '../sheet';\nimport StyleSheetManager from './StyleSheetManager';\n\ndeclare var __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n isStreaming: boolean;\n\n instance: StyleSheet;\n\n sealed: boolean;\n\n constructor() {\n this.instance = new StyleSheet({ isServer: true });\n this.sealed = false;\n }\n\n _emitSheetCSS = (): string => {\n const css = this.instance.toString();\n if (!css) return '';\n\n const nonce = getNonce();\n const attrs = [nonce && `nonce=\"${nonce}\"`, `${SC_ATTR}=\"true\"`, `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`];\n const htmlAttr = attrs.filter(Boolean).join(' ');\n\n return ``;\n };\n\n collectStyles(children: any) {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return {children};\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: this.instance.toString(),\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props: any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [